extend abstract base AnimationComponent