diff --git a/components/operators/src/fusion/fusion.cpp b/components/operators/src/fusion/fusion.cpp
index 334820a3a12d590bbfcdee51390b2fef1f6b41a7..7f5d039fef314407bd59b1186e29a4556bf0b68d 100644
--- a/components/operators/src/fusion/fusion.cpp
+++ b/components/operators/src/fusion/fusion.cpp
@@ -35,6 +35,18 @@ bool Fusion::apply(ftl::rgbd::FrameSet &in, ftl::rgbd::FrameSet &out, cudaStream
 		cv::cuda::resize(temp_, weights_[i], d.size(), 0, 0, cv::INTER_LINEAR, cvstream);
 	}
 
+	// 1) Optical flow of colour
+	// 2) Flow depth from model,
+	//    a) check local depth change consistency, generate a weighting
+	// 3) Generate smooth motion field
+	//    a) Remove outliers (median filter?)
+	//    b) Smooth outputs, perhaps using change consistency as weight?
+	// 4) Merge past with present using motion field
+	//    a) Visibility cull both directions
+	//    b) Local view feature weighted MLS
+	// 5) Now merge all view points
+	// 6) Store as a new model
+
 	if (config()->value("visibility_carving", true)) {
 		for (size_t i=0; i < in.frames.size(); ++i) {
 			if (!in.hasFrame(i)) continue;