add Device.catalog(), Device.toSpecObject()