code: public FeatureManager createFeatureManager(Object context) {
  
          /*
           * Step 1: Try to find TogglzBootstrap implementation
           */
          TogglzBootstrap togglzBootstrap = lookupBean(TogglzBootstrap.class, context);
  
          if (togglzBootstrap != null) {
              FeatureManager manager = togglzBootstrap.createFeatureManager();
              Validate.notNull(manager, togglzBootstrap.getClass().getName() + " returned null");
              return manager;
          }
  
          /*
           * Steps 2: Fallback to use TogglzConfig implementation for FeatureManager configuration
           */
          TogglzConfig togglzConfig = lookupBean(TogglzConfig.class, context);
  
          if (togglzConfig != null) {
              return new FeatureManagerBuilder()
                  .togglzConfig(togglzConfig)
                  .build();
          }
  
          // fail with a descriptive error message
          throw new IllegalStateException("Could not find any implementation of TogglzConfig or TogglzBootstrap. " +
              "Please make sure that you have added the required integration modules to your project " +
              "or register the implementation in your web.xml as described in the 'Configuration' chapter of the documentation.");
  
      }
docs: Tries to automatically build and configure a {@link FeatureManager} like described above.
  
  @param context An optional context object which is provided to the {@link BeanFinder} implementations. This parameter is
  for example used in web application to supply the ServletContext.
  @return A newly created {@link FeatureManager}
  @throws IllegalStateException if the bootstrapping process failed