diff --git a/Basalt/objects/Flexbox.lua b/Basalt/objects/Flexbox.lua
index 1050fc6..23523b5 100644
--- a/Basalt/objects/Flexbox.lua
+++ b/Basalt/objects/Flexbox.lua
@@ -34,16 +34,20 @@ local function flexObjectPlugin(base, basalt)
             return self
         end,
 
-        getSize = function(self)
-            return baseWidth, baseHeight
+        getSize = function(self, internalCall)
+            if internalCall then
+              return baseWidth, baseHeight
+            else
+              return base:getSize()
+            end
         end,
 
-        getWidth = function(self)
-            return baseWidth
+        getWidth = function(self, internalCall)
+            return internalCall and baseWidth or base:getWidth()
         end,
 
-        getHeight = function(self)
-            return baseHeight
+        getHeight = function(self, internalCall)
+            return internalCall and baseHeight or base:getHeight()
         end,
 
         setSize = function(self, width, height, rel, internalCall)
@@ -91,7 +95,7 @@ return function(name, basalt)
             for _,v in pairs(children)do
                 if(sortedChildren[index]==nil)then sortedChildren[index]={offset=1} end
 
-                local childHeight = direction == "row" and v:getHeight() or v:getWidth()
+                local childHeight = direction == "row" and v:getHeight(true) or v:getWidth(true)
                 if childHeight > lineSize then
                     lineSize = childHeight
                 end
@@ -123,19 +127,19 @@ return function(name, basalt)
                     index = index + 1
                     sortedChildren[index] = {offset=lineOffset}
                 else
-                    local objSize = direction == "row" and v:getWidth() or v:getHeight()
+                    local objSize = direction == "row" and v:getWidth(true) or v:getHeight(true)
                     if(objSize+usedSize<=maxSize) then
                         table.insert(sortedChildren[index], v)
                         usedSize = usedSize + objSize + spacing
                     else
                         lineOffset = lineOffset + lineSize + spacing
-                        lineSize = direction == "row" and v:getHeight() or v:getWidth()
+                        lineSize = direction == "row" and v:getHeight(true) or v:getWidth(true)
                         index = index + 1
                         usedSize = objSize + spacing
                         sortedChildren[index] = {offset=lineOffset, v}
                     end
 
-                    local childHeight = direction == "row" and v:getHeight() or v:getWidth()
+                    local childHeight = direction == "row" and v:getHeight(true) or v:getWidth(true)
                     if childHeight > lineSize then
                         lineSize = childHeight
                     end
@@ -178,7 +182,7 @@ return function(name, basalt)
                 end
 
                 child:setPosition(currentX, children.offset or 1)
-                child:setSize(childWidth, child:getHeight(), false, true)
+                child:setSize(childWidth, child:getHeight(true), false, true)
                 currentX = currentX + childWidth + spacing
             end
         end
@@ -255,7 +259,7 @@ return function(name, basalt)
                 local flexGrow = child:getFlexGrow()
                 local flexShrink = child:getFlexShrink()
 
-                local baseHeight = child:getFlexBasis() ~= 0 and child:getFlexBasis() or child:getHeight()
+                local baseHeight = child:getFlexBasis() ~= 0 and child:getFlexBasis() or child:getHeight(true)
                 if totalFlexGrow > 0 then
                     childHeight = baseHeight + flexGrow / totalFlexGrow * remainingSpace
                 else
@@ -306,7 +310,7 @@ return function(name, basalt)
             local numSpaces = #children + 1
             local totalChildHeight = 0
             for _, child in ipairs(children) do
-                totalChildHeight = totalChildHeight + child:getHeight()
+                totalChildHeight = totalChildHeight + child:getHeight(true)
             end
             local totalSpace = containerHeight - totalChildHeight
             local offset = math.floor(totalSpace / numSpaces)
@@ -316,7 +320,7 @@ return function(name, basalt)
             for _, child in ipairs(children) do
                 local x, y = child:getPosition()
                 child:setPosition(x, currentY)
-                currentY = currentY + child:getHeight() + offset + (remaining > 0 and 1 or 0)
+                currentY = currentY + child:getHeight(true) + offset + (remaining > 0 and 1 or 0)
                 remaining = remaining > 0 and remaining - 1 or 0
             end
         end