protected void updateLocation(double elapsedTime) {
		//oldPosition = position;
		currentForce = locMan.calculate(elapsedTime); // Update the applied forces.
		currentForce = currentForce.plus(locMan.calculateGravity(elapsedTime));
		double forceReduction = 1; // makes orbits more graceful
		this.currentForce = currentForce.scalarMult(forceReduction*(elapsedTime/1000)); //scale forces by time
		//currentForce.truncate(maxForce); // Reduce force if it's over max.
		currentAcceleration = currentForce.scalarDiv(mass); // calculate acceleration
		currentAcceleration = currentAcceleration.scalarMult(elapsedTime); //Reduce acceleration over time passed
		//velocity = velocity.scalarMult(elapsedTime/1000); //Reduce acceleration over time passed
    	velocity = velocity.plus(currentAcceleration);//update velocity
    	//apply friction get the tanget from the normal (perp vector)
    	Vector2D tangent = velocity.unitVector().perp().perp();
		// compute the tangential velocity, scale by friction
    	double frictionConstant = .5;
    	double tv = velocity.dotProduct(tangent)*frictionConstant*(elapsedTime/1000);
		// subtract that from the main velocity
    	velocity = velocity.minus(tangent.scalarMult(tv));
    	if(velocity.length() < .001)velocity = new Vector2D(0,0); //stop velocity if it's to slow
    	//velocity.truncate(maxSpeed); //Limit velocity based on maxSpeed.
    	//update rotation
    	torque = locMan.calculateTorque(elapsedTime);	
    	angularAcceleration = torque / (mass/2); 
    	angularVelocity += angularAcceleration * (elapsedTime/1000);
    	angularVelocity = angularVelocity - angularVelocity * 1*(elapsedTime/1000); //angular friction
    	if(Math.abs(angularVelocity) < .005) angularVelocity = 0; // stop when low enough
    	orientation += 0.6 * angularVelocity * (elapsedTime/1000);
    	orientation = orientation % (Math.PI*2); // keep orientation under 360 degrees
    	heading.setPolar(1, orientation-Math.PI/2);
    	
       // position = position.plus(velocity); //Update position based on velocity.
        position.setLocation(position.plus(velocity));
        body.updatePosition(position);
        //body.translate((int)(position.x - oldPosition.x), (int)(position.y - oldPosition.y));
        //body.
	}