public void update() {
		glLoadIdentity(); //reset field of view to position = rotation = 0
		float dt = Time.dt;
		Vector3f velocity = new Vector3f();
		//handle translation input
		if (Keyboard.isKeyDown(Keyboard.KEY_W)) {
			velocity.z += speed*dt;
		} if (Keyboard.isKeyDown(Keyboard.KEY_S)) {
			velocity.z -= speed*dt;
		} if (Keyboard.isKeyDown(Keyboard.KEY_A)) {
			velocity.x += speed*dt;
		} if (Keyboard.isKeyDown(Keyboard.KEY_D)) {
			velocity.x -= speed*dt;
		} if (Keyboard.isKeyDown(Keyboard.KEY_SPACE)) {
			velocity.y -= speed*dt;
		} if (Keyboard.isKeyDown(Keyboard.KEY_LSHIFT)) {
			velocity.y += speed*dt;
		}
		//handle rotation input
		if (Keyboard.isKeyDown(Keyboard.KEY_Q)) {
			rotation.y -= rotSpeed*dt;
		} if (Keyboard.isKeyDown(Keyboard.KEY_E)) {
			rotation.y += rotSpeed*dt;
		}
		//rotate the velocity based on the Y rotation
		Vector3f vel = new Vector3f((float)(velocity.x*Math.cos(rotation.y*toRad) - velocity.z*Math.sin(rotation.y*toRad)),
									velocity.y, (float)(velocity.x*Math.sin(rotation.y*toRad) + velocity.z*Math.cos(rotation.y*toRad)));
		Vector3f.add(position, vel, position);
		//translate world
		GL11.glRotatef(rotation.y, 0, 1, 0);
		GL11.glTranslatef(position.x, position.y, position.z);

	}