diff --git a/main.cpp b/main.cpp
index b8a5adb..1798dc0 100644
--- a/main.cpp
+++ b/main.cpp
@@ -8,6 +8,20 @@
 int main()
 {
     auto bus = sdbusplus::bus::new_default();
+    sd_event* event = nullptr;
+
+    auto eventDeleter = [](sd_event* e) {
+        e = sd_event_unref(e);
+    };
+    using SdEvent = std::unique_ptr<sd_event, decltype(eventDeleter)>;
+
+    // acquire a referece to the default event loop
+    sd_event_default(&event);
+    SdEvent sdEvent {event, eventDeleter};
+    event = nullptr;
+
+    // attach bus to this event loop
+    bus.attach_event(sdEvent.get(), SD_EVENT_PRIORITY_NORMAL);
 
     // Add sdbusplus ObjectManager
     sdbusplus::server::manager::manager bmcEpochObjManager(bus, OBJPATH_BMC);
@@ -19,13 +33,14 @@
 
     manager.addListener(&bmc);
     manager.addListener(&host);
+    bmc.setBmcTimeChangeListener(&host);
 
     bus.request_name(BUSNAME);
 
-    while (true)
-    {
-        bus.process_discard();
-        bus.wait();
-    }
+    // Start event loop for all sd-bus events and timer event
+    sd_event_loop(bus.get_event());
+
+    bus.detach_event();
+
     return 0;
 }
