diff --git a/.rive_head b/.rive_head
index 0d39faa..73ef988 100644
--- a/.rive_head
+++ b/.rive_head
@@ -1 +1 @@
-2ad434e801bb43922a15c4313df3bf6c0c9efcf8
+51eb2ee206984a0496ece3f44b5e24ec38827b7c
diff --git a/include/rive/refcnt.hpp b/include/rive/refcnt.hpp
index e4b1509..d11104c 100644
--- a/include/rive/refcnt.hpp
+++ b/include/rive/refcnt.hpp
@@ -143,6 +143,10 @@
 
 template <typename T> inline void swap(rcp<T>& a, rcp<T>& b) { a.swap(b); }
 
+template <typename T, typename... Args> rcp<T> inline make_rcp(Args&&... args) {
+    return rcp<T>(new T(std::forward<Args>(args)...));
+}
+
 // == variants
 
 template <typename T> inline bool operator==(const rcp<T>& a, std::nullptr_t) { return !a; }
diff --git a/test/refcnt_test.cpp b/test/refcnt_test.cpp
index 676617a..211825a 100644
--- a/test/refcnt_test.cpp
+++ b/test/refcnt_test.cpp
@@ -11,6 +11,7 @@
 class MyRefCnt : public RefCnt<MyRefCnt> {
 public:
     MyRefCnt() {}
+    MyRefCnt(int, float, bool) {}
 
     void require_count(int value) { REQUIRE(this->debugging_refcnt() == value); }
 };
@@ -39,7 +40,7 @@
     REQUIRE(r0.get() == nullptr);
     REQUIRE(!r0);
 
-    rcp<MyRefCnt> r1(new MyRefCnt);
+    auto r1 = make_rcp<MyRefCnt>();
     REQUIRE(r1.get() != nullptr);
     REQUIRE(r1);
     REQUIRE(r1 != r0);
@@ -50,6 +51,12 @@
     REQUIRE(r1 == r2);
     REQUIRE(r2->debugging_refcnt() == 2);
 
+    auto r3 = make_rcp<MyRefCnt>(1, .5f, false);
+    REQUIRE(r3.get() != nullptr);
+    REQUIRE(r3);
+    REQUIRE(r3 != r1);
+    REQUIRE(r3->debugging_refcnt() == 1);
+
     auto ptr = r2.release();
     REQUIRE(r2.get() == nullptr);
     REQUIRE(r1.get() == ptr);
