Solution: State Objects with Behavior - State Pattern | OneNoughtOne