first iteration of finite state machine; need to refactor some things to GameEngine still