'Add an object to the list of listeners to notify of changes to this
object.  This adds a weakref to the list of listeners that is
removed from the listeners list when the listener has no other
references to it.'

def _add_listener(self, listener):

    if (self._listeners is None):
        self._listeners = weakref.WeakValueDictionary()
    self._listeners[id(listener)] = listener
