Added a number of interfaces, fixed GameState to work on an instance level