diff --git a/components/rgbd-sources/include/ftl/rgbd/detail/source.hpp b/components/rgbd-sources/include/ftl/rgbd/detail/source.hpp
index c3aca569e0e4868645239549802707420b3c474a..3ec5903bb9db5e155e82ac6de5bc373cf2722ffd 100644
--- a/components/rgbd-sources/include/ftl/rgbd/detail/source.hpp
+++ b/components/rgbd-sources/include/ftl/rgbd/detail/source.hpp
@@ -42,10 +42,16 @@ class Source {
 	 */
 	virtual bool retrieve(ftl::rgbd::Frame &frame)=0;
 
+	/**
+	 * Is the source ready to capture and retrieve?
+	 */
 	virtual bool isReady() { return false; };
-	virtual void setPose(const Eigen::Matrix4d &pose) { state_.setPose(pose); };
 
-	virtual Camera parameters(ftl::codecs::Channel) { return params_; };
+	[[deprecated]] virtual void setPose(const Eigen::Matrix4d &pose) { state_.setPose(pose); };
+	[[deprecated]] virtual Camera parameters(ftl::codecs::Channel) { return params_; };
+
+	ftl::rgbd::Source *host() { return host_; }
+	ftl::rgbd::FrameState &state() { return state_; }
 
 	protected:
 	ftl::rgbd::FrameState state_;
diff --git a/components/rgbd-sources/src/source.cpp b/components/rgbd-sources/src/source.cpp
index c0c728c8ea76381d86ecb46a2217157ee966bb2c..49de1578335ce52e6524a1aef29891d7753fe768 100644
--- a/components/rgbd-sources/src/source.cpp
+++ b/components/rgbd-sources/src/source.cpp
@@ -219,6 +219,7 @@ bool Source::dispatch(int64_t ts) {
 		callback_(ts, frames_[1]);
 		is_dispatching = false;
 	});
+	return true;
 }
 
 void Source::_swap() {