added missing class DeviceDetectorFactory