diff --git a/main.cpp b/main.cpp
index 27661c1..8fc27f4 100644
--- a/main.cpp
+++ b/main.cpp
@@ -34,7 +34,6 @@
     singletonPool(manager, table, loop, solManager);
 
 sd_bus* bus = nullptr;
-sd_event* events = nullptr;
 
 std::shared_ptr<sdbusplus::asio::connection> sdbusp;
 
@@ -70,14 +69,6 @@
         return rc;
     }
 
-    /* Get an sd event handler */
-    rc = sd_event_default(&events);
-    if (rc < 0)
-    {
-        log<level::ERR>("Failure to create sd_event",
-                        entry("ERROR=%s", strerror(-rc)));
-        return EXIT_FAILURE;
-    }
     sdbusp = std::make_shared<sdbusplus::asio::connection>(*io, bus);
 
     // Register callback to update cache for a GUID change and cache the GUID
diff --git a/sd_event_loop.cpp b/sd_event_loop.cpp
index 8c9abf4..ee25960 100644
--- a/sd_event_loop.cpp
+++ b/sd_event_loop.cpp
@@ -48,9 +48,6 @@
 
 int EventLoop::startEventLoop()
 {
-    sdbusplus::asio::sd_event_wrapper sdEvents(*io);
-    event = sdEvents.get();
-
     // set up boost::asio signal handling
     boost::asio::signal_set signals(*io, SIGINT, SIGTERM);
     signals.async_wait(
diff --git a/sd_event_loop.hpp b/sd_event_loop.hpp
index 10b24ed..a626490 100644
--- a/sd_event_loop.hpp
+++ b/sd_event_loop.hpp
@@ -31,9 +31,6 @@
      */
     int startEventLoop();
 
-    /** @brief Event loop object. */
-    sd_event* event = nullptr;
-
   private:
     /** @brief async handler for incoming udp packets */
     void handleRmcpPacket();
