 	import weave.api.setSessionState;
 	import weave.api.ui.IPlotterWithGeometries;
 	import weave.core.LinkableNumber;
+	import weave.core.SessionManager;
 	import weave.core.StageUtils;
+	import weave.core.weave_internal;
 	import weave.data.AttributeColumns.ColorColumn;
 	import weave.data.AttributeColumns.DynamicColumn;
 	import weave.data.AttributeColumns.ReprojectedGeometryColumn;

		
		override public function drawPlot(recordKeys:Array, dataBounds:IBounds2D, screenBounds:IBounds2D, destination:BitmapData):void
		{
			var minImportance:Number = getDataAreaPerPixel(dataBounds, screenBounds) * pixellation.value;
			
			// try to find an internal StreamedGeometryColumn
			var column:IAttributeColumn = geometryColumn;

			while (!(column is StreamedGeometryColumn) && column is IColumnWrapper)
				column = (column as IColumnWrapper).internalColumn;
			
			// if the internal geometry column is a streamed column, request the required detail
			var streamedColumn:StreamedGeometryColumn = column as StreamedGeometryColumn;
			if (streamedColumn)
			{
				var requestedDataBounds:IBounds2D = dataBounds;
				var requestedMinImportance:Number = minImportance;
				if (requestedDataBounds.isUndefined())// if data bounds is empty

				var recordKey:IQualifiedKey = recordKeys[recIndex] as IQualifiedKey;
				var geoms:Array;
				
				var value:* = geometryColumn.getValueFromKey(recordKey);
				if (value is Array)
					geoms = value;
				else if (value is GeneralizedGeometry)
