Improve buttons, & add transiton

remove most of redundant code