Engine should be now clean from gamestate dependences. The next thing will be implementing dynamic gamestate loading.