State Engine

Not completed, but close...