diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index b18778033b48e886b57ff31216b71a3265704f71..cec2f98de7de8d791d2da639d61ad2baf071ca8e 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -56,6 +56,7 @@ SET(HDRS
     point_set.h
     polyline.h
     scan_segment.h
+    loop_closure_base_2d.h
     )
   IF(csm_FOUND)
     SET(HDRS ${HDRS}
@@ -64,7 +65,8 @@ SET(HDRS
 
   IF(falkolib_FOUND)
     SET(HDRS ${HDRS}
-      corner_falko_2d.h)
+      corner_falko_2d.h
+      corner_scene.h)
   ENDIF(falkolib_FOUND)
 
 #sources
@@ -84,6 +86,7 @@ SET(SRCS
     point_set.cpp
     polyline.cpp
     scan_segment.cpp
+    loop_closure_base_2d.cpp
     )
   IF(csm_FOUND)
     SET(SRCS ${SRCS}
@@ -92,7 +95,8 @@ SET(SRCS
 
   IF(falkolib_FOUND)
     SET(SRCS ${SRCS}
-      corner_falko_2d.cpp)
+      corner_falko_2d.cpp
+      corner_scene.cpp)
   ENDIF(falkolib_FOUND)
 
 
diff --git a/src/corner_scene.cpp b/src/corner_scene.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/src/corner_scene.h b/src/corner_scene.h
new file mode 100644
index 0000000000000000000000000000000000000000..a2cd43c7869b0b0c7c53ee420d3e18ca7d742324
--- /dev/null
+++ b/src/corner_scene.h
@@ -0,0 +1,23 @@
+/**
+ * \file corner_scene.h
+ *
+ *  Created on: Feb 9, 2021
+ *      \author: spujol
+ */
+
+#ifndef CORNER_SCENE_H_
+#define CORNER_SCENE_H_
+
+#include <iostream>
+#include <fstream>
+
+namespace laserscanutils
+{
+struct cornerScene{
+    std::vector<double> keypointsList;
+    std::vector<double> descriptorsList;
+};
+
+} /* namespace laserscanutils */
+
+#endif /* CORNER_SCENE_H_ */
\ No newline at end of file
diff --git a/src/loop_closure_base_2d.cpp b/src/loop_closure_base_2d.cpp
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..1693e916e7ac1cba058dc72b985f6f01f2e4f673 100644
--- a/src/loop_closure_base_2d.cpp
+++ b/src/loop_closure_base_2d.cpp
@@ -0,0 +1,16 @@
+/**
+ * \file loop_closure_base_2d.h
+ *
+ *  Created on: Feb 9, 2021
+ *      \author: spujol
+ */
+
+# include "loop_closure_base_2d.h"
+
+namespace laserscanutils{
+
+    cornerScene extractScene(LaserScan scan,LaserScanParams scanParams){
+        cornerScene NewScene;
+        return NewScene;
+    }
+}
\ No newline at end of file
diff --git a/src/loop_closure_base_2d.h b/src/loop_closure_base_2d.h
index 0c36cf1cb3ade3912dcf57b58ac6aec38add9168..73edd7dcb1efb23644a5ac0234520e72b51626e2 100644
--- a/src/loop_closure_base_2d.h
+++ b/src/loop_closure_base_2d.h
@@ -11,8 +11,20 @@
 #include <iostream>
 #include <fstream>
 
+/**************************
+ *      laser_scan_utils includes     *
+ **************************/
+#include "laser_scan.h"
+#include "corner_scene.h"
+
 namespace laserscanutils
 {
+    /*
+struct cornerScene{
+    std::vector<double> keypointsList;
+    std::vector<double> descriptorsList;
+};*/
+
    /** \brief A 2base class for loop closure using falko library
 */
 class loopClosureBase2d{
@@ -21,14 +33,21 @@ private:
 public:
     /** \brief Constructor
     **/
-
     loopClosureBase2d();
 
     /** \brief Destructor 
     **/
     ~loopClosureBase2d();
 
+    /** \brief compare new scans against the trained set in order to find loop closures
+     **/
+    virtual void findLoopClosure();
+
+    /** \brief update the scene struct with keypoints and descriptors
+     **/
+    virtual cornerScene extractScene(LaserScan scan,LaserScanParams scanParams);
+
 };
 } /* namespace laserscanutils */
 
-#endif /* LANDMARK_POLYLINE_2d_H_ */
\ No newline at end of file
+#endif /* LOOP_CLOSURE_BASE_2D_H_ */
\ No newline at end of file