diff --git a/mmc/item_updater_mmc.cpp b/mmc/item_updater_mmc.cpp
index 0c47efa..5a37041 100644
--- a/mmc/item_updater_mmc.cpp
+++ b/mmc/item_updater_mmc.cpp
@@ -62,9 +62,9 @@
 void ItemUpdaterMMC::reset()
 {
     // Do not reset read-only files needed for reset or ext4 default files
-    const std::vector<std::string> exclusionList = {"alternate", "hostfw-a",
-                                                    "hostfw-b",  "lost+found",
-                                                    "nvram",     "running-ro"};
+    const std::vector<std::string> exclusionList = {
+        "alternate",  "hostfw-a", "hostfw-b",
+        "lost+found", "nvram",    "running-ro"};
     std::filesystem::path dirPath(std::string(MEDIA_DIR "hostfw/"));
     // Delete all files in /media/hostfw/ except for those on exclusionList
     for (const auto& p : std::filesystem::directory_iterator(dirPath))
@@ -177,9 +177,9 @@
         response.read(objs);
         for (auto& obj : objs)
         {
-            auto method = bus.new_method_call(service.c_str(), obj.c_str(),
-                                              "org.freedesktop.DBus.Properties",
-                                              "Set");
+            auto method =
+                bus.new_method_call(service.c_str(), obj.c_str(),
+                                    "org.freedesktop.DBus.Properties", "Set");
             std::variant<bool> propertyVal{true};
             method.append("xyz.openbmc_project.Object.Enable", "Enabled",
                           propertyVal);
diff --git a/mmc/item_updater_mmc.hpp b/mmc/item_updater_mmc.hpp
index 2ef77e4..fc2b6a4 100644
--- a/mmc/item_updater_mmc.hpp
+++ b/mmc/item_updater_mmc.hpp
@@ -83,13 +83,12 @@
         AssociationList& assocs) override;
 
     /** @brief Create Version object */
-    std::unique_ptr<Version>
-        createVersionObject(const std::string& objPath,
-                            const std::string& versionId,
-                            const std::string& versionString,
-                            sdbusplus::xyz::openbmc_project::Software::server::
-                                Version::VersionPurpose versionPurpose,
-                            const std::string& filePath) override;
+    std::unique_ptr<Version> createVersionObject(
+        const std::string& objPath, const std::string& versionId,
+        const std::string& versionString,
+        sdbusplus::xyz::openbmc_project::Software::server::Version::
+            VersionPurpose versionPurpose,
+        const std::string& filePath) override;
 
     /** @brief Validate if image is valid or not */
     bool validateImage(const std::string& path);
