 		 */
 		override public function drawPlotAsyncIteration(task:IPlotTask):Number
 		{
-			drawAll(task.recordKeys, task.dataBounds, task.screenBounds, task.buffer);
-			return 1;
-		}
-		private function drawAll(recordKeys:Array, dataBounds:IBounds2D, screenBounds:IBounds2D, destination:BitmapData):void
-		{
 			var i:int;
 			
 			// convert record keys to bin keys
 			// save a mapping of each bin key found to a value of true
 			var binName:String;
 			var _tempBinKeyToSingleRecordKeyMap:Object = new Object();
-			for (i = 0; i < recordKeys.length; i++)
+			for (i = 0; i < task.recordKeys.length; i++)
 			{
-				binName = binnedColumn.getValueFromKey(recordKeys[i], String);
+				binName = binnedColumn.getValueFromKey(task.recordKeys[i], String);
 				var array:Array = _tempBinKeyToSingleRecordKeyMap[binName] as Array
 				if (!array)
 					array = _tempBinKeyToSingleRecordKeyMap[binName] = [];
-				array.push(recordKeys[i]);
+				array.push(task.recordKeys[i]);
 			}
 
 			var binNames:Array = [];
 			for (binName in _tempBinKeyToSingleRecordKeyMap)
 				binNames.push(binName);
 			var allBinNames:Array = binnedColumn.binningDefinition.getBinNames();
-			
+			
+			LinkableTextFormat.defaultTextFormat.copyTo(_bitmapText.textFormat);
+
 			// draw the bins
 			// BEGIN template code for defining a drawPlot() function.
 			//---------------------------------------------------------

					tempBounds.setYRange(0, binHeight);
					tempBounds.setCenteredXRange(binIndex, 1);
				}
				dataBounds.projectCoordsTo(tempBounds, screenBounds);
	
				// draw rectangle for bin
				graphics.clear();

		public const drawPartialBins:LinkableBoolean = registerLinkableChild(this, new LinkableBoolean(true));
		public const columnToAggregate:DynamicColumn = newSpatialProperty(DynamicColumn);
		public const aggregationMethod:LinkableString = registerSpatialProperty(new LinkableString(AG_COUNT, verifyAggregationMethod));
		public const horizontalMode:LinkableBoolean = registerSpatialProperty(new LinkableBoolean(false));
		
		public const showValueLabels:LinkableBoolean = registerLinkableChild(this, new LinkableBoolean(false));
		public const valueLabelHorizontalAlign:LinkableString = registerLinkableChild(this, new LinkableString(BitmapText.HORIZONTAL_ALIGN_LEFT));
		public const valueLabelVerticalAlign:LinkableString = registerLinkableChild(this, new LinkableString(BitmapText.VERTICAL_ALIGN_MIDDLE));
		public const valueLabelRelativeAngle:LinkableNumber = registerLinkableChild(this, new LinkableNumber(NaN));		
		public const valueLabelColor:LinkableNumber = registerLinkableChild(this, new LinkableNumber(0));
		public const valueLabelMaxWidth:LinkableNumber = registerLinkableChild(this, new LinkableNumber(200, verifyLabelMaxWidth));
		private function verifyLabelMaxWidth(value:Number):Boolean { return value > 0; }
		private const _bitmapText:BitmapText = new BitmapText();		
		
		private static function verifyAggregationMethod(value:String):Boolean { return ENUM_AGGREGATION_METHODS.indexOf(value) >= 0; }
		public static const ENUM_AGGREGATION_METHODS:Array = [AG_COUNT, AG_SUM, AG_MEAN];
