 		this.renderer = new AsyncLineRenderer();
 		
 		if ((task as PlotTask).taskType != PlotTask.TASK_TYPE_SUBSET)
-			this.keySet = newDisposableChild(plotter, KeySet);
+			this.taskKeySet = newDisposableChild(plotter, KeySet);
 	}
 	
 	public var renderer:AsyncLineRenderer;
 	public var plotter:LineChartPlotter;
 	public var task:IPlotTask;
 	public var unfilteredKeySet:IKeySet;
-	public var keys:Array;
+	public var allKeys:Array;
 	public var keyIndex:Number;
-	public var keySet:KeySet;
+	public var taskKeySet:KeySet;
 	public var group:Number;
 	
 	private static const tempPoint:Point = new Point();

		{
			var x:Number = dataX.getValueFromKey(recordKey, Number);
			var y:Number = dataY.getValueFromKey(recordKey, Number);
			initBoundsArray(output).setCenteredRectangle(x, y, 0, 0);
		}
	}
}

		public const group:DynamicColumn = newLinkableChild(this, DynamicColumn);
 		public const order:DynamicColumn = newLinkableChild(this, DynamicColumn);
		public const lineStyle:SolidLineStyle = newLinkableChild(this, SolidLineStyle);
		public const useFilteredDataGaps:LinkableBoolean = registerLinkableChild(this, new LinkableBoolean(false));
		
		override public function drawPlotAsyncIteration(task:IPlotTask):Number
		{
