6.2.1 Finite State Machines