refactor DeviceManager out of service role