add timer
add ripple effect
refactoring