diff --git a/include/sdbusplus/asio/object_server.hpp b/include/sdbusplus/asio/object_server.hpp
index 2c65ace..1e344b1 100644
--- a/include/sdbusplus/asio/object_server.hpp
+++ b/include/sdbusplus/asio/object_server.hpp
@@ -494,7 +494,7 @@
 
         return true;
     }
-    template <typename PropertyType>
+    template <typename PropertyType, bool changesOnly = false>
     bool set_property(const std::string& name, const PropertyType& value)
     {
         if (!initialized_)
@@ -511,8 +511,12 @@
                 if (status != SetPropertyReturnValue::sameValueUpdated)
                 {
                     signal_property(name);
+                    return true;
                 }
-                return true;
+                if constexpr (!changesOnly)
+                {
+                    return true;
+                }
             }
         }
         return false;
@@ -720,6 +724,19 @@
         return sd_bus_error_set_const(error, SD_BUS_ERROR_INVALID_ARGS, NULL);
     }
 
+    /** @brief Create a new signal message.
+     *
+     *  @param[in] member - The signal name to create.
+     */
+    auto new_signal(const char* member)
+    {
+        if (!initialized_)
+        {
+            return message::message(nullptr);
+        }
+        return interface_->new_signal(member);
+    }
+
     bool initialize(const bool skipPropertyChangedSignal = false)
     {
         // can only register once
