diff --git a/redfish-core/lib/account_service.hpp b/redfish-core/lib/account_service.hpp
index b58ff11..53b67a4 100644
--- a/redfish-core/lib/account_service.hpp
+++ b/redfish-core/lib/account_service.hpp
@@ -22,9 +22,7 @@
 class AccountService : public Node {
  public:
   template <typename CrowApp>
-  AccountService(CrowApp& app)
-      : Node(app,
-             "/redfish/v1/AccountService/") {
+  AccountService(CrowApp& app) : Node(app, "/redfish/v1/AccountService/") {
     Node::json["@odata.id"] = "/redfish/v1/AccountService";
     Node::json["@odata.type"] = "#AccountService.v1_1_0.AccountService";
     Node::json["@odata.context"] =
@@ -32,9 +30,6 @@
     Node::json["Id"] = "AccountService";
     Node::json["Description"] = "BMC User Accounts";
     Node::json["Name"] = "Account Service";
-    Node::json["Status"]["State"] = "Enabled";
-    Node::json["Status"]["Health"] = "OK";
-    Node::json["Status"]["HealthRollup"] = "OK";
     Node::json["ServiceEnabled"] = true;
     Node::json["MinPasswordLength"] = 1;
     Node::json["MaxPasswordLength"] = 20;
diff --git a/redfish-core/lib/chassis.hpp b/redfish-core/lib/chassis.hpp
index 8f88eb1..02a614b 100644
--- a/redfish-core/lib/chassis.hpp
+++ b/redfish-core/lib/chassis.hpp
@@ -213,6 +213,7 @@
     Node::json["@odata.id"] = "/redfish/v1/Chassis";
     Node::json["@odata.context"] = "/redfish/v1/$metadata#Chassis.Chassis";
     Node::json["Name"] = "Chassis Collection";
+    Node::json["ChassisType"] = "RackMount";
 
     entityPrivileges = {{crow::HTTPMethod::GET, {{"Login"}}},
                         {crow::HTTPMethod::HEAD, {{"Login"}}},
@@ -256,8 +257,8 @@
                  output) {
               json_response[chassis_item.first] = chassis_item.second;
             }
-            json_response["Id"] = chassis_id;
 
+            json_response["Id"] = chassis_id;
             // prepare respond, and send
             res.json_value = json_response;
           } else {
diff --git a/redfish-core/lib/managers.hpp b/redfish-core/lib/managers.hpp
index ad042cb..7032a20 100644
--- a/redfish-core/lib/managers.hpp
+++ b/redfish-core/lib/managers.hpp
@@ -29,9 +29,6 @@
     Node::json["Name"] = "OpenBmc Manager";
     Node::json["Description"] = "Baseboard Management Controller";
     Node::json["PowerState"] = "On";
-    Node::json["Status"]["Health"] = "OK";
-    Node::json["Status"]["HealthRollup"] = "OK";
-    Node::json["Status"]["State"] = "Enabled";
     Node::json["UUID"] =
         app.template get_middleware<crow::PersistentData::Middleware>()
             .system_uuid;
@@ -80,7 +77,7 @@
         "/redfish/v1/$metadata#ManagerCollection.ManagerCollection";
     Node::json["Name"] = "Manager Collection";
     Node::json["Members@odata.count"] = 1;
-    Node::json["Members"] = {{"@odata.id", "/redfish/v1/Managers/openbmc"}};
+    Node::json["Members"] = {{{"@odata.id", "/redfish/v1/Managers/openbmc"}}};
 
     entityPrivileges = {{crow::HTTPMethod::GET, {{"Login"}}},
                         {crow::HTTPMethod::HEAD, {{"Login"}}},
diff --git a/redfish-core/lib/redfish_sessions.hpp b/redfish-core/lib/redfish_sessions.hpp
index 326d5e0..4e429e8 100644
--- a/redfish-core/lib/redfish_sessions.hpp
+++ b/redfish-core/lib/redfish_sessions.hpp
@@ -25,7 +25,7 @@
 class Sessions : public Node {
  public:
   Sessions(CrowApp& app)
-      : Node(app, "/redfish/v1/SessionService/Sessions/<str>", std::string()) {
+      : Node(app, "/redfish/v1/SessionService/Sessions/<str>/", std::string()) {
     Node::json["@odata.type"] = "#Session.v1_0_2.Session";
     Node::json["@odata.context"] = "/redfish/v1/$metadata#Session.Session";
     Node::json["Name"] = "User Session";
@@ -236,12 +236,10 @@
     Node::json["@odata.context"] =
         "/redfish/v1/$metadata#SessionService.SessionService";
     Node::json["Name"] = "Session Service";
+    Node::json["Id"] = "SessionService";
     Node::json["Description"] = "Session Service";
     Node::json["SessionTimeout"] =
         crow::PersistentData::session_store->get_timeout_in_seconds();
-    Node::json["Status"]["State"] = "Enabled";
-    Node::json["Status"]["Health"] = "OK";
-    Node::json["Status"]["HealthRollup"] = "OK";
     Node::json["ServiceEnabled"] = true;
 
     entityPrivileges = {{crow::HTTPMethod::GET, {{"Login"}}},
diff --git a/redfish-core/lib/roles.hpp b/redfish-core/lib/roles.hpp
index fc804c2..7b7a804 100644
--- a/redfish-core/lib/roles.hpp
+++ b/redfish-core/lib/roles.hpp
@@ -62,7 +62,7 @@
     Node::json["Description"] = "BMC User Roles";
     Node::json["Members@odata.count"] = 1;
     Node::json["Members"] = {
-        {"@odata.id", "/redfish/v1/AccountService/Roles/Administrator"}};
+        {{"@odata.id", "/redfish/v1/AccountService/Roles/Administrator"}}};
 
     entityPrivileges = {{crow::HTTPMethod::GET, {{"Login"}}},
                         {crow::HTTPMethod::HEAD, {{"Login"}}},
@@ -76,6 +76,11 @@
   void doGet(crow::response& res, const crow::request& req,
              const std::vector<std::string>& params) override {
     res.json_value = Node::json;
+    // This is a short term solution to work around a bug.  GetSubroutes
+    // accidentally recognizes the Roles/Administrator route as a subroute
+    // (because it's hardcoded to a single entity).  Remove this line when that
+    // is resolved
+    res.json_value.erase("Administrator");
     res.end();
   }
 };
