public void run() {
		a = new Vector3D[bodies.size()];
		for (int i = 0; i < bodies.size(); i++) { // Necessary to preload
													// accelerations for
													// leapfrog integration.
			a[i] = getAcceleration(bodies.get(i));
		}
		aCraft = new Vector3D[ships.size()];
		for (int p = 0; p < ships.size(); p++) {
			aCraft[p] = getAccelerationForCraft(ships.get(p));
		}

		missionTime = 0;
		for (int j = 0; j < maneuver.burns.length; j++) {
			System.out.println("Waiting for burn " + j);
			double stopTime = maneuver.burns[j].tOF - timeStep;
			while (missionTime < stopTime) {
				simulate(timeStep);
			}
			// So that the burn occurs exactly when it should, simulate the
			// remainder of time before burning
			simulate(maneuver.burns[j].tOF - stopTime);
			ships.get(0).velocity.add(maneuver.burns[j].deltaV);
			System.out.println("Finished burn " + j);
		}
		while (true) {
			simulate(timeStep);
		}
	}