diff --git a/src/loop_closure_base_2d.h b/src/loop_closure_base_2d.h
index def39c0476b51016b0aa5921d63dd34dd2dafbcd..58ddc4ec45134adf3588615dff2a7c4a82815e9f 100644
--- a/src/loop_closure_base_2d.h
+++ b/src/loop_closure_base_2d.h
@@ -56,7 +56,7 @@ public:
 
     /** \brief update the scene struct with keypoints and descriptors
      **/
-    virtual void extractScene(LaserScan &scan,LaserScanParams &scanParams){}
+    //virtual void extractScene(LaserScan &scan,LaserScanParams &scanParams){}
 
     /** \brief Convert scans from laserscanutils::LaserScan to falkolib::LaserScan object
      **/
diff --git a/src/loop_closure_falko.cpp b/src/loop_closure_falko.cpp
index 38fb1643cfbb7e729d862ef391a05d8933154690..f03732a273a59b103e8eb0ce83cf99c100b21978 100644
--- a/src/loop_closure_falko.cpp
+++ b/src/loop_closure_falko.cpp
@@ -22,10 +22,11 @@ namespace laserscanutils{
         setGridSectors(16);
 
         // Matcher Extractor Parameters
-        matcher.setDistanceThreshold(0.1);
+        //matcher.setDistanceThreshold(0.1);
 
     }
 
+
     // DESTRUCTOR
     template <typename D,typename E, typename M>
     loopClosureFalko<D,E,M>::~loopClosureFalko(){}
@@ -35,9 +36,10 @@ namespace laserscanutils{
 
         auto scanFALKO =loopClosureFalko<D,E,M>::convert2LaserScanFALKO(scan, scanParams);
 
-
         auto NewScene=std::make_shared<cornerScene<D>>();
 
+        //((*NewScene).keypointsList)=((*scanFALKO).ranges);
+
 
         return NewScene;
     }
@@ -45,5 +47,6 @@ namespace laserscanutils{
 
     //void findLoopClosure(std::list<cornerScene>& scenes, const cornerScene newScene){}
 
-
+    //Explicitly compile all the templates
+    template class loopClosureFalko <bsc, bscExtractor, NNMatcher>;
 }
diff --git a/src/loop_closure_falko.h b/src/loop_closure_falko.h
index 451cb82dd84e08df40956ff6d9c7758685e3df2f..41503976af69950f028da67e93106fed021f8273 100644
--- a/src/loop_closure_falko.h
+++ b/src/loop_closure_falko.h
@@ -17,6 +17,7 @@
  **************************/
 #include "laser_scan.h"
 #include "corner_scene.h"
+#include "loop_closure_base_2d.h"
 
 /**************************
  *      Falko includes      *
@@ -42,8 +43,9 @@ typedef falkolib::NNMatcher<falkolib::FALKO> NNMatcher;
 
    /** \brief A base class for loop closure using falko library
    **/
+
 template <typename D, typename E, typename M>
-class loopClosureFalko : public falkolib::FALKOExtractor{
+class loopClosureFalko : public loopClosureBase2d, public falkolib::FALKOExtractor{
 private:
 
 public:
@@ -63,8 +65,8 @@ public:
      **/
     std::shared_ptr<cornerScene<D>> extractScene(LaserScan &scan,LaserScanParams &scanParams);
 
-    E extractor;
-    M matcher;
+    //E extractor;
+    //M matcher;
 };
 } /* namespace laserscanutils */
 
diff --git a/test/gtest_loop_closure_base_2d.cpp b/test/gtest_loop_closure_base_2d.cpp
index d60cab974f9cd212773c71ca4f6d26525a1ec17f..7ba63720c6db4bcb9b0467e801395e57364d0ca2 100644
--- a/test/gtest_loop_closure_base_2d.cpp
+++ b/test/gtest_loop_closure_base_2d.cpp
@@ -1,10 +1,44 @@
 #include "gtest/utils_gtest.h"
 #include "testData2.h"
 #include "../src/loop_closure_base_2d.h"
+#include "../src/loop_closure_falko.h"
+
 //#include "laser_scan_utils.h"
 
 using namespace laserscanutils;
 
+TEST(loop_closure_fako, extractScene)
+{
+    int scanSize = 1440;
+
+    LaserScan scan;
+    LaserScanParams laserParams;
+
+    laserParams.angle_min_=0;
+    laserParams.angle_max_=2.0 * M_PI;
+
+    for (int i=0; i<scanSize; i++) {
+     scan.ranges_raw_.push_back(testRanges1[i]);
+    }
+
+  loopClosureFalko<bsc, bscExtractor, NNMatcher> LCFalko;
+
+  std::cout << "AAA" << std::endl;
+/*
+
+  std::shared_ptr<falkolib::LaserScan> scanFALKO=LCBase.convert2LaserScanFALKO(scan, laserParams);
+
+  int firstPoint = ((*scanFALKO).ranges)[0];
+
+  EXPECT_FALSE(false);
+
+  ASSERT_TRUE(true);
+
+  ASSERT_EQ(firstPoint, 250);
+*/
+//  PRINTF("All good at TestTest::DummyTestExample !\n");
+}
+
 TEST(loop_closure_base_2d, convert2laserScanFalko)
 {
     int scanSize = 1440;