code: function() {
  
  					// create a copy of arguments for local modification
  					// and later handover to Component constructor
  					var args = Array.prototype.slice.call(arguments);
  
  					// inject the manifest to the settings object
  					var mSettings;
  					if (args.length === 0 || typeof args[0] === "object") {
  						mSettings = args[0] = args[0] || {};
  					} else if (typeof args[0] === "string") {
  						mSettings = args[1] = args[1] || {};
  					}
  					mSettings._metadataProxy = oMetadataProxy;
  
  					// mixin created "models" into "mSettings"
  					if (mModels) {
  						mSettings._manifestModels = mModels;
  					}
  
  					// call the original constructor of the component class
  					var oInstance = Object.create(oClass.prototype);
  					oClass.apply(oInstance, args);
  					return oInstance;
  
  				}
docs: create the proxy class for passing the manifest