diff --git a/firmware_handler.cpp b/firmware_handler.cpp
index e459c61..89c7891 100644
--- a/firmware_handler.cpp
+++ b/firmware_handler.cpp
@@ -1,5 +1,3 @@
-#include "config.h"
-
 #include "firmware_handler.hpp"
 
 #include <memory>
@@ -9,17 +7,11 @@
 namespace blobs
 {
 
-std::vector<std::string> supportedFirmware = {
-    "/flash/hash",
-#ifdef ENABLE_STATIC_LAYOUT
-    "/flash/image",
-#endif
-};
-
 std::unique_ptr<GenericBlobInterface>
-    FirmwareBlobHandler::CreateFirmwareBlobHandler()
+    FirmwareBlobHandler::CreateFirmwareBlobHandler(
+        const std::vector<std::string>& firmwares)
 {
-    return std::make_unique<FirmwareBlobHandler>();
+    return std::make_unique<FirmwareBlobHandler>(firmwares);
 }
 
 bool FirmwareBlobHandler::canHandleBlob(const std::string& path)
@@ -34,7 +26,7 @@
      * Grab the list of supported firmware.
      * If there's an open session, add that to this list.
      */
-    std::vector<std::string> blobs = supportedFirmware;
+    std::vector<std::string> blobs = baseFirmwares;
 
     /*
      * If there's an open firmware session, it'll add "/flash/active/image",
diff --git a/firmware_handler.hpp b/firmware_handler.hpp
index e22c335..b206f56 100644
--- a/firmware_handler.hpp
+++ b/firmware_handler.hpp
@@ -2,6 +2,8 @@
 
 #include <blobs-ipmid/blobs.hpp>
 #include <memory>
+#include <string>
+#include <vector>
 
 namespace blobs
 {
@@ -19,9 +21,13 @@
 class FirmwareBlobHandler : public GenericBlobInterface
 {
   public:
-    static std::unique_ptr<GenericBlobInterface> CreateFirmwareBlobHandler();
+    static std::unique_ptr<GenericBlobInterface>
+        CreateFirmwareBlobHandler(const std::vector<std::string>& firmwares);
 
-    FirmwareBlobHandler() = default;
+    explicit FirmwareBlobHandler(const std::vector<std::string>& firmwares) :
+        baseFirmwares(firmwares)
+    {
+    }
     ~FirmwareBlobHandler() = default;
     FirmwareBlobHandler(const FirmwareBlobHandler&) = default;
     FirmwareBlobHandler& operator=(const FirmwareBlobHandler&) = default;
@@ -44,6 +50,9 @@
     bool close(uint16_t session) override;
     bool stat(uint16_t session, struct BlobMeta* meta) override;
     bool expire(uint16_t session) override;
+
+  private:
+    std::vector<std::string> baseFirmwares;
 };
 
 } // namespace blobs
diff --git a/main.cpp b/main.cpp
index b7d35d1..0ec159f 100644
--- a/main.cpp
+++ b/main.cpp
@@ -1,3 +1,5 @@
+#include "config.h"
+
 #include "firmware_handler.hpp"
 
 #include <blobs-ipmid/manager.hpp>
@@ -8,13 +10,20 @@
 {
 using namespace phosphor::logging;
 
+std::vector<std::string> supportedFirmware = {
+    "/flash/hash",
+#ifdef ENABLE_STATIC_LAYOUT
+    "/flash/image",
+#endif
+};
+
 void setupFirmwareHandler() __attribute__((constructor));
 
 void setupFirmwareHandler()
 {
     auto* manager = getBlobManager();
     if (!manager->registerHandler(
-            FirmwareBlobHandler::CreateFirmwareBlobHandler()))
+            FirmwareBlobHandler::CreateFirmwareBlobHandler(supportedFirmware)))
     {
         log<level::ERR>("Failed to register Firmware Handler");
     }
