 			{
 				var heightColumn:IAttributeColumn = _heightColumns[i] as IAttributeColumn;
 				var height:Number = heightColumn.getValueFromKey(recordKey, Number);
-				
+
 				if (heightColumn == positiveError)
 				{
 					if (tempRange.end == 0)

						else
							tempRange.begin += height;
					}
				}
			}
			
			// bar position depends on sorted index
			var sortedIndex:int = _sortedIndexColumn.getValueFromKey(recordKey, Number);
			var minPos:Number = sortedIndex - 0.5;
			var maxPos:Number = minPos + 1;
			
			if (horizontalMode.value)
				return [getReusableBounds(tempRange.begin, minPos, tempRange.end, maxPos)]; // x,y swapped
			else
				return [getReusableBounds(minPos, tempRange.begin, maxPos, tempRange.end)];
		}
		
		override public function getBackgroundDataBounds():IBounds2D

		private const _tempPoint:Point = new Point();
		
		override public function getDataBoundsFromRecordKey(recordKey:IQualifiedKey):Array
		{
			var errorBounds:IBounds2D = getReusableBounds(); // the bounds of key + error bars
			var keyBounds:IBounds2D = getReusableBounds(); // the bounds of just the key
			var _groupMode:Boolean = groupMode.value;
			var errorColumnsIncluded:Boolean = false; // are error columns the i = 1 and i=2 columns in height columns?
			
			// bar position depends on sorted index
			var sortedIndex:int = _sortedIndexColumn.getValueFromKey(recordKey, Number);
			var minPos:Number = sortedIndex - 0.5;
			var maxPos:Number = minPos + 1;
			// this bar is between minPos and maxPos in the x or y range
			if (horizontalMode.value)
				keyBounds.setYRange(minPos, maxPos);
			else
				keyBounds.setXRange(minPos, maxPos);
			
			var _heightColumns:Array = heightColumns.getObjects();
			if (_heightColumns.length == 1)
			{
				_heightColumns.push(positiveError);
				_heightColumns.push(negativeError);
				errorColumnsIncluded = true; 
			}
			
			tempRange.setRange(0, 0); // bar starts at zero
