went with a linear gamestate