 	import weave.api.setSessionState;
 	import weave.api.ui.IPlotTask;
 	import weave.api.ui.ISelectableAttributes;
+	import weave.compiler.StandardLib;
 	import weave.core.LinkableBoolean;
+	import weave.core.LinkableNumber;
 	import weave.core.LinkableString;
 	import weave.data.AttributeColumns.BinnedColumn;
 	import weave.data.AttributeColumns.ColorColumn;
 	import weave.data.AttributeColumns.DynamicColumn;
 	import weave.data.AttributeColumns.FilteredColumn;
 	import weave.primitives.Bounds2D;
+	import weave.utils.BitmapText;
+	import weave.utils.ColumnUtils;
+	import weave.utils.LinkableTextFormat;
 	import weave.visualization.plotters.styles.SolidFillStyle;
 	import weave.visualization.plotters.styles.SolidLineStyle;
 	

				graphics.drawRect(tempBounds.getXMin(), tempBounds.getYMin(), tempBounds.getWidth(), tempBounds.getHeight());
				graphics.endFill();
				// flush the tempShape "buffer" onto the destination BitmapData.
				destination.draw(tempShape);
			}
			
			//---------------------------------------------------------
			// END template code
		}
		
		private const tempBounds:IBounds2D = new Bounds2D(); // reusable temporary object

		 */
		override public function drawPlotAsyncIteration(task:IPlotTask):Number
		{
			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 < task.recordKeys.length; i++)
			{
				binName = binnedColumn.getValueFromKey(task.recordKeys[i], String);
				var array:Array = _tempBinKeyToSingleRecordKeyMap[binName] as Array
				if (!array)
					array = _tempBinKeyToSingleRecordKeyMap[binName] = [];
				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.
			//---------------------------------------------------------
