refactored HardwareWallet