code: @Override
      protected final void configure() {
  
          bindListener(
                  new AbstractMatcher<TypeLiteral<?>>() {
                      @Override
                      public boolean matches(TypeLiteral<?> typeLiteral) {
                          return typeLiteral.getRawType().isAnnotationPresent(Presents.class);
                      }
                  },
                  new TypeListener() {
                      @Override
                      public <I> void hear(TypeLiteral<I> type, TypeEncounter<I> encounter) {
                          final Presents presents = type.getRawType().getAnnotation(Presents.class);
                          encounter.register((InjectionListener<I>) injectee -> {
                              final FXMLLoader loader = new FXMLLoader(injectee.getClass().getResource(presents.value()));
                              loader.setController(injectee);
                              try {
                                  loader.load();
                              } catch (IOException e) {
                                  addError(e);
                                  throw new IllegalStateException(e);
                              }
                          });
                      }
                  }
          );
  
          bindListener(
                  new AbstractMatcher<TypeLiteral<?>>() {
                      @Override
                      public boolean matches(TypeLiteral<?> typeLiteral) {
                          return typeLiteral.getRawType().isAnnotationPresent(LoadedBy.class);
                      }
                  },
                  new TypeListener() {
                      @Override
                      public <I> void hear(TypeLiteral<I> type, TypeEncounter<I> encounter) {
                          final LoadedBy loadedBy = type.getRawType().getAnnotation(LoadedBy.class);
                          encounter.register((InjectionListener<I>) injectee -> {
                              final FXMLLoader loader = new FXMLLoader(injectee.getClass().getResource(loadedBy.value()));
                              loader.setControllerFactory(aClass -> injectee);
                              try {
                                  loader.load();
                              } catch (IOException e) {
                                  addError(e);
                                  throw new IllegalStateException(e);
                              }
                          });
                      }
                  }
          );
  
          configureFXApplication();
      }
docs: Binds two listeners for classes annotated with {@link Presents} and {@link LoadedBy}.  Classes annotated with
  {@link Presents} will be directly set as the controller for the loaded fxml.  Classes annotated with
  {@link LoadedBy} will be used in the controller factory created by the {@link javafx.fxml.FXMLLoader}.