diff --git a/redfish-core/include/utils/collection.hpp b/redfish-core/include/utils/collection.hpp
index 31d5da1..e73fce3 100644
--- a/redfish-core/include/utils/collection.hpp
+++ b/redfish-core/include/utils/collection.hpp
@@ -10,13 +10,24 @@
 namespace collection_util
 {
 
-inline void getResourceList(std::shared_ptr<AsyncResp> aResp,
-                            const std::string& subclass,
-                            const std::vector<const char*>& collectionName)
+/**
+ * @brief Populate the collection "Members" from a GetSubTree search of
+ *        inventory
+ *
+ * @param[i,o] aResp  Async response object
+ * @param[i]   collectionPath  Redfish collection path which is used for the
+ *             Members Redfish Path
+ * @param[i]   interfaces  List of interfaces to constrain the GetSubTree search
+ *
+ * @return void
+ */
+inline void getCollectionMembers(std::shared_ptr<AsyncResp> aResp,
+                                 const std::string& collectionPath,
+                                 const std::vector<const char*>& interfaces)
 {
-    BMCWEB_LOG_DEBUG << "Get available system cpu/mem resources.";
+    BMCWEB_LOG_DEBUG << "Get collection members for: " << collectionPath;
     crow::connections::systemBus->async_method_call(
-        [subclass, aResp{std::move(aResp)}](
+        [collectionPath, aResp{std::move(aResp)}](
             const boost::system::error_code ec,
             const boost::container::flat_map<
                 std::string, boost::container::flat_map<
@@ -37,8 +48,7 @@
                 if ((iter != std::string::npos) && (iter < object.first.size()))
                 {
                     members.push_back(
-                        {{"@odata.id", "/redfish/v1/Systems/system/" +
-                                           subclass + "/" +
+                        {{"@odata.id", collectionPath + "/" +
                                            object.first.substr(iter + 1)}});
                 }
             }
@@ -47,7 +57,7 @@
         "xyz.openbmc_project.ObjectMapper",
         "/xyz/openbmc_project/object_mapper",
         "xyz.openbmc_project.ObjectMapper", "GetSubTree",
-        "/xyz/openbmc_project/inventory", 0, collectionName);
+        "/xyz/openbmc_project/inventory", 0, interfaces);
 }
 
 } // namespace collection_util
diff --git a/redfish-core/lib/memory.hpp b/redfish-core/lib/memory.hpp
index a172233..4fa7c11 100644
--- a/redfish-core/lib/memory.hpp
+++ b/redfish-core/lib/memory.hpp
@@ -765,8 +765,9 @@
         res.jsonValue["@odata.id"] = "/redfish/v1/Systems/system/Memory";
         auto asyncResp = std::make_shared<AsyncResp>(res);
 
-        collection_util::getResourceList(
-            asyncResp, "Memory", {"xyz.openbmc_project.Inventory.Item.Dimm"});
+        collection_util::getCollectionMembers(
+            asyncResp, "/redfish/v1/Systems/system/Memory",
+            {"xyz.openbmc_project.Inventory.Item.Dimm"});
     }
 };
 
diff --git a/redfish-core/lib/processor.hpp b/redfish-core/lib/processor.hpp
index 5c98684..4c9b1dc 100644
--- a/redfish-core/lib/processor.hpp
+++ b/redfish-core/lib/processor.hpp
@@ -469,8 +469,8 @@
         res.jsonValue["@odata.id"] = "/redfish/v1/Systems/system/Processors/";
         auto asyncResp = std::make_shared<AsyncResp>(res);
 
-        collection_util::getResourceList(
-            asyncResp, "Processors",
+        collection_util::getCollectionMembers(
+            asyncResp, "/redfish/v1/Systems/system/Processors",
             {"xyz.openbmc_project.Inventory.Item.Cpu",
              "xyz.openbmc_project.Inventory.Item.Accelerator"});
     }
