diff --git a/presence/Makefile.am b/presence/Makefile.am
index eb4dd6c..8fa0259 100644
--- a/presence/Makefile.am
+++ b/presence/Makefile.am
@@ -16,11 +16,13 @@
 phosphor_fan_presence_tach_LDADD = \
 	$(top_builddir)/libfan.la \
 	$(SDBUSPLUS_LIBS) \
+	$(SDEVENTPLUS_LIBS) \
 	$(PHOSPHOR_LOGGING_LIBS) \
 	${PHOSPHOR_DBUS_INTERFACES_LIBS} \
 	$(LIBEVDEV_LIBS)
 phosphor_fan_presence_tach_CXXFLAGS = \
 	$(SDBUSPLUS_CFLAGS) \
+	$(SDEVENTPLUS_CFLAGS) \
 	$(PHOSPHOR_LOGGING_CFLAGS) \
 	${PHOSPHOR_DBUS_INTERFACES_CFLAGS} \
 	$(LIBEVDEV_CFLAGS) \
diff --git a/presence/gpio.cpp b/presence/gpio.cpp
index 2a0a4c0..19593c2 100644
--- a/presence/gpio.cpp
+++ b/presence/gpio.cpp
@@ -13,14 +13,14 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-#include <memory>
+#include <functional>
 #include <phosphor-logging/elog-errors.hpp>
 #include <phosphor-logging/elog.hpp>
+#include <sdeventplus/event.hpp>
 #include <tuple>
 #include <xyz/openbmc_project/Common/Callout/error.hpp>
 #include "gpio.hpp"
 #include "rpolicy.hpp"
-#include "sdevent.hpp"
 
 namespace phosphor
 {
@@ -37,25 +37,23 @@
     evdevfd(open(device.c_str(), O_RDONLY | O_NONBLOCK)),
     evdev(evdevpp::evdev::newFromFD(evdevfd())),
     phys(physDevice),
-    pin(physPin),
-    callback(nullptr)
+    pin(physPin)
 {
 
 }
 
 bool Gpio::start()
 {
-    callback = std::make_unique<sdevent::event::io::IO>(
-            util::SDEvent::getEvent(),
-            evdevfd(),
-            [this](auto& s){this->ioCallback(s);});
+    source.emplace(sdeventplus::Event::get_default(),
+            evdevfd(), EPOLLIN,
+            std::bind(&Gpio::ioCallback, this));
     currentState = present();
     return currentState;
 }
 
 void Gpio::stop()
 {
-    callback = nullptr;
+    source.reset();
 }
 
 bool Gpio::present()
@@ -75,7 +73,7 @@
             GPIO::CALLOUT_DEVICE_PATH(phys.c_str()));
 }
 
-void Gpio::ioCallback(sdevent::source::Source& source)
+void Gpio::ioCallback()
 {
     unsigned int type, code, value;
 
diff --git a/presence/gpio.hpp b/presence/gpio.hpp
index 978fdd9..2829bea 100644
--- a/presence/gpio.hpp
+++ b/presence/gpio.hpp
@@ -1,9 +1,8 @@
 #pragma once
 
-#include <memory>
+#include <sdeventplus/source/io.hpp>
+#include <optional>
 #include "evdevpp/evdev.hpp"
-#include "sdevent/io.hpp"
-#include "sdevent/source.hpp"
 #include "psensor.hpp"
 #include "utility.hpp"
 
@@ -85,7 +84,7 @@
         virtual RedundancyPolicy& getPolicy() = 0;
 
          /** @brief sdevent io callback. */
-        void ioCallback(sdevent::source::Source& source);
+        void ioCallback();
 
         /** The current state of the sensor. */
         bool currentState;
@@ -102,8 +101,8 @@
         /** Gpio pin number. */
         unsigned int pin;
 
-        /** sdevent io callback handle. */
-        std::unique_ptr<sdevent::event::io::IO> callback;
+        /** sdevent io handle. */
+        std::optional<sdeventplus::source::IO> source;
 };
 
 } // namespace presence
diff --git a/presence/tach_detect.cpp b/presence/tach_detect.cpp
index da0f40f..9b23571 100644
--- a/presence/tach_detect.cpp
+++ b/presence/tach_detect.cpp
@@ -15,24 +15,20 @@
  */
 #include "generated.hpp"
 #include "sdbusplus.hpp"
-#include "sdevent.hpp"
-
+#include <sdeventplus/event.hpp>
 
 int main(void)
 {
     using namespace phosphor::fan;
 
-    auto& event = util::SDEvent::getEvent();
-    event.attach(util::SDBusPlus::getBus());
+    auto event = sdeventplus::Event::get_default();
+    util::SDBusPlus::getBus().attach_event(
+            event.get(), SD_EVENT_PRIORITY_NORMAL);
 
     for (auto& p: presence::ConfigPolicy::get())
     {
         p->monitor();
     }
 
-    event.loop();
-
-    // The loop should never exit.  Exit with
-    // non zero status just in case.
-    return 1;
+    return event.loop();
 }
