 				{
 					if (_data.getPixel32(x1, y1))
 					{
-						if (other._data.hitTest(_point, 1, _cell)) return true;
+						if (other._data.hitTest(_point, 1, _tile)) return true;
 					}
 					x1 ++;
-					_cell.x += _cell.width;
+					_tile.x += _tile.width;
 				}
 				x1 = xx;
 				y1 ++;
-				_cell.x = x1 * _cell.width;
-				_cell.y += _cell.height;
+				_tile.x = x1 * _tile.width;
+				_tile.y += _tile.height;
 			}
 			return false;
 		}
-		
-		/**
-		 * The grid data.
-		 */
-		public function get data():BitmapData { return _data; }
-		
-		/**
-		 * Sets the value of the cell.
-		 * @param	x		Cell column.
-		 * @param	y		Cell row.
-		 * @param	fill	Fill value.
-		 */
-		public function setCell(x:uint = 0, y:uint = 0, solid:Boolean = true):void
-		{
-			if (usePositions)
-			{
-				x /= _cell.width;
-				y /= _cell.height;
-			}
-			_data.setPixel32(x, y, solid ? 0xFFFFFFFF : 0);
-		}
-		
-		/**
-		 * Sets the value of a rectangle region of cells.
-		 * @param	x			First column.
-		 * @param	y			First row.
-		 * @param	width		Columns to fill.
-		 * @param	height		Rows to fill.
-		 * @param	fill		Value to fill.
-		 */
-		public function setRect(x:uint = 0, y:uint = 0, width:int = 1, height:int = 1, solid:Boolean = true):void
-		{
-			if (usePositions)
-			{
-				x /= _cell.width;
-				y /= _cell.height;
-				width /= _cell.width;
-				height /= _cell.height;
-			}
-			_rect.x = x;
-			_rect.y = y;
-			_rect.width = width;
-			_rect.height = height;
-			_data.fillRect(_rect, solid ? 0xFFFFFFFF : 0);
-		}
-		
-		/**
-		 * Gets the value of a cell.
-		 * @param	x		Cell column.
-		 * @param	y		Cell row.
-		 * @return	Cell value.
-		 */
-		public function getCell(x:uint = 0, y:uint = 0):Boolean
-		{
-			if (usePositions)
-			{
-				x /= _cell.width;
-				y /= _cell.height;
-			}
-			return _data.getPixel32(x, y) > 0;
-		}
-		
-		/**
-		 * How many columns the grid has
-		 */
-		public function get columns():uint { return _columns; }
-		
-		/**
-		 * How many rows the grid has.
-		 */
-		public function get rows():uint { return _rows; }
 		
 		// Grid information.
 		/** @private */ private var _data:BitmapData;
 		/** @private */ private var _columns:uint;
 		/** @private */ private var _rows:uint;
-		/** @private */ private var _cell:Rectangle;
+		/** @private */ private var _tile:Rectangle;
 		/** @private */ private var _rect:Rectangle = FP.rect;
 		/** @private */ private var _point:Point = FP.point;
 		/** @private */ private var _point2:Point = FP.point2;

		{
			var x1:int = other.parent.x + other._x - parent.x - _x,
				y1:int = other.parent.y + other._y - parent.y - _y,
				x2:int = ((x1 + other._width - 1) / _cell.width),
				y2:int = ((y1 + other._height - 1) / _cell.height);
			_point.x = x1;
			_point.y = y1;
			x1 /= _cell.width;
			y1 /= _cell.height;
			_cell.x = x1 * _cell.width;
			_cell.y = y1 * _cell.height;
			var xx:int = x1;
			while (y1 <= y2)
			{

		 * Constructor.
		 * @param	width			Width of the grid, in pixels.
		 * @param	height			Height of the grid, in pixels.
		 * @param	tileWidth		Width of a grid tile, in pixels.
		 * @param	tileHeight		Height of a grid tile, in pixels.
		 * @param	x				X offset of the grid.
		 * @param	y				Y offset of the grid.
		 */
		public function Grid(width:uint, height:uint, tileWidth:uint, tileHeight:uint, x:int = 0, y:int = 0) 
		{
			// check for illegal grid size
			if (!width || !height || !tileWidth || !tileHeight) throw new Error("Illegal Grid, sizes cannot be 0.");
			
			// set grid properties
			_columns = width / tileWidth;
			_rows = height / tileHeight;
			_data = new BitmapData(_columns, _rows, true, 0);
			_tile = new Rectangle(0, 0, tileWidth, tileHeight);
			_x = x;
			_y = y;
			_width = width;
