public void run() {
		//System.out.println(this + " is running! at " + _ts.currentTime());
		if (this.isDisposed()) {
			//object is disposed, don't do anything with it!
			return;
		}
			if (this.getCurrentRoad().getClass() == Intersection.class) {
				//System.out.println(this + " is inside the intersection! " + ((Intersection)this.getCurrentRoad()).key);
			}
		//call moveTo and pass the maximum possible move for this car	
		 this.moveTo(_velocity * MP.simulationTimeStep);
	    //System.out.println("(" + _ts.currentTime() + ")Running Car: " + this.toString() + " free: " + free + " velocity " + _velocity + " new postion " + _position);
		//re-enque the vehicle to wake up again at the next simulation timestep
		_ts.enqueue(MP.simulationTimeStep + _ts.currentTime(), this);
		//System.out.println("Enqued car(" + this.hashCode() + ") for wakeup at" + (_ts.currentTime() + MP.simulationTimeStep));
	}