diff --git a/libpldmresponder/base.hpp b/libpldmresponder/base.hpp
index 7652279..9a13f2d 100644
--- a/libpldmresponder/base.hpp
+++ b/libpldmresponder/base.hpp
@@ -34,20 +34,20 @@
     {
         handlers.emplace(PLDM_GET_PLDM_TYPES,
                          [this](const pldm_msg* request, size_t payloadLength) {
-                             return this->getPLDMTypes(request, payloadLength);
-                         });
-        handlers.emplace(PLDM_GET_PLDM_COMMANDS, [this](const pldm_msg* request,
-                                                        size_t payloadLength) {
+            return this->getPLDMTypes(request, payloadLength);
+        });
+        handlers.emplace(PLDM_GET_PLDM_COMMANDS,
+                         [this](const pldm_msg* request, size_t payloadLength) {
             return this->getPLDMCommands(request, payloadLength);
         });
-        handlers.emplace(PLDM_GET_PLDM_VERSION, [this](const pldm_msg* request,
-                                                       size_t payloadLength) {
+        handlers.emplace(PLDM_GET_PLDM_VERSION,
+                         [this](const pldm_msg* request, size_t payloadLength) {
             return this->getPLDMVersion(request, payloadLength);
         });
         handlers.emplace(PLDM_GET_TID,
                          [this](const pldm_msg* request, size_t payloadLength) {
-                             return this->getTID(request, payloadLength);
-                         });
+            return this->getTID(request, payloadLength);
+        });
     }
 
     /** @brief Handler for getPLDMTypes
