anchor.diff:  [source,java]
   ----
   UriActionMapperTree mapperTree = UriActionMapperTree.create().buildMapperTree()
  -            .mapSubtree("user").onAction(GoToUserAreaActionCommand.class)
  +            .mapSubtree("user").onActionFactory(GoToUserAreaActionCommand::new)
                   .onSubtree()
  -                .map("profile").onAction(GoToUserProfileActionCommand.class).finishMapper()
  +                .map("profile").onActionFactory(GoToUserProfileActionCommand::new).finishMapper()
               .finishMapper()
  -            .mapSubtree("admin").onAction(GoToAdminAreaActionCommand.class)
  +            .mapSubtree("admin").onActionFactory(GoToAdminAreaActionCommand::new)
                   .onSubtree()
  -                .map("users").onAction(GoToUserAdministrationActionCommand.class).finishMapper()
  -                .map("groups").onAction(GoToGroupAdministrationActionCommand.class).finishMapper()
  +                .map("users").onActionFactory(GoToUserAdministrationActionCommand::new).finishMapper()
  +                .map("groups").onActionFactory(GoToGroupAdministrationActionCommand::new).finishMapper()
               .finishMapper()
  -            .map("settings").onAction(GoToSettingsActionCommand.class).finishMapper()
  +            .map("settings").onActionFactory(GoToSettingsActionCommand::new).finishMapper()
           .build();
   ----
   
  -The `user` and `admin` path segments now need to have their type changed from a simple action mapper into a dispatching action mapper which allows adding sub-mappers. This is reflected by the builder methods we have to use now: `mapSubtree()` initiates the construction of a sub-mapper hierarchy. We can still assign an action command class to this mapper. This will be executed when the dispatching action mapper is directly accessed with a URI fragment, e. g. `#!user`.
  +The `user` and `admin` path segments now need to have their type changed from a simple action mapper into a dispatching action mapper which allows adding sub-mappers. This is reflected by the builder methods we have to use now: `mapSubtree()` initiates the construction of a sub-mapper hierarchy. We can still assign an action command factory to this mapper. This factory will be used when the dispatching action mapper is directly accessed with a URI fragment, e. g. `#!user`.
   
   After the dispatching mapper has been fully configured, we can go to the next hierarchy level and configure the dispatching mapper's sub-mappers. We initiate the construction of this sub-tree with method `onSubtree()`. From this point on, we can continue with constructing the mapper tree on the next level as we did on the root level. As we can see, we are here dealing with a recursive structure. We can now use the same builders as we did on the root level. We can thus nest the action mappers as deeply as we like.
   
  
positive.code: [source,java]
  ----
  mapperTree = UriActionMapperTree.create().buildMapperTree()
               .map("user").onAction(GoToUserAreaActionCommand.class).finishMapper()
               .map("admin").onAction(GoToAdminAreaActionCommand.class).finishMapper()
               .map("settings").onAction(GoToSettingsActionCommand.class).finishMapper()
               .build();
  ----
  
  
negative.code: HashMap<String, UriPathSegmentActionMapper> mappers = new HashMap<>();
  
  UriActionMapperTree mapperTree = UriActionMapperTree.create().buildMapperTree()
              .mapSubtree("user").onActionFactory(GoToUserAreaActionCommand::new)
                  .onSubtree()
                  .map("profile").onActionFactory(GoToUserProfileActionCommand::new).finishMapper()
              .finishMapper()
              .mapSubtree("admin").onActionFactory(GoToAdminAreaActionCommand::new)
                  .onSubtree()
              .map("adminProfile").onPathSegment("profile").onActionFactory(MyActionCommand::new).finishMapper(
                  adminProfileActionMapper -> 
                  mappers.put(adminProfileActionMapper.getMapperName(), adminProfileActionMapper)
              )
  