diff --git a/handler_impl.hpp b/handler_impl.hpp
index 5d74435..7b58523 100644
--- a/handler_impl.hpp
+++ b/handler_impl.hpp
@@ -1,4 +1,4 @@
-// Copyright 2022 Google LLC
+// Copyright 2023 Google LLC
 //
 // Licensed under the Apache License, Version 2.0 (the "License");
 // you may not use this file except in compliance with the License.
@@ -15,6 +15,7 @@
 #pragma once
 
 #include "bifurcation.hpp"
+#include "file_system_wrapper_impl.hpp"
 #include "handler.hpp"
 
 #include <nlohmann/json.hpp>
@@ -22,6 +23,7 @@
 
 #include <cstdint>
 #include <map>
+#include <memory>
 #include <string>
 #include <string_view>
 #include <tuple>
@@ -39,12 +41,13 @@
 {
   public:
     explicit Handler(const std::string& entityConfigPath = defaultConfigFile) :
+        fsPtr(std::make_unique<FileSystemWrapper>()),
         _configFile(entityConfigPath),
         bifurcationHelper(BifurcationStatic::createBifurcation()){};
     Handler(std::reference_wrapper<BifurcationInterface> bifurcationHelper,
             const std::string& entityConfigPath = defaultConfigFile) :
-        _configFile(entityConfigPath),
-        bifurcationHelper(bifurcationHelper){};
+        fsPtr(std::make_unique<FileSystemWrapper>()),
+        _configFile(entityConfigPath), bifurcationHelper(bifurcationHelper){};
     ~Handler() = default;
 
     uint8_t getBmcMode() override;
@@ -75,8 +78,11 @@
   protected:
     // Exposed for dependency injection
     virtual sdbusplus::bus_t getDbus() const;
+    virtual const std::unique_ptr<FileSystemInterface>& getFs() const;
 
   private:
+    std::unique_ptr<FileSystemInterface> fsPtr;
+
     std::string _configFile;
 
     bool _entityConfigParsed = false;
