Added shake animation, error message and input check