diff --git a/http/app.hpp b/http/app.hpp
index 03de3f8..c1472e5 100644
--- a/http/app.hpp
+++ b/http/app.hpp
@@ -142,7 +142,7 @@
 
     std::vector<const std::string*> getRoutes()
     {
-        const std::string root("");
+        const std::string root;
         return router.getRoutes(root);
     }
     std::vector<const std::string*> getRoutes(const std::string& parent)
diff --git a/http/http_connection.hpp b/http/http_connection.hpp
index 0b58e9b..61d3f7b 100644
--- a/http/http_connection.hpp
+++ b/http/http_connection.hpp
@@ -261,7 +261,7 @@
                 return true;
             }
             sslUser.resize(lastChar);
-            std::string unsupportedClientId = "";
+            std::string unsupportedClientId;
             sessionIsFromTransport = true;
             userSession = persistent_data::SessionStore::getInstance()
                               .generateUserSession(
@@ -725,7 +725,6 @@
         BMCWEB_LOG_DEBUG << this << " timer started";
     }
 
-  private:
     Adaptor adaptor;
     Handler* handler;
     // Making this a std::optional allows it to be efficiently destroyed and
diff --git a/http/websocket.hpp b/http/websocket.hpp
index eadb276..213c4c7 100644
--- a/http/websocket.hpp
+++ b/http/websocket.hpp
@@ -77,7 +77,7 @@
         std::function<void(Connection&, const std::string&)> closeHandler,
         std::function<void(Connection&)> errorHandler) :
         Connection(reqIn, reqIn.session->username),
-        ws(std::move(adaptorIn)), inString(), inBuffer(inString, 131088),
+        ws(std::move(adaptorIn)), inBuffer(inString, 131088),
         openHandler(std::move(openHandler)),
         messageHandler(std::move(messageHandler)),
         closeHandler(std::move(closeHandler)),
