TODO State Machine Design pattern —Part 1: When, Why & How State Machine Design pattern — Part 2: State Pattern vs. State Machine