Faulty Update

Looking at implementing a second state machine to determine what actions to take in response to input depending on current state.
May remove this and revert to previous version depending on how difficult it is to change.