changed movement to take external state and input to make client side prediction possible