code: def RegisterEventHandler(self, Event, Target):
          
          if not callable(Target):
              raise TypeError('%s is not callable' % repr(Target))
          if Event not in self._EventHandlers:
              raise ValueError('%s is not a valid %s event name' % (Event, self.__class__.__name__))
          if Target in self._EventHandlers[Event]:
              return False
          self._EventHandlers[Event].append(Target)
          self.__Logger.info('registered %s: %s', Event, repr(Target))
          return True
docs: Registers any callable as an event handler.
  
          :Parameters:
            Event : str
              Name of the event. For event names, see the respective ``...Events`` class.
            Target : callable
              Callable to register as the event handler.
  
          :return: True is callable was successfully registered, False if it was already registered.
          :rtype: bool
  
          :see: `UnregisterEventHandler`