add GameLoopState for main game loop