def __init__(self, connect, devices):
        '''
        A DBUS signal handler class for the org.freedesktop.UPower.Device
        'Changed' event. To re-read the device data, a DBUS connection is
        required. This is established when an event is fired using the provided
        connect method.

        Essentially, this is a cluttered workaround for a bizarre object design
        and use of decorators in the tdbus library.

        :param connect: a DBUS system bus connection factory
        :param devices: the devices to watch
        '''
        self.connect = connect
        self.device_paths = devices
        log.debug('Installing signal handler for devices: %r', devices)
        self._observers = {}
        super(UPowerDeviceHandler, self).__init__()