Refactoring GNStateManager to abstract it to an interface.