         parseConstraints();
         
         // TODO (klin): minimum will be different when percent size comes into play
-        width = minWidth = measureAndPositionColumns();
-        height = minHeight = measureAndPositionRows();
+        var colWidths:Vector.<Number> = measureColumns();
+        var rowHeights:Vector.<Number> = measureRows();
+        var n:Number;
+        
+        for each (n in colWidths)
+        {
+            width += n;
+        }
+        minWidth = width;
+        for each (n in rowHeights)
+        {
+            height += n;
+        }
+        minHeight = height;
         
         if (otherElements)
         {

        // what parts aren't possible.
        
        if (_constraintColumns.length <= 0)
            return 0;
        
        var measuredWidth:Number = 0;
        var i:Number;
        var numCols:Number = _constraintColumns.length;
        var col:ConstraintColumn;
        var hasContentSize:Boolean = false;
        
        // Reset content size columns to 0.
        for (i = 0; i < numCols; i++)
        {
            col = _constraintColumns[i];

                        {
                            col = contentCols[j];
                            
                            colWidth = Math.max(colWidths[contentColsIndices[j]], splitWidth);
                            if (!isNaN(col.maxWidth))
                                colWidth = Math.min(colWidth, col.maxWidth);
                            
                            colWidths[contentColsIndices[j]] = Math.ceil(colWidth);
                        }
                    }
                }
            }
        }
        
        return colWidths;
    }
    
    /**
     *  @private
     *  Synonymous to measureColumns(), but with added baseline constraint.
     *  Baseline is only included in the measurement if at least one of the element's
     *  top or bottom constraint doesn't exist. The calculations are based on the
     *  current constraintCache. To update the constraintCache, one needs to call
     *  the parseConstraints() method.
     */
    private function measureRows():Vector.<Number>
    {
        if (_constraintRows.length <= 0)
            return new Vector.<Number>();
        
        var measuredHeight:Number = 0;
        var i:Number;
        var numRows:Number = _constraintRows.length;
        var row:ConstraintRow;
        var hasContentSize:Boolean = false;
        var rowHeights:Vector.<Number> = new Vector.<Number>();
        
        // Reset content size rows to 0.
        for (i = 0; i < numRows; i++)
