Finite State Machine

dashed lines are asynchronous state transitions (3 seconds)