and here's the first draft of AnimationState