diff --git a/bmc/main.cpp b/bmc/main.cpp
index ea27b3d..ce2ca9f 100644
--- a/bmc/main.cpp
+++ b/bmc/main.cpp
@@ -39,7 +39,9 @@
 {
 namespace
 {
+
 FileHandler hashHandler(HASH_FILENAME);
+
 #ifdef ENABLE_STATIC_LAYOUT
 FileHandler staticLayoutHandler(STATIC_HANDLER_STAGED_NAME);
 #endif
@@ -91,7 +93,6 @@
 };
 
 } // namespace
-
 } // namespace ipmi_flash
 
 extern "C" {
@@ -100,8 +101,6 @@
 
 std::unique_ptr<blobs::GenericBlobInterface> createHandler()
 {
-    using namespace phosphor::logging;
-
 #ifdef ENABLE_REBOOT_UPDATE
     static constexpr auto rebootTarget = "reboot.target";
     static constexpr auto rebootMode = "replace-irreversibly";
@@ -113,17 +112,21 @@
         sdbusplus::bus::new_default(), UPDATE_DBUS_SERVICE);
 #endif
 
+    auto prepare = ipmi_flash::SystemdPreparation::CreatePreparation(
+        sdbusplus::bus::new_default(), PREPARATION_DBUS_SERVICE);
+
+    auto verifier = ipmi_flash::SystemdVerification::CreateVerification(
+        sdbusplus::bus::new_default(), VERIFY_STATUS_FILENAME,
+        VERIFY_DBUS_SERVICE);
+
     auto handler = ipmi_flash::FirmwareBlobHandler::CreateFirmwareBlobHandler(
         ipmi_flash::supportedFirmware, ipmi_flash::supportedTransports,
-        ipmi_flash::SystemdPreparation::CreatePreparation(
-            sdbusplus::bus::new_default(), PREPARATION_DBUS_SERVICE),
-        ipmi_flash::SystemdVerification::CreateVerification(
-            sdbusplus::bus::new_default(), VERIFY_STATUS_FILENAME,
-            VERIFY_DBUS_SERVICE),
-        std::move(updater));
+        std::move(prepare), std::move(verifier), std::move(updater));
 
     if (!handler)
     {
+        using namespace phosphor::logging;
+
         log<level::ERR>("Firmware Handler has invalid configuration");
         return nullptr;
     }
