code: def add_observer(self, o, component_type=ComponentType):
          
  
          self.observers[component_type].add(o)
docs: Add a callback that will get invoked after each component is called.
  
          Args:
              o (func): the callback function
  
          Keyword Args:
              component_type (ComponentType): the :class:`ComponentType` to observe.
                  The callback will fire any time an instance of the class or its
                  subclasses is invoked.
          The callback should look like this:
  
          .. code-block:: python
  
              def callback(comp, broker):
                  value = broker.get(comp)
                  # do something with value
                  pass