diff --git a/components/rgbd-sources/include/ftl/rgbd/group.hpp b/components/rgbd-sources/include/ftl/rgbd/group.hpp
index c1a7e4521356bda388242149c215f624a6cfdefd..8f1dd61a64ec9b9a520e35f4158ba881e6b96f0c 100644
--- a/components/rgbd-sources/include/ftl/rgbd/group.hpp
+++ b/components/rgbd-sources/include/ftl/rgbd/group.hpp
@@ -54,6 +54,14 @@ class Group {
 	 */
 	void addSource(ftl::rgbd::Source *);
 
+	/**
+	 * Add another group to this one. All sources in the other group are made
+	 * available to this group in a synchronised way. There is additional
+	 * overhead in supporting this as additional data copies are required
+	 * internally for all the source frames.
+	 */
+	void addGroup(ftl::rgbd::Group *);
+
 	/**
 	 * Provide a function to be called once per frame with a valid frameset
 	 * at the specified latency. The function may not be called under certain
diff --git a/components/rgbd-sources/src/group.cpp b/components/rgbd-sources/src/group.cpp
index 81e667aa4b7fd4e012769a068730edcaf3b0f2bc..8bb15f78b76ddb1948c38e6cc503ca386065df8b 100644
--- a/components/rgbd-sources/src/group.cpp
+++ b/components/rgbd-sources/src/group.cpp
@@ -100,6 +100,10 @@ void Group::addSource(ftl::rgbd::Source *src) {
 	});
 }
 
+void Group::addGroup(Group *grp) {
+	
+}
+
 void Group::_retrieveJob(ftl::rgbd::Source *src) {
 	try {
 		src->retrieve();