Further implementation of DeviceListener