diff --git a/redfish-core/lib/bios.hpp b/redfish-core/lib/bios.hpp
index 6597075..045e2ee 100644
--- a/redfish-core/lib/bios.hpp
+++ b/redfish-core/lib/bios.hpp
@@ -3,7 +3,7 @@
 #include <app.hpp>
 #include <query.hpp>
 #include <registries/privilege_registry.hpp>
-#include <utils/fw_utils.hpp>
+#include <utils/sw_utils.hpp>
 
 namespace redfish
 {
@@ -27,7 +27,7 @@
         {"target", "/redfish/v1/Systems/system/Bios/Actions/Bios.ResetBios"}};
 
     // Get the ActiveSoftwareImage and SoftwareImages
-    fw_util::populateFirmwareInformation(asyncResp, fw_util::biosPurpose, "",
+    sw_util::populateSoftwareInformation(asyncResp, sw_util::biosPurpose, "",
                                          true);
 }
 
diff --git a/redfish-core/lib/managers.hpp b/redfish-core/lib/managers.hpp
index 0a235e0..7b1d1da 100644
--- a/redfish-core/lib/managers.hpp
+++ b/redfish-core/lib/managers.hpp
@@ -24,7 +24,7 @@
 #include <dbus_utility.hpp>
 #include <query.hpp>
 #include <registries/privilege_registry.hpp>
-#include <utils/fw_utils.hpp>
+#include <utils/sw_utils.hpp>
 #include <utils/systemd_utils.hpp>
 
 #include <cstdint>
@@ -2048,7 +2048,7 @@
         health->isManagersHealth = true;
         health->populate();
 
-        fw_util::populateFirmwareInformation(asyncResp, fw_util::bmcPurpose,
+        sw_util::populateSoftwareInformation(asyncResp, sw_util::bmcPurpose,
                                              "FirmwareVersion", true);
 
         managerGetLastResetTime(asyncResp);
diff --git a/redfish-core/lib/systems.hpp b/redfish-core/lib/systems.hpp
index 134c560..0e00341 100644
--- a/redfish-core/lib/systems.hpp
+++ b/redfish-core/lib/systems.hpp
@@ -27,8 +27,8 @@
 #include <dbus_utility.hpp>
 #include <registries/privilege_registry.hpp>
 #include <sdbusplus/asio/property.hpp>
-#include <utils/fw_utils.hpp>
 #include <utils/json_utils.hpp>
+#include <utils/sw_utils.hpp>
 
 #include <variant>
 
@@ -466,8 +466,8 @@
                             }
 
                             // Grab the bios version
-                            fw_util::populateFirmwareInformation(
-                                aResp, fw_util::biosPurpose, "BiosVersion",
+                            sw_util::populateSoftwareInformation(
+                                aResp, sw_util::biosPurpose, "BiosVersion",
                                 false);
                             },
                             connection.first, path,
diff --git a/redfish-core/lib/update_service.hpp b/redfish-core/lib/update_service.hpp
index 4ae7cdf..aa8b0e5 100644
--- a/redfish-core/lib/update_service.hpp
+++ b/redfish-core/lib/update_service.hpp
@@ -22,7 +22,7 @@
 #include <query.hpp>
 #include <registries/privilege_registry.hpp>
 #include <sdbusplus/asio/property.hpp>
-#include <utils/fw_utils.hpp>
+#include <utils/sw_utils.hpp>
 
 namespace redfish
 {
@@ -794,7 +794,7 @@
     getRelatedItems(const std::shared_ptr<bmcweb::AsyncResp>& aResp,
                     const std::string& purpose)
 {
-    if (purpose == fw_util::bmcPurpose)
+    if (purpose == sw_util::bmcPurpose)
     {
         nlohmann::json& relatedItem = aResp->res.jsonValue["RelatedItem"];
         nlohmann::json::object_t item;
@@ -802,7 +802,7 @@
         relatedItem.push_back(std::move(item));
         aResp->res.jsonValue["RelatedItem@odata.count"] = relatedItem.size();
     }
-    else if (purpose == fw_util::biosPurpose)
+    else if (purpose == sw_util::biosPurpose)
     {
         nlohmann::json& relatedItem = aResp->res.jsonValue["RelatedItem"];
         nlohmann::json::object_t item;
@@ -863,7 +863,7 @@
                 }
 
                 found = true;
-                fw_util::getFwStatus(asyncResp, swId, obj.second[0].first);
+                sw_util::getSwStatus(asyncResp, swId, obj.second[0].first);
 
                 crow::connections::systemBus->async_method_call(
                     [asyncResp, swId](const boost::system::error_code errorCode,
@@ -950,7 +950,7 @@
             asyncResp->res.jsonValue["Status"]["HealthRollup"] = "OK";
 
             asyncResp->res.jsonValue["Updateable"] = false;
-            fw_util::getFwUpdateableStatus(asyncResp, swId);
+            sw_util::getSwUpdatableStatus(asyncResp, swId);
             },
             "xyz.openbmc_project.ObjectMapper",
             "/xyz/openbmc_project/object_mapper",
