     /** The field we reuse to create character bitmaps. */
     protected var _charField :TextField;
 
-    /** The character bitmaps for each location. */
-    protected var _bitmaps :Array;
-
-    /** A pool of bitmaps to reuse. */
-    protected var _bitmapPool :Array = new Array();
+    /** Big ol' bitmap. */
+    protected var _bitmap :Bitmap;
 
     /** The cached bitmap data for each character. */
-    protected var _bitmapData :Object;
+    protected var _bitmapData :Object = new Object();
 
     /** The width and height of the display in characters. */
     protected var _width :int, _height :int;
 
     /** The width and height of each character. */
     protected var _charWidth :int, _charHeight :int;
-
-    /** The location of the character grid. */
-    protected var _x :int, _y :int;
 
     /** The socket via which we communicate with the server. */
     protected var _socket :Socket;

            var shape :Shape = new Shape();
            shape.graphics.lineStyle(1, color);
            shape.graphics.drawRect(0, 0, _charWidth*region.width, _charHeight*region.height);
            shape.x = _x + _charWidth*region.x;
            shape.y = _y + _charHeight*region.y;
            addChild(shape);

            // remove it after a second

        var mousePad :Sprite = new Sprite();
        addChild(mousePad);
        mousePad.graphics.beginFill(0x0, 0.0);
        mousePad.graphics.drawRect(0, 0, _bitmap.width, _bitmap.height);
        mousePad.graphics.endFill();
        mousePad.x = _bitmap.x;
        mousePad.y = _bitmap.y;
        mousePad.addEventListener(MouseEvent.MOUSE_DOWN, sendMouseMessage);
        mousePad.addEventListener(MouseEvent.MOUSE_UP, sendMouseMessage);
        addEventListener(KeyboardEvent.KEY_DOWN, sendKeyMessage);
