diff --git a/host-ipmid/ipmid-host-cmd-utils.hpp b/host-ipmid/ipmid-host-cmd-utils.hpp
index 293cc0c..e7c6dc2 100644
--- a/host-ipmid/ipmid-host-cmd-utils.hpp
+++ b/host-ipmid/ipmid-host-cmd-utils.hpp
@@ -1,7 +1,8 @@
 #pragma once
 
-#include <functional>
 #include <unistd.h>
+
+#include <functional>
 #include <tuple>
 
 namespace phosphor
@@ -10,40 +11,40 @@
 {
 namespace command
 {
-    /** @detail After sending SMS_ATN to the Host, Host comes down and
-     *          asks why an 'SMS_ATN` was sent.
-     *          BMC then sends 'There is a Message to be Read` as response.
-     *          Host then comes down asks for Message and the specified
-     *          commands and data would go as data conforming to IPMI spec.
-     *
-     *          Refer: 6.13.2 Send Message Command From System Interface
-     *          in IPMI V2.0 spec.
-     */
+/** @detail After sending SMS_ATN to the Host, Host comes down and
+ *          asks why an 'SMS_ATN` was sent.
+ *          BMC then sends 'There is a Message to be Read` as response.
+ *          Host then comes down asks for Message and the specified
+ *          commands and data would go as data conforming to IPMI spec.
+ *
+ *          Refer: 6.13.2 Send Message Command From System Interface
+ *          in IPMI V2.0 spec.
+ */
 
-    /** @brief IPMI command */
-    using IPMIcmd = uint8_t;
+/** @brief IPMI command */
+using IPMIcmd = uint8_t;
 
-    /** @brief Data associated with command */
-    using Data = uint8_t;
+/** @brief Data associated with command */
+using Data = uint8_t;
 
-    /** @brief <IPMI command, Data> to be sent as payload when Host asks for
-     *          the message that can be associated with the previous SMS_ATN
-     */
-    using IpmiCmdData = std::pair<IPMIcmd, Data>;
+/** @brief <IPMI command, Data> to be sent as payload when Host asks for
+ *          the message that can be associated with the previous SMS_ATN
+ */
+using IpmiCmdData = std::pair<IPMIcmd, Data>;
 
-    /** @detail Implementation specific callback function to be invoked
-     *          conveying the status of the executed command. Specific
-     *          implementations may then broadcast an agreed signal
-     */
-    using CallBack = std::function<void(IpmiCmdData, bool)>;
+/** @detail Implementation specific callback function to be invoked
+ *          conveying the status of the executed command. Specific
+ *          implementations may then broadcast an agreed signal
+ */
+using CallBack = std::function<void(IpmiCmdData, bool)>;
 
-    /** @detail Tuple encapsulating above 2 to enable using Manager by
-     *          different implementations. Users of Manager will supply
-     *          <Ipmi command, Data> along with the callback handler.
-     *          Manager will invoke the handler onveying the status of
-     *          the command.
-     */
-    using CommandHandler = std::tuple<IpmiCmdData, CallBack>;
+/** @detail Tuple encapsulating above 2 to enable using Manager by
+ *          different implementations. Users of Manager will supply
+ *          <Ipmi command, Data> along with the callback handler.
+ *          Manager will invoke the handler onveying the status of
+ *          the command.
+ */
+using CommandHandler = std::tuple<IpmiCmdData, CallBack>;
 
 } // namespace command
 } // namespace host
