 		 */
 		public function removeParticle(idx:uint):Boolean
 		{
-			var p:Particle = _particles[idx] as Particle;
+			var p:Particle = _particles[idx];
 			if (p == null) return false;
 			
 			// remove springs
 			for (var i:uint = _springs.length; --i >= 0; ) {
-				var s:Spring = _springs[i] as Spring;
+				var s:Spring = _springs[i];
 				if (s.p1 == p || s.p2 == p) {
 					removeSpring(i);
 				}

			// father time and the grim reaper
			var p:Particle;
			for (var i:uint=0; i<_particles.length; ++i) {
				p = _particles[i] as Particle;
				p.age += dt;
				if (p.die) removeParticle(i);
			}
			// update
			_integrator.integrate(this, dt);
		}
		
		/**

		/** The default spring force for this simulation. */
		public function get springForce():SpringForce {
			return _forces[3] as SpringForce;
		}
		
		/** Sets a bounding box for particles in this simulation.
		 *  Null (the default) indicates no boundaries. */
		public function get bounds():Rectangle { return _bounds; }
		public function set bounds(b:Rectangle):void {
			if (_bounds == b) return;
			if (_bounds == null) { _bounds = new Rectangle(); }
			// ensure x is left-most and y is top-most
			_bounds.x = b.x + (b.width < 0 ? b.width : 0);
			_bounds.width = (b.width < 0 ? -1 : 1) * b.width;
			_bounds.y = b.y + (b.width < 0 ? b.height : 0);
			_bounds.height = (b.height < 0 ? -1 : 1) * b.height;
		}
		
		/**
