         }
         else
         {
-            visibleItemRenderersBounds.x = 0;
-            visibleItemRenderersBounds.y = 0;
-            visibleItemRenderersBounds.width = 0;
-            visibleItemRenderersBounds.height = 0;
+            visibleItemRenderersBounds.setEmpty();
         }
         
         // Update visibleItemRenderers et al

     */
    private const visibleItemRenderersBounds:Rectangle = new Rectangle();
    
    /**
     *  @private
     *  The viewport's bounding rectangle; often smaller then visibleItemRenderersBounds.
     *  Initialized by updateDisplayList with the current scrollPosition, and grid.width,Height.

     */
    public function getCellsAt(x:Number, y:Number, w:Number, h:Number):Vector.<CellPosition>
    { 
        var cells:Vector.<CellPosition> = new Vector.<CellPosition>;
		
		if (w <= 0 || h <= 0)
			return cells;
		
		// Get the row/column indexes of the corners of the region.
		var topLeft:CellPosition = getCellAt(x, y);
		var bottomRight:CellPosition = getCellAt(x + w, y + h);
		if (!topLeft || !bottomRight)
			return cells;
		
		for (var rowIndex:int = topLeft.rowIndex; 
			 rowIndex <= bottomRight.rowIndex; rowIndex++)
		{
			for (var columnIndex:int = topLeft.columnIndex; 
				 columnIndex <= bottomRight.columnIndex; columnIndex++)
			{
				cells.push(new CellPosition(rowIndex, columnIndex));
			}
		}
		
        return cells;
    }
    
    /**
