Refactor enum and class out of HardwareDevice.
Move param init to run().