added promises for animation events