 		// horizontal layout helper:
 		protected function hbox (options:Object, ...args) :DisplayObjectContainer
 		{
-			options = new Hash({ padding: 4 }).update(options);
-
-			var container:Sprite = new Sprite();
-			addChild(container);
-
-			var previous:*;
-			while (previous = args.shift())
-			{
-				container.addChild(previous);
-				if (args.length) args[0].x = previous.x + previous.width + options.padding;
-			}
-
-			return container;
-		}
-
-		// vertical layout helper:
-		protected function vbox (options:Object, ...args) :DisplayObjectContainer
-		{
-			options = new Hash({ padding: 4 }).update(options);
-
-			var container:Sprite = new Sprite();
-			addChild(container);
-
-			var previous:*;
-			while (previous = args.shift())
-			{
-				container.addChild(previous);
-				if (args.length) args[0].y = previous.y + previous.height + options.padding;
-			}
-
-			return container;
+			args.unshift(options);
+			return box.apply(null, args);
 		}
 
 		protected function image (object_name:String, property:String, attributes:Object = null, styles:Object = null) :Image

		
		// >>> PROTECTED METHODS
		// >>> HELPERS
		// label: String. Text label to display on button.
		// attr: Hash. Optional. Properties to be applied to button upon creation (w, h, x, y, etc).
		protected function button (label:String, attr:Object = null, styles:Object = null) :*

			{
				sprite[p] = attr[p];
			}

			// assign styles
			var ui:UIComponent = sprite as UIComponent;
			if (ui)
