lots of refactoring; added rooms and entities