GameState restructuring

What we should have done from the start