 		 * @param sim the physics simulation to use for the layout. If null
 		 *  (the default), default simulation settings will be used
 		 */
-		public function ForceDirectedLayout(iterations:int=1, sim:Simulation=null) {
+		public function ForceDirectedLayout(enforceBounds:Boolean=false, 
+			iterations:int=1, sim:Simulation=null)
+		{
+			_enforceBounds = enforceBounds;
 			_iter = iterations;
 			_sim = (sim==null ? new Simulation(0, 0, 0.05, -50) : sim);
 		}

	 */
	public class ForceDirectedLayout extends Layout
	{
		private var _lookup:Dictionary = new Dictionary();
		private var _sim:Simulation;
		private var _step:Number = 1;
		private var _iter:int = 1;
		private var _gen:uint = 0;
		
		// simlation defaults
		private var _mass:Number = 1;
		private var _restLength:Number = 30;
		private var _tension:Number = 0.1;

package flare.vis.operator.layout
{
	import flare.animate.Transitioner;
	import flare.physics.Particle;
	import flare.physics.Simulation;
	import flare.physics.Spring;
	import flare.vis.data.Data;
	import flare.vis.data.DataSprite;
	import flare.vis.data.EdgeSprite;
	
	import flash.geom.Rectangle;
	
	/**
	 * Layout that positions graph items based on a physics simulation of
