code: def instantiate_by_name(self, object_name):
          
          if object_name not in self.instances:
              instance = self.instantiate_from_data(self.environment[object_name])
  
              self.instances[object_name] = instance
              return instance
          else:
              return self.instances[object_name]
docs: Instantiate object from the environment, possibly giving some extra arguments