diff --git a/applications/reconstruct/src/main.cpp b/applications/reconstruct/src/main.cpp
index ddb17e42c10b36aa539501647b421aac7badbd21..26d2e6e42dfbf890e5dc2056f09d08e9df034296 100644
--- a/applications/reconstruct/src/main.cpp
+++ b/applications/reconstruct/src/main.cpp
@@ -314,6 +314,7 @@ static void run(ftl::Configurable *root) {
 			fileout.open(std::string(timestamp) + ".ftl");
 
 			writer.begin();
+			// TODO: Add to all grounds / reconstructions
 			groups[0]->addRawCallback(std::function(recorder));
 
 			// TODO: Write pose+calibration+config packets
@@ -324,6 +325,7 @@ static void run(ftl::Configurable *root) {
 				sources[i]->inject(sources[i]->getPose()); 
 			}
 		} else {
+			// FIXME: Remove doesn't work, so multiple records fail.
 			groups[0]->removeRawCallback(recorder);
 			writer.end();
 			fileout.close();
@@ -365,6 +367,7 @@ static void run(ftl::Configurable *root) {
 			//if (slave.isPaused()) return true;
 			if (controls->value("paused", false)) return true;
 			
+			// TODO: busy needs to be an array now.
 			if (busy) {
 				LOG(INFO) << "Group frameset dropped: " << fs.timestamp;
 				return true;
@@ -382,7 +385,7 @@ static void run(ftl::Configurable *root) {
 				UNIQUE_LOCK(scene_A[i].mtx, lk);
 
 				pipeline1->apply(scene_A[i], scene_A[i], 0);
-				align->process(scene_A[i]);
+				//align->process(scene_A[i]);
 
 
 				// TODO: To use second GPU, could do a download, swap, device change,
diff --git a/applications/reconstruct/src/reconstruction.hpp b/applications/reconstruct/src/reconstruction.hpp
new file mode 100644
index 0000000000000000000000000000000000000000..bde04000706607bb752ab9447015fd3259c344a0
--- /dev/null
+++ b/applications/reconstruct/src/reconstruction.hpp
@@ -0,0 +1,27 @@
+#ifndef _FTL_RECONSTRUCTION_HPP_
+#define _FTL_RECONSTRUCTION_HPP_
+
+namespace ftl {
+
+class Reconstruction : public ftl::Configurable {
+	public:
+	Reconstruction();
+	~Reconstruction();
+
+	void addSource(ftl::rgbd::Source *);
+
+	/**
+	 * Do the render for a specified virtual camera.
+	 */
+	void render(ftl::rgbd::VirtualSource *vs, ftl::rgbd::Frame &out);
+
+	private:
+	ftl::rgbd::Group *group_;
+	ftl::rgbd::FrameSet fs_;
+	ftl::operators::Graph *pipeline_;
+	ftl::render::Triangular *renderer_;
+};
+
+}
+
+#endif  // _FTL_RECONSTRUCTION_HPP_