state machine introduced