add getStateMachine member function
add callback support
test MenuButton's callback