add retract animation and shake animation