Use gamestate abstraction in main state