Refactored Player.update