diff --git a/vpd-manager/src/bios_handler.cpp b/vpd-manager/src/bios_handler.cpp
index 463bfb7..59094e0 100644
--- a/vpd-manager/src/bios_handler.cpp
+++ b/vpd-manager/src/bios_handler.cpp
@@ -170,8 +170,8 @@
     processKeepAndClear();
 }
 
-types::BiosAttributeCurrentValue
-    IbmBiosHandler::readBiosAttribute(const std::string& i_attributeName)
+types::BiosAttributeCurrentValue IbmBiosHandler::readBiosAttribute(
+    const std::string& i_attributeName)
 {
     types::BiosAttributeCurrentValue l_attrValueVariant =
         dbusUtility::biosGetAttributeMethodCall(i_attributeName);
@@ -710,8 +710,8 @@
     logging::logMessage("Invalid type recieved for keep and clear from VPD.");
 }
 
-void
-    IbmBiosHandler::saveKeepAndClearToBios(const std::string& i_KeepAndClearVal)
+void IbmBiosHandler::saveKeepAndClearToBios(
+    const std::string& i_KeepAndClearVal)
 {
     // checking for exact length as it is a string and can have garbage value.
     if (i_KeepAndClearVal.size() != constants::VALUE_1)
diff --git a/vpd-manager/src/ddimm_parser.cpp b/vpd-manager/src/ddimm_parser.cpp
index a480000..6f36c60 100644
--- a/vpd-manager/src/ddimm_parser.cpp
+++ b/vpd-manager/src/ddimm_parser.cpp
@@ -325,8 +325,8 @@
     return l_dimmSize;
 }
 
-size_t
-    DdimmVpdParser::getDdimmSize(types::BinaryVector::const_iterator i_iterator)
+size_t DdimmVpdParser::getDdimmSize(
+    types::BinaryVector::const_iterator i_iterator)
 {
     size_t l_dimmSize = 0;
     if (i_iterator[constants::SPD_BYTE_2] == constants::SPD_DRAM_TYPE_DDR5)
@@ -346,8 +346,8 @@
     return l_dimmSize;
 }
 
-void
-    DdimmVpdParser::readKeywords(types::BinaryVector::const_iterator i_iterator)
+void DdimmVpdParser::readKeywords(
+    types::BinaryVector::const_iterator i_iterator)
 {
     // collect DDIMM size value
     auto l_dimmSize = getDdimmSize(i_iterator);
diff --git a/vpd-manager/src/ipz_parser.cpp b/vpd-manager/src/ipz_parser.cpp
index 4300e12..f2dfa2b 100644
--- a/vpd-manager/src/ipz_parser.cpp
+++ b/vpd-manager/src/ipz_parser.cpp
@@ -326,8 +326,8 @@
     return recordOffsets;
 }
 
-types::IPZVpdMap::mapped_type
-    IpzVpdParser::readKeywords(types::BinaryVector::const_iterator& itrToKwds)
+types::IPZVpdMap::mapped_type IpzVpdParser::readKeywords(
+    types::BinaryVector::const_iterator& itrToKwds)
 {
     types::IPZVpdMap::mapped_type kwdValueMap{};
     while (true)
diff --git a/vpd-manager/src/manager.cpp b/vpd-manager/src/manager.cpp
index 1e3f3d5..e006f56 100644
--- a/vpd-manager/src/manager.cpp
+++ b/vpd-manager/src/manager.cpp
@@ -688,8 +688,8 @@
     return l_inventoryPaths;
 }
 
-std::string
-    Manager::getHwPath(const sdbusplus::message::object_path& i_dbusObjPath)
+std::string Manager::getHwPath(
+    const sdbusplus::message::object_path& i_dbusObjPath)
 {
     // Dummy code to supress unused variable warning. To be removed.
     logging::logMessage(std::string(i_dbusObjPath));
diff --git a/vpd-manager/src/worker.cpp b/vpd-manager/src/worker.cpp
index c1e6b38..f1758fb 100644
--- a/vpd-manager/src/worker.cpp
+++ b/vpd-manager/src/worker.cpp
@@ -1151,8 +1151,8 @@
     }
 }
 
-std::string
-    Worker::createAssetTagString(const types::VPDMapVariant& i_parsedVpdMap)
+std::string Worker::createAssetTagString(
+    const types::VPDMapVariant& i_parsedVpdMap)
 {
     std::string l_assetTag;
 
@@ -1416,8 +1416,8 @@
     }
 }
 
-std::tuple<bool, std::string>
-    Worker::parseAndPublishVPD(const std::string& i_vpdFilePath)
+std::tuple<bool, std::string> Worker::parseAndPublishVPD(
+    const std::string& i_vpdFilePath)
 {
     try
     {
