diff --git a/blobs-ipmid/manager.hpp b/blobs-ipmid/manager.hpp
index 8220e0e..14c8b98 100644
--- a/blobs-ipmid/manager.hpp
+++ b/blobs-ipmid/manager.hpp
@@ -250,4 +250,12 @@
     /* Mapping of open blobIds */
     std::unordered_map<std::string, int> openFiles;
 };
+
+/**
+ * @brief Gets a handle to the BlobManager.
+ *
+ * @return a pointer to the BlobManager instance.
+ */
+BlobManager* getBlobManager();
+
 } // namespace blobs
diff --git a/main.cpp b/main.cpp
index a28a232..e0828db 100644
--- a/main.cpp
+++ b/main.cpp
@@ -39,8 +39,6 @@
 namespace blobs
 {
 
-static std::unique_ptr<BlobManager> manager;
-
 static ipmi_ret_t handleBlobCommand(ipmi_cmd_t cmd, const uint8_t* reqBuf,
                                     uint8_t* replyCmdBuf, size_t* dataLen)
 {
@@ -60,7 +58,8 @@
         return IPMI_CC_INVALID;
     }
 
-    return processBlobCommand(command, manager.get(), &crc, reqBuf, replyCmdBuf,
+    BlobManager* manager = getBlobManager();
+    return processBlobCommand(command, manager, &crc, reqBuf, replyCmdBuf,
                               dataLen);
 }
 
@@ -76,9 +75,8 @@
     oemRouter->registerHandler(oem::obmcOemNumber, oem::blobTransferCmd,
                                handleBlobCommand);
 
-    manager = std::make_unique<BlobManager>();
-
 #if ENABLE_EXAMPLE
+    BlobManager* manager = getBlobManager();
     manager->registerHandler(std::move(std::make_unique<ExampleBlobHandler>()));
 #endif
 }
diff --git a/manager.cpp b/manager.cpp
index 9a87b4f..5ab7eb3 100644
--- a/manager.cpp
+++ b/manager.cpp
@@ -15,6 +15,7 @@
  */
 
 #include <blobs-ipmid/manager.hpp>
+#include <memory>
 #include <string>
 #include <vector>
 
@@ -343,4 +344,17 @@
 
     return false;
 }
+
+static std::unique_ptr<BlobManager> manager;
+
+BlobManager* getBlobManager()
+{
+    if (manager == nullptr)
+    {
+        manager = std::make_unique<BlobManager>();
+    }
+
+    return manager.get();
+}
+
 } // namespace blobs
