Chapter 1 : Finite State Machine Patterns