adding the basic frame work of the state machine