 		public function get version() : uint
 		{
 			return _version;
+		}
+		
+		override public function set x(value : Number) : void
+		{
+			super.x = value;
+			updateRectangle();
+		}
+		
+		override public function set y(value : Number) : void
+		{
+			super.y = value;
+			updateRectangle();
 		}
 		
 		/**

		 * @param width The width of the viewport.
		 * @param height The height of the viewport.
		 */
		public function Viewport(width			: Number,
								   height		: Number,
								   antiAliasing	: int	= 0,
								   rendererType	: Class = null)
		{
			this.width = width;
			this.height = height;
			
			_aa = antiAliasing;
			_rendererClass = rendererType || DirectRenderer;
		}
		
		/**
		 * Create a new Viewport3D object and setup the stage accordingly.
		 * 
		 * <ul>
		 * <li>The resulting Viewport3D object will have the dimensions of the stage.</li>
		 * <li>The resulting Viewport3D object listens to the Event.RESIZE event of the stage
		 * in order to update its dimensions.</li>
		 * <li>The stage "scaleMode" property is set to StageScaleMode.NO_SCALE.</li>
		 * <li>The stage "align" property is set to StageAlign.TOP_LEFT.</li>
		 * </ul>
		 *  
		 * @param stage
		 * @param antiAliasing
		 * @return 
		 * 
		 */
		public static function setupOnStage(stage : Stage, antiAliasing : int = 0) : Viewport
		{
			var vp : Viewport = new Viewport(stage.stageWidth,
											 stage.stageHeight,
											 antiAliasing);
			
			vp.setupOnStage(stage);
			
			return vp;
		}
		
		private function setupOnStage(stage : Stage, autoResize : Boolean = true) : void
		{
			stage.addChild(this);
			stage.scaleMode = StageScaleMode.NO_SCALE;

		{
			if (_context)
			{
				updateRectangle();
				_context.configureBackBuffer(_width, _height, _aa, true);
				
				_renderer = new DirectRenderer(this, _context);
				
				_wdExtracterQuery = new WorldDataExtracterVisitor();
				_renderingQuery = new RenderingVisitor(_renderer);
			}
		}
		
		private function updateRectangle() : void
		{
			if (_context)
			{
				var origin : Point = localToGlobal(ZERO2);
				
				stage.stage3Ds[0].viewPort = new Rectangle(origin.x, origin.y, _width, _height);
			}
		}
		
