add some animations for mouse events, update styles accordingly
refactor input validation