diff --git a/src/firmware-update.cpp b/src/firmware-update.cpp
index f9cd153..50726e2 100644
--- a/src/firmware-update.cpp
+++ b/src/firmware-update.cpp
@@ -349,20 +349,23 @@
     return ipmi::responseSuccess();
 }
 
-static ipmi_ret_t ipmi_firmware_exit_fw_update_mode(
-    ipmi_netfn_t netfn, ipmi_cmd_t cmd, ipmi_request_t request,
-    ipmi_response_t response, ipmi_data_len_t data_len, ipmi_context_t context)
+/** @brief implements exit firmware update mode command
+ *  @param None
+ *
+ *  @returns IPMI completion code
+ */
+ipmi::RspType<> ipmiFirmwareExitFwUpdateMode()
 {
-    if (DEBUG)
-        std::cerr << "Exit FW update mode\n";
-    *data_len = 0;
 
-    ipmi_ret_t rc = IPMI_CC_OK;
+    if (DEBUG)
+    {
+        std::cerr << "Exit FW update mode \n";
+    }
     switch (fw_update_status.state())
     {
         case fw_update_status_cache::FW_STATE_INIT:
         case fw_update_status_cache::FW_STATE_IDLE:
-            rc = IPMI_CC_INVALID_FIELD_REQUEST;
+            return ipmi::responseInvalidFieldRequest();
             break;
         case fw_update_status_cache::FW_STATE_DOWNLOAD:
         case fw_update_status_cache::FW_STATE_VERIFY:
@@ -373,15 +376,11 @@
         case fw_update_status_cache::FW_STATE_ERROR:
             break;
         case fw_update_status_cache::FW_STATE_AC_CYCLE_REQUIRED:
-            rc = IPMI_CC_INVALID_FIELD_REQUEST;
+            return ipmi::responseInvalidFieldRequest();
             break;
     }
-    if (rc == IPMI_CC_OK)
-    {
-        fw_update_status.firmwareUpdateAbortState();
-    }
-
-    return rc;
+    fw_update_status.firmwareUpdateAbortState();
+    return ipmi::responseSuccess();
 }
 
 static void post_transfer_complete_handler(
@@ -1655,7 +1654,7 @@
 static constexpr ipmi_cmd_t IPMI_CMD_FW_GET_ROOT_CERT_DATA = 0x25;
 static constexpr ipmi_cmd_t IPMI_CMD_FW_GET_FW_UPDATE_RAND_NUM = 0x26;
 static constexpr ipmi_cmd_t IPMI_CMD_FW_SET_FW_UPDATE_MODE = 0x27;
-static constexpr ipmi_cmd_t IPMI_CMD_FW_EXIT_FW_UPDATE_MODE = 0x28;
+static constexpr ipmi_cmd_t cmdFirmwareExitFirmwareUpdateMode = 0x28;
 static constexpr ipmi_cmd_t IPMI_CMD_FW_UPDATE_CONTROL = 0x29;
 static constexpr ipmi_cmd_t IPMI_CMD_FW_GET_STATUS = 0x2a;
 static constexpr ipmi_cmd_t IPMI_CMD_FW_SET_FW_UPDATE_OPTIONS = 0x2b;
@@ -1720,9 +1719,9 @@
                           ipmi::Privilege::Admin, ipmiSetFirmwareUpdateMode);
 
     // exit firmware update mode
-    ipmi_register_callback(NETFUN_FIRMWARE, IPMI_CMD_FW_EXIT_FW_UPDATE_MODE,
-                           NULL, ipmi_firmware_exit_fw_update_mode,
-                           PRIVILEGE_ADMIN);
+    ipmi::registerHandler(ipmi::prioOemBase, ipmi::netFnFirmware,
+                          cmdFirmwareExitFirmwareUpdateMode,
+                          ipmi::Privilege::Admin, ipmiFirmwareExitFwUpdateMode);
 
     // firmware control mechanism (set filename, usb, etc.)
     ipmi_register_callback(NETFUN_FIRMWARE, IPMI_CMD_FW_UPDATE_CONTROL, NULL,
