 			return createObject(type, parameters);
 		}
 		
+		/**
+		 * Creates a new instance of the type, using the specified parameters as the constructor parameters
+		 * @param	type the type being created
+		 * @param	parameters the parameters to supply to the constructor
+		 * @return new instance of type
+		 */
 		private function createObject(type:Class, parameters:Array):*
 		{
 			switch (parameters.length)

			return resolveByClass(type);
		}
		
		private function resolveByClass(type:Class):*
		{
			if (!type)

			registerCallback(returnInstance, type, false);
		}
		
		/**
		 * Registers a type to be returned whenever the target type is requested
		 * @param	instanceType the type to construct at resolution time
		 * @param	type the type being requested
		 * @param	asSingleton If true, only one instance will be created and returned on each request. If false (default), a new instance
		 * is created and returned at each resolution request
		 */
		public function registerType(instanceType:Class, type:Class, asSingleton:Boolean=false):void 
		{
			if (!instanceType)
