Architecture changes to accomadate DeviceModels, FirmwareModels, and commands