      */
     public function get scaleGridLeft():Number
     {
-        return _scaleGridLeft;
+        if (scaleGridStorageVariable)
+            return scaleGridStorageVariable.x;
+        
+        return NaN;
     }
     
     public function set scaleGridLeft(value:Number):void
     {
-        if (value != _scaleGridLeft)
-        {
-            _scaleGridLeft = value;
+        if (!scaleGridStorageVariable)
+            scaleGridStorageVariable = new Rectangle(NaN, NaN, NaN, NaN);
+        
+        if (value != scaleGridStorageVariable.x)
+        {
+            scaleGridStorageVariable.x = value;
             scaleGridChanged = true;
             invalidateDisplayList();
         }
+
     }
 
     //----------------------------------
     //  scaleGridRight
     //----------------------------------
-
-    private var _scaleGridRight:Number;
     
     [Inspectable(category="General")]
     

            // if the display object ordering is invalidated (because we have graphic elements 
            // that aren't actually in the display list), then lets just add our item to the end.  
            // If the ordering isn't invalidated, then let's just try to add it to the proper index.
            if (invalidateDisplayObjectOrdering() || mxmlContentChanged)
            {
                // This always adds the child to the end of the display list. Any 
                // ordering discrepancies will be fixed up in assignDisplayObjects().

        super();      
    }
    
    private var needsDisplayObjectAssignment:Boolean = false;
    private var layeringMode:uint = ITEM_ORDERED_LAYERING;
    private var numGraphicElements:uint = 0;
    
