bench: implementing the FSM model