diff --git a/src/sdeventplus/source/base.cpp b/src/sdeventplus/source/base.cpp
index 3e164ca..d9dd127 100644
--- a/src/sdeventplus/source/base.cpp
+++ b/src/sdeventplus/source/base.cpp
@@ -45,6 +45,11 @@
     }
 }
 
+sd_event_source* Base::get() const
+{
+    return source.get();
+}
+
 const Event& Base::get_event() const
 {
     return event;
diff --git a/src/sdeventplus/source/base.hpp b/src/sdeventplus/source/base.hpp
index f8db620..b6fd47b 100644
--- a/src/sdeventplus/source/base.hpp
+++ b/src/sdeventplus/source/base.hpp
@@ -27,6 +27,7 @@
 
     int prepareCallback();
 
+    sd_event_source* get() const;
     const Event& get_event() const;
 
     const char* get_description() const;
diff --git a/test/source/base.cpp b/test/source/base.cpp
index c9b248f..4894840 100644
--- a/test/source/base.cpp
+++ b/test/source/base.cpp
@@ -64,6 +64,9 @@
     EXPECT_CALL(mock, sd_event_source_ref(expected_source))
         .WillOnce(Return(expected_source));
     BaseImpl source(*event, expected_source);
+    EXPECT_EQ(expected_source, source.get());
+    EXPECT_NE(event.get(), &source.get_event());
+    EXPECT_EQ(expected_event, source.get_event().get());
 
     {
         testing::InSequence seq;
@@ -81,6 +84,9 @@
     EXPECT_CALL(mock, sd_event_ref(expected_event))
         .WillOnce(Return(expected_event));
     BaseImpl source(*event, expected_source, std::false_type());
+    EXPECT_EQ(expected_source, source.get());
+    EXPECT_NE(event.get(), &source.get_event());
+    EXPECT_EQ(expected_event, source.get_event().get());
 
     {
         testing::InSequence seq;
@@ -98,6 +104,9 @@
     EXPECT_CALL(mock, sd_event_ref(expected_event))
         .WillOnce(Return(expected_event));
     BaseImpl source(*event, nullptr, std::false_type());
+    EXPECT_EQ(nullptr, source.get());
+    EXPECT_NE(event.get(), &source.get_event());
+    EXPECT_EQ(expected_event, source.get_event().get());
 
     EXPECT_CALL(mock, sd_event_source_unref(nullptr)).WillOnce(Return(nullptr));
     EXPECT_CALL(mock, sd_event_unref(expected_event)).WillOnce(Return(nullptr));
@@ -134,12 +143,6 @@
     }
 };
 
-TEST_F(BaseMethodTest, GetEvent)
-{
-    EXPECT_NE(event.get(), &base->get_event());
-    EXPECT_EQ(event->get(), base->get_event().get());
-}
-
 TEST_F(BaseMethodTest, GetDescriptionSuccess)
 {
     const char* expected = "test_desc";
