removed IDeviceFactory