AnimationComponent now not template-based. Added method on_attach() and on_detach() for Component class