 			_filteredKeySet.removeCallback(spatialCallbacks.triggerCallbacks); // not every change to the geometries changes the bounding boxes
 			geometryColumn.boundingBoxCallbacks.addImmediateCallback(this, spatialCallbacks.triggerCallbacks); // bounding box should trigger spatial
 			registerSpatialProperty(_filteredKeySet.keyFilter); // subset should trigger spatial callbacks
-		}
+		}
+		
+		public const symbolPlotters:ILinkableHashMap = registerLinkableChild(this, new LinkableHashMap(IPlotter));
 
 		/**
 		 * This is the reprojected geometry column to draw.

	
	import weave.Weave;
	import weave.api.WeaveAPI;
	import weave.api.data.IAttributeColumn;
	import weave.api.data.IColumnWrapper;
	import weave.api.data.IQualifiedKey;

				graphics.endFill();
			}
			
			destination.draw(tempShape);
			
			for each (var plotter:IPlotter in symbolPlotters.getObjects())
				plotter.drawPlot(recordKeys, dataBounds, screenBounds, destination);
		}
		
		private static const tempPoint:Point = new Point(); // reusable object
