- move most code to represent a device into os-agnostic package - for os-specific device code, utilise a `*_os.go` file - generate mqtt device info without generating a new device