diff --git a/http/app.hpp b/http/app.hpp
index b5f5c13..08748a3 100644
--- a/http/app.hpp
+++ b/http/app.hpp
@@ -43,15 +43,6 @@
                      std::make_shared<boost::asio::io_context>()) :
         io(std::move(ioIn))
     {}
-    ~App()
-    {
-        stop();
-    }
-
-    App(const App&) = delete;
-    App(App&&) = delete;
-    App& operator=(const App&) = delete;
-    App& operator=(const App&&) = delete;
 
     template <typename Adaptor>
     void handleUpgrade(const std::shared_ptr<Request>& req,
@@ -101,8 +92,7 @@
             return std::nullopt;
         }
         constexpr int defaultPort = 18080;
-        int listenFd = sd_listen_fds(0);
-        if (listenFd == 1)
+        if (sd_listen_fds(0) == 1)
         {
             BMCWEB_LOG_INFO("attempting systemd socket activation");
             if (sd_is_socket_inet(SD_LISTEN_FDS_START, AF_UNSPEC, SOCK_STREAM,
@@ -137,11 +127,6 @@
         server->run();
     }
 
-    void stop()
-    {
-        io->stop();
-    }
-
     void debugPrint()
     {
         BMCWEB_LOG_DEBUG("Routing:");
