add finite state machine