(feat) add animation class, keep it DRY