 
 package spark.layouts
 {
+import flash.geom.Point;
 import flash.geom.Rectangle;
 
+import mx.core.FlexVersion;
+import mx.core.IFlexModuleFactory;
 import mx.core.ILayoutElement;
 import mx.core.IVisualElement;
+import mx.core.mx_internal;
+import mx.core.UIComponentGlobals;
 import mx.events.PropertyChangeEvent;
+import mx.managers.ILayoutManagerClient;
 
 import spark.components.supportClasses.GroupBase;
 import spark.core.NavigationUnit;
 import spark.layouts.supportClasses.DropLocation;
 import spark.layouts.supportClasses.LayoutBase;
+
+use namespace mx_internal;
 
 /**
  *  The TileLayout class arranges layout elements in columns and rows

        if (!layoutTarget)
            return;
            
        updateActualValues(layoutTarget.explicitWidth, layoutTarget.explicitHeight);

        // For measure, any explicit overrides for rowCount and columnCount take precedence
        var columnCount:int = _requestedColumnCount != -1 ? Math.max(1, _requestedColumnCount) : _columnCount;

            var cellWidth:int = Math.round(xPos + _columnWidth) - cellX;
            var cellHeight:int = Math.round(yPos + _rowHeight) - cellY;

            if (FlexVersion.compatibilityVersion >= FlexVersion.VERSION_4_5)
                if (el is ILayoutManagerClient)
                    UIComponentGlobals.layoutManager.validateClient(ILayoutManagerClient(el), true);
            sizeAndPositionElement(el, cellX, cellY, cellWidth, cellHeight);

            // Move along the major axis
