diff --git a/src/entity_manager.cpp b/src/entity_manager.cpp
index db1dfb8..6a4580d 100644
--- a/src/entity_manager.cpp
+++ b/src/entity_manager.cpp
@@ -198,7 +198,7 @@
                 return -1;
             }
             return 1;
-            });
+        });
     }
 }
 
@@ -231,7 +231,7 @@
             return -1;
         }
         return 1;
-        });
+    });
 }
 
 void createDeleteObjectMethod(
@@ -466,7 +466,7 @@
             std::visit(
                 [&newJson](auto&& val) {
                 newJson = std::forward<decltype(val)>(val);
-                },
+            },
                 item.second);
         }
 
@@ -558,7 +558,7 @@
             jsonPointerPath + "/Exposes/" + std::to_string(lastIndex),
             interface, newData, objServer,
             sdbusplus::asio::PropertyPermission::readWrite);
-        });
+    });
     iface->initialize();
 }
 
@@ -1113,7 +1113,7 @@
                                     count, std::ref(timer),
                                     std::ref(systemConfiguration),
                                     newConfiguration, std::ref(objServer)));
-            });
+        });
         perfScan->run();
     });
 }
@@ -1263,7 +1263,7 @@
         }
 
         propertiesChangedCallback(systemConfiguration, objServer);
-        });
+    });
     // We also need a poke from DBus when new interfaces are created or
     // destroyed.
     sdbusplus::bus::match_t interfacesAddedMatch(
@@ -1274,7 +1274,7 @@
         {
             propertiesChangedCallback(systemConfiguration, objServer);
         }
-        });
+    });
     sdbusplus::bus::match_t interfacesRemovedMatch(
         static_cast<sdbusplus::bus_t&>(*systemBus),
         sdbusplus::bus::match::rules::interfacesRemoved(),
@@ -1283,7 +1283,7 @@
         {
             propertiesChangedCallback(systemConfiguration, objServer);
         }
-        });
+    });
 
     boost::asio::post(io, [&]() {
         propertiesChangedCallback(systemConfiguration, objServer);
