State Machine.
CommandReader