 			else
 			{
 				return {
-					xCenter: _dataBounds.getXCenter(),
-					yCenter: _dataBounds.getXCenter(),
-					areaPerPixel: _dataBounds.getArea() / _screenBounds.getArea()
+					xCenter: MathLib.roundSignificant(_dataBounds.getXCenter()),
+					yCenter: MathLib.roundSignificant(_dataBounds.getXCenter()),
+					areaPerPixel: MathLib.roundSignificant(_dataBounds.getArea() / _screenBounds.getArea())
 				};
 			}
 		}
 		
+		/**
+		 * The session state can be specified in two ways: absolute coordinates and center/scale coordinates.
+		 * @param The new session state.
+		 */		
 		public function setSessionState(state:Object):void
 		{
-			_cc.delayCallbacks();
+			var cc:ICallbackCollection = getCallbackCollection(this);
+			cc.delayCallbacks();
+			
 			if (state == null)
 			{
 				if (!_dataBounds.isUndefined())
-					_cc.triggerCallbacks();
+					cc.triggerCallbacks();
 				_dataBounds.reset();
 			}
 			else

	import weave.api.primitives.IBounds2D;
	import weave.api.registerLinkableChild;
	import weave.api.setSessionState;
	import weave.core.LinkableBoolean;
	import weave.core.LinkableNumber;
	import weave.core.SessionManager;

	/**
	 * This object defines the data bounds of a visualization, either directly with
	 * absolute coordinates or indirectly with center coordinates and a scale value.
	 * Screen coordinates are never directly specified in the session state.
	 * 
	 * @author adufilie
	 */
