 	import weave.api.data.IQualifiedKey;
 	import weave.api.data.ISimpleGeometry;
 	import weave.api.getCallbackCollection;
+	import weave.api.linkSessionState;
 	import weave.api.newDisposableChild;
 	import weave.api.newLinkableChild;
 	import weave.api.primitives.IBounds2D;

		
		public const enableGroupBy:LinkableBoolean = registerSpatialProperty(new LinkableBoolean(false), updateFilterEquationColumns);
		public const groupBy:DynamicColumn = newSpatialProperty(DynamicColumn, updateFilterEquationColumns);
		public const xData:DynamicColumn = newSpatialProperty(DynamicColumn, updateFilterEquationColumns);
		public const yData:DynamicColumn = newSpatialProperty(DynamicColumn, updateFilterEquationColumns);
		public const xValues:LinkableString = newSpatialProperty(LinkableString, updateFilterEquationColumns);
		
		private const _keySet_groupBy:KeySet = newDisposableChild(this, KeySet);
		
		private var _yColumns:Array = [];

				var col:EquationColumn = columns.requestObject(columns.generateUniqueName("line"), EquationColumn, false);
				col.delayCallbacks();
				col.variables.requestObjectCopy("keyCol", groupBy);
				col.variables.requestObjectCopy("filterCol", _filteredXData);
				col.variables.requestObjectCopy("dataCol", _filteredYData);
				
				col.setMetadata(ColumnMetadata.TITLE, value);
				col.setMetadata(ColumnMetadata.MIN, '{ getMin(dataCol) }');
