Virtual finite state machine