diff --git a/applications/reconstruct/src/ilw.hpp b/applications/reconstruct/src/ilw.hpp
index ec0965af3c4f30b14530fd594aed84a5c539c85d..81d4006293a0e74ea6449e27002fd74201058596 100644
--- a/applications/reconstruct/src/ilw.hpp
+++ b/applications/reconstruct/src/ilw.hpp
@@ -3,6 +3,7 @@
 
 #include <ftl/cuda_common.hpp>
 #include <ftl/rgbd/frameset.hpp>
+#include <ftl/configurable.hpp>
 #include <vector>
 
 namespace ftl {
@@ -31,15 +32,15 @@ struct ILWData{
  * point clouds to improve micro alignment that may have been incorrect due to
  * either inaccurate camera pose estimation or noise/errors in the depth maps.
  */
-class ILW {
+class ILW : public ftl::Configurable {
     public:
-    ILW();
+    explicit ILW(nlohmann::json &config);
     ~ILW();
 
     /**
      * Take a frameset and perform the iterative lattice warping.
      */
-    bool process(ftl::rgbd::FrameSet &fs);
+    bool process(ftl::rgbd::FrameSet &in, ftl::rgbd::FrameSet &out);
 
     private:
     /*