A few of these methods should be split in a `UDeviceBuilder` or  `UDeviceInfoBuilder` class.  Verify with @frankbew