 			_controllerRemoved.execute(this, controller);
 		}
 		
+		/**
+		 * @inheritdoc 
+		 */
 		public function getController(index : uint) : AbstractController
 		{
 			return _controllers[index];
+		}
+		
+		public function load(request	: URLRequest,
+							 options	: ParserOptions) : ILoader
+		{
+			var loader	: SceneLoader	= new SceneLoader(options);
+			
+			loader.complete.add(loaderCompleteHandler);
+			loader.load(request);
+			
+			return loader;
+		}
+		
+		public function loadClass(classObject	: Class,
+								  options		: ParserOptions) : ILoader
+		{
+			var loader	: SceneLoader	= new SceneLoader(options);
+			
+			loader.complete.add(loaderCompleteHandler);
+			loader.loadClass(classObject);
+			
+			return loader;
+		}
+		
+		public function loadBytes(bytes		: ByteArray,
+								  options	: ParserOptions) : ILoader
+		{
+			var loader	: SceneLoader	= new SceneLoader(options);
+			
+			loader.complete.add(loaderCompleteHandler);
+			loader.loadBytes(bytes);
+			
+			return loader;
+		}
+		
+		private function loaderCompleteHandler(loader	: ILoader,
+											   scene	: ISceneNode) : void
+		{
+			addChild(scene);
 		}
 	}
 }
			return _children[int(index - 1)];
		}
		
		public function addController(controller : AbstractController) : void
		{
			_controllers.push(controller);

			_controllerAdded.execute(this, controller);
		}
		
		/**
		 * @inheritdoc 
		 */
		public function removeController(controller : AbstractController) : void
		{
			var numControllers	: uint = _controllers.length - 1;
