diff --git a/chassishandler.cpp b/chassishandler.cpp
index f8b548c..4e08e30 100644
--- a/chassishandler.cpp
+++ b/chassishandler.cpp
@@ -1383,25 +1383,25 @@
     int rc = 0;
     switch (chassisControl)
     {
-        case CMD_POWER_ON:
+        case cmdPowerOn:
             rc = initiateHostStateTransition(ctx, State::Host::Transition::On);
             break;
-        case CMD_POWER_OFF:
+        case cmdPowerOff:
             rc = initiateChassisStateTransition(
                 ctx, State::Chassis::Transition::Off);
             break;
-        case CMD_HARD_RESET:
+        case cmdHardReset:
             rc = initiateHostStateTransition(
                 ctx, State::Host::Transition::ForceWarmReboot);
             break;
-        case CMD_POWER_CYCLE:
+        case cmdPowerCycle:
             rc = initiateHostStateTransition(ctx,
                                              State::Host::Transition::Reboot);
             break;
-        case CMD_SOFT_OFF_VIA_OVER_TEMP:
+        case cmdSoftOffViaOverTemp:
             rc = initiateHostStateTransition(ctx, State::Host::Transition::Off);
             break;
-        case CMD_PULSE_DIAGNOSTIC_INTR:
+        case cmdPulseDiagnosticInterrupt:
             rc = doNmi(ctx);
             break;
 
@@ -2051,7 +2051,7 @@
         if ((transferStatus == setInProgress) &&
             (static_cast<uint8_t>(setInProgressFlag) != setComplete))
         {
-            return ipmi::response(IPMI_CC_FAIL_SET_IN_PROGRESS);
+            return ipmi::response(failSetInProgress);
         }
         transferStatus = static_cast<uint8_t>(setInProgressFlag);
         return ipmi::responseSuccess();
diff --git a/chassishandler.hpp b/chassishandler.hpp
index 8d8af3b..82c09bc 100644
--- a/chassishandler.hpp
+++ b/chassishandler.hpp
@@ -4,31 +4,24 @@
 
 #include <cstddef>
 
-// Command specific completion codes
-enum ipmi_chassis_return_codes
-{
-    IPMI_OK = 0x0,
-    IPMI_CC_PARM_NOT_SUPPORTED = 0x80,
-    IPMI_CC_FAIL_SET_IN_PROGRESS = 0x81,
-};
+// IPMI Command for a Net Function number as specified by IPMI V2.0 spec.
+using Cmd = uint8_t;
 
-// Generic completion codes,
-// see IPMI doc section 5.2
-enum ipmi_generic_return_codes
-{
-    IPMI_OUT_OF_SPACE = 0xC4,
-};
+// ipmi function return the status code
+using Cc = uint8_t;
+
+// Command specific completion codes
+constexpr Cc ccParmNotSupported = 0xCD;
+constexpr Cc failSetInProgress = 0x81;
 
 // Various Chassis operations under a single command.
-enum ipmi_chassis_control_cmds : uint8_t
-{
-    CMD_POWER_OFF = 0x00,
-    CMD_POWER_ON = 0x01,
-    CMD_POWER_CYCLE = 0x02,
-    CMD_HARD_RESET = 0x03,
-    CMD_PULSE_DIAGNOSTIC_INTR = 0x04,
-    CMD_SOFT_OFF_VIA_OVER_TEMP = 0x05,
-};
+constexpr Cmd cmdPowerOff = 0x00;
+constexpr Cmd cmdPowerOn = 0x01;
+constexpr Cmd cmdPowerCycle = 0x02;
+constexpr Cmd cmdHardReset = 0x03;
+constexpr Cmd cmdPulseDiagnosticInterrupt = 0x04;
+constexpr Cmd cmdSoftOffViaOverTemp = 0x05;
+
 enum class BootOptionParameter : size_t
 {
     setInProgress = 0x0,
