state machine

finite state machine