diff --git a/src/loop_closure_falko.h b/src/loop_closure_falko.h
index b9b6c277442862063ebb6d670060177c3d894bc1..bd3336a5e62e49d980d13c2e0c6b498133cdfd11 100644
--- a/src/loop_closure_falko.h
+++ b/src/loop_closure_falko.h
@@ -52,7 +52,7 @@ private:
 public:
 
     typedef std::shared_ptr<sceneFalko<D>> sceneFalkoBSCPtr;
-    typedef std::shared_ptr<matchLoopClosure> matchLoopClosurePtr;
+    typedef std::shared_ptr<matchLoopClosure<D>> matchLoopClosurePtr;
 
     Extr extractor_;
     M matcher_;
diff --git a/src/match_loop_closure.h b/src/match_loop_closure.h
index 21ce8918e4124c0f7cbde6aad222ef420b94b72c..57fb6e87ae34a54f0e621f764689d3b8c6c04543 100644
--- a/src/match_loop_closure.h
+++ b/src/match_loop_closure.h
@@ -10,14 +10,26 @@
 
 #include <iostream>
 #include <fstream>
+#include <memory>
 
+/**************************
+ *      laser_scan_utils includes     *
+ **************************/
+#include "scene_falko.h"
 
 namespace laserscanutils
 {
 
+template <typename D>
 struct matchLoopClosure{
-    //std::vector<falkolib::FALKO> keypointsList;
-    //std::vector<D> descriptorsList;
+    //std::shared_ptr<sceneFalko<D>> scene1;
+    //std::shared_ptr<sceneFalko<D>> scene2;
+    // tuple that stores the pointers of two matched scenes
+    std::tuple<std::shared_ptr<sceneFalko<D>>, std::shared_ptr<sceneFalko<D>>> sceneTuple;
+    bool match;
+    int keypointsNumberMatch;
+    double score;
+
 };
 
 
diff --git a/src/scene_falko.h b/src/scene_falko.h
index 65b725348958189309ffd629c187393bfedd1af8..9d041f8f224540a51c53a2ad8d3ad37846d29c5b 100644
--- a/src/scene_falko.h
+++ b/src/scene_falko.h
@@ -40,7 +40,7 @@ struct sceneFalko : public sceneBase{
     std::vector<D> descriptorsList;
 };
 
-typedef std::shared_ptr<sceneFalko<falkolib::BSC>> sceneFalkoBSCPtr;
+
 
 
 } /* namespace laserscanutils */