New StateMachine architecture...
- Session now works using a state machine
- Needs filling out and handling of errant cases
- Needs testing multiple rounds