diff --git a/command/sol_cmds.hpp b/command/sol_cmds.hpp
index cc19323..182b73e 100644
--- a/command/sol_cmds.hpp
+++ b/command/sol_cmds.hpp
@@ -1,8 +1,9 @@
 #pragma once
 
-#include <vector>
 #include "message_handler.hpp"
 
+#include <vector>
+
 namespace sol
 {
 
@@ -33,18 +34,18 @@
 struct ActivatingRequest
 {
 #if BYTE_ORDER == LITTLE_ENDIAN
-    uint8_t sessionState : 4;       //!< SOL session state.
-    uint8_t reserved : 4;           //!< Reserved.
+    uint8_t sessionState : 4; //!< SOL session state.
+    uint8_t reserved : 4;     //!< Reserved.
 #endif
 
 #if BYTE_ORDER == BIG_ENDIAN
-    uint8_t reserved : 4;           //!< Reserved.
-    uint8_t sessionState : 4;       //!< SOL session state.
+    uint8_t reserved : 4;     //!< Reserved.
+    uint8_t sessionState : 4; //!< SOL session state.
 #endif
 
-    uint8_t payloadInstance;        //!< Payload instance.
-    uint8_t majorVersion;           //!< SOL format major version
-    uint8_t minorVersion;           //!< SOL format minor version
+    uint8_t payloadInstance; //!< Payload instance.
+    uint8_t majorVersion;    //!< SOL format major version
+    uint8_t minorVersion;    //!< SOL format minor version
 } __attribute__((packed));
 
 /** @brief SOL Activating Command.
@@ -90,17 +91,17 @@
 struct Auth
 {
 #if BYTE_ORDER == LITTLE_ENDIAN
-    uint8_t privilege : 4;          //!< SOL privilege level.
-    uint8_t reserved : 2;           //!< Reserved.
-    uint8_t auth : 1;               //!< Force SOL payload Authentication.
-    uint8_t encrypt : 1;            //!< Force SOL payload encryption.
+    uint8_t privilege : 4; //!< SOL privilege level.
+    uint8_t reserved : 2;  //!< Reserved.
+    uint8_t auth : 1;      //!< Force SOL payload Authentication.
+    uint8_t encrypt : 1;   //!< Force SOL payload encryption.
 #endif
 
 #if BYTE_ORDER == BIG_ENDIAN
-    uint8_t encrypt : 1;            //!< Force SOL payload encryption.
-    uint8_t auth : 1;               //!< Force SOL payload Authentication.
-    uint8_t reserved : 2;           //!< Reserved.
-    uint8_t privilege : 4;          //!< SOL privilege level.
+    uint8_t encrypt : 1;   //!< Force SOL payload encryption.
+    uint8_t auth : 1;      //!< Force SOL payload Authentication.
+    uint8_t reserved : 2;  //!< Reserved.
+    uint8_t privilege : 4; //!< SOL privilege level.
 #endif
 } __attribute__((packed));
 
@@ -110,8 +111,8 @@
  */
 struct Accumulate
 {
-    uint8_t interval;               //!< Character accumulate interval.
-    uint8_t threshold;              //!< Character send threshold.
+    uint8_t interval;  //!< Character accumulate interval.
+    uint8_t threshold; //!< Character send threshold.
 } __attribute__((packed));
 
 constexpr uint8_t retryCountMask = 0x07;
@@ -123,16 +124,16 @@
 struct Retry
 {
 #if BYTE_ORDER == LITTLE_ENDIAN
-    uint8_t count : 3;              //!< SOL retry count.
-    uint8_t reserved : 5;           //!< Reserved.
+    uint8_t count : 3;    //!< SOL retry count.
+    uint8_t reserved : 5; //!< Reserved.
 #endif
 
 #if BYTE_ORDER == BIG_ENDIAN
-    uint8_t reserved : 5;           //!< Reserved.
-    uint8_t count : 3;              //!< SOL retry count.
+    uint8_t reserved : 5; //!< Reserved.
+    uint8_t count : 3;    //!< SOL retry count.
 #endif
 
-    uint8_t interval;               //!< SOL retry interval.
+    uint8_t interval; //!< SOL retry interval.
 } __attribute__((packed));
 
 constexpr uint8_t ipmiCCParamNotSupported = 0x80;
@@ -148,22 +149,22 @@
 struct SetConfParamsRequest
 {
 #if BYTE_ORDER == LITTLE_ENDIAN
-    uint8_t channelNumber : 4;      //!< Channel number.
-    uint8_t reserved : 4;           //!< Reserved.
+    uint8_t channelNumber : 4; //!< Channel number.
+    uint8_t reserved : 4;      //!< Reserved.
 #endif
 
 #if BYTE_ORDER == BIG_ENDIAN
-    uint8_t reserved : 4;           //!< Reserved.
-    uint8_t channelNumber : 4;      //!< Channel number.
+    uint8_t reserved : 4;      //!< Reserved.
+    uint8_t channelNumber : 4; //!< Channel number.
 #endif
 
-    uint8_t paramSelector;          //!< Parameter selector.
+    uint8_t paramSelector; //!< Parameter selector.
     union
     {
-        uint8_t value;              //!< Represents one byte SOL parameters.
-        struct Accumulate acc;      //!< Character accumulate values.
-        struct Retry retry;         //!< Retry values.
-        struct Auth auth;           //!< Authentication parameters.
+        uint8_t value;         //!< Represents one byte SOL parameters.
+        struct Accumulate acc; //!< Character accumulate values.
+        struct Retry retry;    //!< Retry values.
+        struct Auth auth;      //!< Authentication parameters.
     };
 } __attribute__((packed));
 
@@ -173,7 +174,7 @@
  */
 struct SetConfParamsResponse
 {
-    uint8_t completionCode;          //!< Completion code.
+    uint8_t completionCode; //!< Completion code.
 } __attribute__((packed));
 
 /** @brief Set SOL configuration parameters command.
@@ -193,20 +194,20 @@
 struct GetConfParamsRequest
 {
 #if BYTE_ORDER == LITTLE_ENDIAN
-    uint8_t channelNum : 4;         //!< Channel number.
-    uint8_t reserved : 3;           //!< Reserved.
-    uint8_t getParamRev : 1;        //!< Get parameter or Get parameter revision
+    uint8_t channelNum : 4;  //!< Channel number.
+    uint8_t reserved : 3;    //!< Reserved.
+    uint8_t getParamRev : 1; //!< Get parameter or Get parameter revision
 #endif
 
 #if BYTE_ORDER == BIG_ENDIAN
-    uint8_t getParamRev : 1;        //!< Get parameter or Get parameter revision
-    uint8_t reserved : 3;           //!< Reserved.
-    uint8_t channelNum : 4;         //!< Channel number.
+    uint8_t getParamRev : 1; //!< Get parameter or Get parameter revision
+    uint8_t reserved : 3;    //!< Reserved.
+    uint8_t channelNum : 4;  //!< Channel number.
 #endif
 
-    uint8_t paramSelector;          //!< Parameter selector.
-    uint8_t setSelector;            //!< Set selector.
-    uint8_t blockSelector;          //!< Block selector.
+    uint8_t paramSelector; //!< Parameter selector.
+    uint8_t setSelector;   //!< Set selector.
+    uint8_t blockSelector; //!< Block selector.
 } __attribute__((packed));
 
 /** @struct GetConfParamsResponse
@@ -215,8 +216,8 @@
  */
 struct GetConfParamsResponse
 {
-    uint8_t completionCode;          //!< Completion code.
-    uint8_t paramRev;                //!< Parameter revision.
+    uint8_t completionCode; //!< Completion code.
+    uint8_t paramRev;       //!< Parameter revision.
 } __attribute__((packed));
 
 /** @brief Get SOL configuration parameters command.
