add button view
add button machine state change notification
refactor state machine, transitions defined in main machine file instead of index.html