diff --git a/sdbusplus/bus.hpp b/sdbusplus/bus.hpp
index 84f45ce..b814380 100644
--- a/sdbusplus/bus.hpp
+++ b/sdbusplus/bus.hpp
@@ -12,6 +12,7 @@
 namespace server { namespace interface { struct interface; } }
 namespace server { namespace manager { struct manager; } }
 namespace server { namespace object { template<class...> struct object; } }
+namespace server { namespace match { struct match; } }
 
 namespace bus
 {
@@ -169,6 +170,7 @@
     friend struct server::interface::interface;
     friend struct server::manager::manager;
     template<class... Args> friend struct server::object::object;
+    friend struct server::match::match;
 
     private:
         busp_t get() { return _bus.get(); }
diff --git a/sdbusplus/server.hpp b/sdbusplus/server.hpp
index 6ec9757..bbea03b 100644
--- a/sdbusplus/server.hpp
+++ b/sdbusplus/server.hpp
@@ -6,3 +6,4 @@
 #include <sdbusplus/server/interface.hpp>
 #include <sdbusplus/server/manager.hpp>
 #include <sdbusplus/server/object.hpp>
+#include <sdbusplus/server/match.hpp>
diff --git a/sdbusplus/server/match.hpp b/sdbusplus/server/match.hpp
new file mode 100644
index 0000000..e7902f6
--- /dev/null
+++ b/sdbusplus/server/match.hpp
@@ -0,0 +1,56 @@
+#pragma once
+
+#include <sdbusplus/slot.hpp>
+#include <sdbusplus/bus.hpp>
+
+namespace sdbusplus
+{
+
+namespace server
+{
+
+namespace match
+{
+
+struct match
+{
+            /* Define all of the basic class operations:
+         *     Not allowed:
+         *         - Default constructor to avoid nullptrs.
+         *         - Copy operations due to internal unique_ptr.
+         *     Allowed:
+         *         - Move operations.
+         *         - Destructor.
+         */
+    match() = delete;
+    match(const match&) = delete;
+    match& operator=(const match&) = delete;
+    match(match&&) = default;
+    match& operator=(match&&) = default;
+    ~match() = default;
+
+    /** @brief Register a signal match.
+     *
+     *  @param[in] bus - The bus to register on.
+     *  @param[in] match - The match to register.
+     *  @param[in] handler - The callback for matches.
+     */
+    match(sdbusplus::bus::bus& bus, const char* match,
+          sd_bus_message_handler_t handler) : _slot(nullptr)
+    {
+        sd_bus_slot* slot = nullptr;
+        sd_bus_add_match(bus.get(), &slot, match, handler, nullptr);
+
+        _slot = decltype(_slot){slot};
+    }
+
+    private:
+        slot::slot _slot;
+};
+
+} // namespace match
+
+using match_t = match::match;
+
+} // namespace server
+} // namespace sdbusplus
