Implementing the State Design Pattern using Enums