Add finite state machine approach to models