docs: public <T> T component(Descriptor<T> descriptor) {
  		logger.debug("Component is requested with descriptor: Descriptor [" + descriptor + "]");
  		Set<Class<? extends Annotation>> deployments = descriptor.deployments();
  		Class<?> deployment = deployment();
  		
  		if (deployment != null && !deployments.isEmpty() && !deployments.contains(deployment)) {
  			logger.warn("No component returned: Current deployment [" + deployment.getSimpleName() 
  					+ "]; Component descriptor [" + descriptor 
  					+ "]; You must install an appropriate component on ahead "
  					+ "invoking [public <T> void install(Class<T> component)]");
  			return null;
  		}
  		
  		Function<Descriptor<?>, Context> context = new Function<Descriptor<?>, Context>() {
  
  			@SuppressWarnings("unchecked")
  			public Context apply(Descriptor<?> descriptor) {
  				Annotation scope = descriptor.scope();
  				Class<? extends Annotation> s = (scope == null) ? Prototype.class : scope.annotationType();
  				
  				if (s.equals(Singleton.class)) {
  					return singleton;
  				}
  				
  				Class<? extends Context> ctx = s.getAnnotation(Scope.class).value();
  				Descriptor<? extends Context> desc = contexts.get(s);
  				
  				if (desc == null) {
  					install(ctx);
  					desc = (Descriptor<? extends Context>) components.get(ctx).get(0);
  					contexts.put(s, desc);
  				}
  				
  				return instance(component(desc), new Target(Target.Kind.LOCAL_VARIABLE, ctx, Collections.EMPTY_SET));
  			}
  			
  		};
  		Context c = context.apply(descriptor);
  		
  		synchronized (c) {
  			T component = c.get(descriptor);
  			
  			if (component == null) {
  				component = new Assembler<T>(this, descriptor).assemble();
  				
  				if (component != null) {
  					Event.of(Activated.class).on(component).fire();
  					c.put(descriptor, component);
  				}
  			}
  			
  			return component;
  		}
  	}