diff --git a/redfish-core/include/node.hpp b/redfish-core/include/node.hpp
index 1793a50..a1b7d72 100644
--- a/redfish-core/include/node.hpp
+++ b/redfish-core/include/node.hpp
@@ -218,36 +218,6 @@
     {
         asyncResp->res.result(boost::beast::http::status::method_not_allowed);
     }
-
-    /* @brief Would the operation be allowed if the user did not have the
-     * ConfigureSelf Privilege?  Also honors session.isConfigureSelfOnly.
-     *
-     * @param req      the request
-     *
-     * @returns        True if allowed, false otherwise
-     */
-    inline bool isAllowedWithoutConfigureSelf(const crow::Request& req)
-    {
-        const std::string& userRole = req.userRole;
-        BMCWEB_LOG_DEBUG << "isAllowedWithoutConfigureSelf for the role "
-                         << req.userRole;
-        Privileges effectiveUserPrivileges;
-        if (req.session && req.session->isConfigureSelfOnly)
-        {
-            // The session has no privileges because it is limited to
-            // configureSelfOnly and we are disregarding that privilege.
-            // Note that some operations do not require any privilege.
-        }
-        else
-        {
-            effectiveUserPrivileges = redfish::getUserPrivileges(userRole);
-            effectiveUserPrivileges.resetSinglePrivilege("ConfigureSelf");
-        }
-        const auto& requiredPrivilegesIt = entityPrivileges.find(req.method());
-        return (requiredPrivilegesIt != entityPrivileges.end()) &&
-               isOperationAllowedWithPrivileges(requiredPrivilegesIt->second,
-                                                effectiveUserPrivileges);
-    }
 };
 
 } // namespace redfish
diff --git a/redfish-core/include/redfish.hpp b/redfish-core/include/redfish.hpp
index 7429b77..2ff7b62 100644
--- a/redfish-core/include/redfish.hpp
+++ b/redfish-core/include/redfish.hpp
@@ -63,10 +63,7 @@
      */
     RedfishService(App& app)
     {
-        nodes.emplace_back(std::make_unique<AccountService>(app));
-        nodes.emplace_back(std::make_unique<AccountsCollection>(app));
-        nodes.emplace_back(std::make_unique<ManagerAccount>(app));
-        nodes.emplace_back(std::make_unique<SessionCollection>(app));
+        requestAccountServiceRoutes(app);
         requestRoutesRoles(app);
         requestRoutesRoleCollection(app);
         requestRoutesServiceRoot(app);
