move the logic to handle state specific behavior from the AnimatablePlayer class into the corresponding state objects