 				case Stats.OBJECT:
 				default:
 					return new OrdinalScale(stats.distinctValues, true, false);
+			}
+		}
+		
+		/** @inheritDoc */
+		public override function setup():void
+		{
+			if (!_initAxes || visualization==null) return;
+			initializeAxes();
+			(_horiz ? xyAxes.yAxis : xyAxes.xAxis).showLines = false;
+		}
+		
+		/**
+		 * Initializes the axes prior to layout.
+		 */
+		protected function initializeAxes():void
+		{
+			if (!_initAxes || visualization==null) return;
+			var axes:CartesianAxes = xyAxes;
+			if (_horiz) {
+				axes.xAxis.axisScale = _scale;
+				axes.yAxis.axisScale = _colScale;
+			} else {
+				axes.xAxis.axisScale = _colScale;
+				axes.yAxis.axisScale = _scale;
 			}
 		}
 		

		 */		
		public function StackedAreaLayout(cols:Array=null, padding:Number=0.05)
		{
			if(cols != null){
				_columns =  Arrays.copy(cols);
				_peaks = new Array(cols.length);
				_poly = new Array(cols.length);
			}
			layoutType = CARTESIAN;
			
			this.padding = padding;
		}
		
		/** @inheritDoc */
		public override function setup():void
		{
			initializeAxes();
		}
		
		/**
		 * Initializes the axes prior to layout.
		 */
		protected function initializeAxes():void
		{
			if (!_initAxes || visualization==null) return;
			
			var axes:CartesianAxes = super.xyAxes;
			var axis1:Axis = _horiz ? axes.xAxis : axes.yAxis;
			var axis2:Axis = _horiz ? axes.yAxis : axes.xAxis;
			
			axis1.axisScale = _scale;
			axis2.showLines = false;
			axis2.axisScale = getScale(_columns);
		}
		
		private static function getScale(cols:Array):Scale

	                                 
			// perform first walk to get the data distribution
	        _scale.dataMax = peaks();
	        initializeAxes();
	        
	        // initialize current polygon
	        var axes:CartesianAxes = super.xyAxes;
