anchor.diff:  UriActionCommand command = mapperTree.interpretFragment("helloWorld");
   ----
   
  -This will trigger the interpretation process during which the URI fragment is disassembled and resolved to a URI action command class. The action mapper tree will resolve this fragment to the class provided by us during the construction of the mapper tree: `HelloWorldActionCommand`. It will then create an instance of this class, execute it and return the command object as a result.
  -
  -If the given URI fragment could not be resolved (e. g. if we made a typo and passed `heloWrold` to the interpretation method), `null` is returned and no action command object is executed.
  +This will trigger the interpretation process during which the URI fragment is disassembled and resolved to a URI action command factory. The action mapper tree will resolve this fragment to the command factory provided by us during the construction of the mapper tree: `HelloWorldActionCommand::new` (this is a lambda expression consisting of a simple constructor method reference for class `HelloWorldActionCommand`). It will then create an instance of this action command class using the factory, execute it and return the command object as a result.
  +
  +If the given URI fragment could not be resolved (e. g., if we made a typo and passed `heloWrold` to the interpretation method), `null` is returned and no action command object is executed.
   
   With this, we have successfully created a very simple but fully functional URI action mapper tree which is able to handle one particular URI fragment.
   
  -== Defining a Default Action Command
  -
  -As we have seen in the previous section, if a URI fragment could not successfully be interpreted, `null` is returned from the interpretation process as a result. We can prevent this by defining a default action command which will be executed each time a URI fragment could not be successfully resolved. We can set this on the instance of the URI action mapper tree:
  -
  -[source,java]
  -----
  -mapperTree.setDefaultActionCommandClass(MyDefaultActionCommand.class);
  +== Defining a Default Action Command Factory
  +
  +As we have seen in the previous section, if a URI fragment could not successfully be interpreted, `null` is returned from the interpretation process as a result. We can prevent this by defining a default action command factory which will be used each time a URI fragment could not be successfully resolved. We can set this on the instance of the URI action mapper tree:
  +
  +[source,java]
  +----
  +mapperTree.setDefaultActionCommandFactory(MyDefaultActionCommand::new);
   ----
   
   or alternatively while building this tree with the builder objects:
  
positive.code: UriActionMapperTree mapperTree = UriActionMapperTree.create().buildMapperTree()
      .mapSubtree("products").withSingleValuedParameter("id").forType(Integer.class).noDefault()
          .onSubtree()
          .map("details").onAction(ShowProductDetailsActionCommand.class).finishMapper(
              detailsActionMapper -> 
              mappers.put(detailsActionMapper.getMapperName(), detailsActionMapper)
          )
  
negative.code: }
  ----
  
  By providing a setter method for our routing context class annotated with `@RoutingContext`, we define the injection point for this data. After the action mapper tree has instantiated this action command class with an action command factory, it will scan the class for such a method and invoke it using the context object provided to the `interpretFragment()` method. The action command object can then use this object in its `run()` method.
  
  Note that the setter method for the routing context must be public and must have exactly one argument with the correct type of the routing context class passed to `interpretFragment()`. Otherwise, an exception is thrown.
  
  