James C - state machine
James C - everything in registers