Simple state machine

Enum based state machine