public void reinit(){
	switch(loadingCount){
	    case 0:
		updateMapProgress(0.10f, "Reloading");
		break;
	    case 1:
		this.setPaused(true); // ensure it's paused
		//stateManager = new AppStateManager(this);        bulletAppState.cleanup();
		initStates();
		updateMapProgress(0.10f, "Create Ship");
		break;
	    case 2:
		// remove ship
		rootNode.detachChild(ship.getNode());
		//ship.detach();
		// create new ship
		//stateManager = new AppStateManager(this); // TODO: make this work
		if (ship == null) {
		    ship = new Ship(stateManager);
		}
		updateMapProgress(0.10f, "Loading Map");
		break;
	    case 3:
		//ship.stopAllForces();
		Vector3f loc = mapObjectExtractor.warp.getNode().getLocalTranslation();
		ship.setStartingPosition(loc.x,loc.y,0f);
		rootNode.attachChild(ship.getNode());
		updateMapProgress(0.10f, "Setup Keyboard Input");
		break;
		
	    case 4:
		// create keybinder
		KeyBinder keyBinder = new KeyBinder(inputManager,ship);
		updateMapProgress(0.10f, "Setup Camera");
		break;
	    case 5:
		// setup camera
		chaseCam.setEnabled(false);
		chaseCam = new ChaseCamera(cam, ship.getNode(), inputManager);
		chaseCam.setDefaultHorizontalRotation((float)(Math.PI/-2.0f));
		chaseCam.setDefaultVerticalRotation((float)(Math.PI/1f));
		chaseCam.setInvertHorizontalAxis(true);
		chaseCam.setInvertVerticalAxis(true);
		chaseCam.setToggleRotationTrigger(new KeyTrigger(KeyInput.KEY_M));
		updateMapProgress(0.10f, "Reading Game");
		break;
		
	    case 6:
		updateMapProgress(0.10f, "Finished");
		ship.stopAllForces();
		bulletAppState.setSpeed(0);
		break;
	    case 7:
		updateMapProgress(0.00f, "Done");
		break;
	}
	loadingCount++;

    }