refactor
add more animation