docs: function $$(instance, Clazz, ctor, args) {
                  args = ria.__API.clone(args);
                  var clazz = args[0],
                      specs = args[1];
  
                  if (clazz instanceof ria.__API.ClassDescriptor)
                      clazz = clazz.ctor;
  
                  if (clazz instanceof ria.__API.Class) {
                      var instance = clazz;
                      clazz = instance.getClass();
                      // TODO; fetch specs from instance
                  }
  
                  if (ria.__API.isSpecification(clazz)) {
                      var specify = clazz;
                      clazz = specify.type;
                      specs = specify.specs;
                  }
  
                  if (!ria.__API.isClassConstructor(clazz))
                      throw new ria.reflection.Exception('ReflectionFactory works only on CLASS');
  
                  args.splice(0, 1, clazz, specs);
  
                  var name = ria.__API.getIdentifierOfType(ria.__API.specify(clazz, specs)) + '@' + clazz.__REF_ID;
                  if (cache.hasOwnProperty(name))
                      return cache[name];
  
                  return cache[name] = new ria.__API.init(instance, Clazz, ctor, args);
              }