code: static <RESOLVERSYSTEMTYPE extends ResolverSystem> RESOLVERSYSTEMTYPE createFromUserView(
              final Class<RESOLVERSYSTEMTYPE> userViewClass, final ClassLoader cl) {
  
          assert userViewClass != null : "user view class must be specified";
          assert cl != null : "ClassLoader must be specified";
  
          // get SPI service loader
          final Object spiServiceLoader = new Invokable(cl, CLASS_NAME_SPISERVICELOADER)
                  .invokeConstructor(new Class[] { ClassLoader.class }, new Object[] { cl });
  
          // return service loader implementation
          final Object serviceLoader = new Invokable(cl, CLASS_NAME_SPISERVICELOADER).invokeMethod(METHOD_NAME_ONLY_ONE,
                  new Class[] { Class.class, Class.class }, spiServiceLoader,
                  new Object[] { Invokable.loadClass(cl, CLASS_NAME_SPISERVICELOADER), spiServiceLoader.getClass() });
  
          // get registry
          final Object serviceRegistry = new Invokable(cl, CLASS_NAME_SERVICEREGISTRY).invokeConstructor(
                  new Class<?>[] { Invokable.loadClass(cl, CLASS_NAME_SERVICELOADER) },
                  new Object[] { serviceLoader });
  
          // register itself
          new Invokable(cl, serviceRegistry.getClass()).invokeMethod(METHOD_NAME_REGISTER,
                  new Class<?>[] { serviceRegistry.getClass() }, null, new Object[] { serviceRegistry });
  
          Object userViewObject = new Invokable(cl, serviceRegistry.getClass()).invokeMethod(METHOD_NAME_ONLY_ONE,
                  new Class<?>[] { Class.class }, serviceRegistry, new Object[] { userViewClass });
  
          return userViewClass.cast(userViewObject);
  
      }
docs: Creates a new {@link ResolverSystem} instance of the specified user view type using the specified {@link ClassLoader}.
  Will consult a configuration file visible to the specified {@link ClassLoader} named
  "META-INF/services/$fullyQualfiedClassName" which should contain a key=value format with the key
  {@link ResolverSystemFactory#KEY_IMPL_CLASS_NAME}. The implementation class name must have a no-arg constructor.
  
  
  @param userViewClass The user view type
  @param cl The {@link ClassLoader}
  @return The new {@link ResolverSystem} instance of the specified user view type created by using the specified
  {@link ClassLoader}.