diff --git a/http/app.h b/http/app.h
index 2eca4d2..ff8642d 100644
--- a/http/app.h
+++ b/http/app.h
@@ -211,7 +211,7 @@
 #endif
 
   private:
-    std::shared_ptr<asio::io_context> io;
+    std::shared_ptr<boost::asio::io_context> io;
 #ifdef BMCWEB_ENABLE_SSL
     uint16_t portUint = 443;
 #else
diff --git a/http/http_connection.h b/http/http_connection.h
index 7781ca6..7e23de4 100644
--- a/http/http_connection.h
+++ b/http/http_connection.h
@@ -58,9 +58,6 @@
     res.addHeader("Content-Type", "text/html;charset=UTF-8");
 }
 
-using namespace boost;
-using tcp = asio::ip::tcp;
-
 #ifdef BMCWEB_ENABLE_DEBUG
 static std::atomic<int> connectionCount;
 #endif
diff --git a/http/http_server.h b/http/http_server.h
index 422b3a7..92971fb 100644
--- a/http/http_server.h
+++ b/http/http_server.h
@@ -24,14 +24,13 @@
 
 namespace crow
 {
-using namespace boost;
-using tcp = asio::ip::tcp;
 
 template <typename Handler, typename Adaptor = boost::asio::ip::tcp::socket>
 class Server
 {
   public:
-    Server(Handler* handlerIn, std::unique_ptr<tcp::acceptor>&& acceptorIn,
+    Server(Handler* handlerIn,
+           std::unique_ptr<boost::asio::ip::tcp::acceptor>&& acceptorIn,
            std::shared_ptr<boost::asio::ssl::context> adaptor_ctx,
            std::shared_ptr<boost::asio::io_context> io =
                std::make_shared<boost::asio::io_context>()) :
@@ -46,9 +45,9 @@
            std::shared_ptr<boost::asio::io_context> io =
                std::make_shared<boost::asio::io_context>()) :
         Server(handlerIn,
-               std::make_unique<tcp::acceptor>(
-                   *io, tcp::endpoint(boost::asio::ip::make_address(bindaddr),
-                                      port)),
+               std::make_unique<boost::asio::ip::tcp::acceptor>(
+                   *io, boost::asio::ip::tcp::endpoint(
+                            boost::asio::ip::make_address(bindaddr), port)),
                adaptor_ctx, io)
     {}
 
@@ -57,8 +56,8 @@
            std::shared_ptr<boost::asio::io_context> io =
                std::make_shared<boost::asio::io_context>()) :
         Server(handlerIn,
-               std::make_unique<tcp::acceptor>(*io, boost::asio::ip::tcp::v6(),
-                                               existing_socket),
+               std::make_unique<boost::asio::ip::tcp::acceptor>(
+                   *io, boost::asio::ip::tcp::v6(), existing_socket),
                adaptor_ctx, io)
     {}
 
@@ -220,10 +219,10 @@
     }
 
   private:
-    std::shared_ptr<asio::io_context> ioService;
+    std::shared_ptr<boost::asio::io_context> ioService;
     detail::TimerQueue timerQueue;
     std::function<std::string()> getCachedDateStr;
-    std::unique_ptr<tcp::acceptor> acceptor;
+    std::unique_ptr<boost::asio::ip::tcp::acceptor> acceptor;
     boost::asio::signal_set signals;
     boost::asio::steady_timer timer;
 
