diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index 9c9cf6065e50be5bed8488c24b7314f0cae060a8..b18778033b48e886b57ff31216b71a3265704f71 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -31,6 +31,7 @@ IF(faramotics_FOUND)
 ENDIF(faramotics_FOUND)
 
 if(${falkolib_FOUND})
+  add_definitions(-DEIGEN_DISABLE_UNALIGNED_ARRAY_ASSERT)
   include_directories(${falkolib_INCLUDE_DIRS})
   link_directories(${falkolib_LIBRARY_DIRS})
 endif()
diff --git a/src/corner_falko_2d.cpp b/src/corner_falko_2d.cpp
index 64b4b5a8dcb243a469196fdd90534d2826a47ba6..5c1193ad957e56c19361e0b118f3d29132ee540b 100644
--- a/src/corner_falko_2d.cpp
+++ b/src/corner_falko_2d.cpp
@@ -34,11 +34,8 @@ void CornerFalko2d::storeCorners (LaserScan scan,LaserScanParams scanParams, int
     scanNumber=scanNumber+1;
 
     if (scanNumber % scanInterval == 0){
-        
-        //Convert scans from laserscanutils::LaserScan to falkolib::LaserScan object
-        falkolib::LaserScan scanFALKO(scanParams.angle_min_, scanParams.angle_max_, scan.ranges_raw_.size());
-        std::vector<double> doubleRanges(scan.ranges_raw_.begin(), scan.ranges_raw_.end());
-        scanFALKO.fromRanges(doubleRanges);
+
+        falkolib::LaserScan scanFALKO= convert2LaserScanFALKO(scan, scanParams);
 
         // Extract keypoints
         lastKeypointSet.clear();
@@ -59,11 +56,8 @@ void CornerFalko2d::storeCorners (LaserScan scan,LaserScanParams scanParams, int
 
 void CornerFalko2d::findLoopClosure(LaserScan scan,LaserScanParams scanParams){
     
-    //Convert scans from laserscanutils::LaserScan to falkolib::LaserScan object
-    falkolib::LaserScan scanFALKO(scanParams.angle_min_, scanParams.angle_max_, scan.ranges_raw_.size());
-    std::vector<double> doubleRanges(scan.ranges_raw_.begin(), scan.ranges_raw_.end());
-    scanFALKO.fromRanges(doubleRanges);
-    
+    falkolib::LaserScan scanFALKO= convert2LaserScanFALKO(scan, scanParams);
+
     //Compute descriptors
     std::vector<falkolib::FALKO> keypointSet2;
     extract(scanFALKO, keypointSet2);
@@ -98,6 +92,15 @@ void CornerFalko2d::findLoopClosure(LaserScan scan,LaserScanParams scanParams){
 
 }
 
+falkolib::LaserScan CornerFalko2d::convert2LaserScanFALKO(LaserScan scan,LaserScanParams scanParams){
+
+    falkolib::LaserScan scanFALKO(scanParams.angle_min_, scanParams.angle_max_, scan.ranges_raw_.size());
+    std::vector<double> doubleRanges(scan.ranges_raw_.begin(), scan.ranges_raw_.end());
+    scanFALKO.fromRanges(doubleRanges);
+    return scanFALKO;
+
+}
+
 
 
 } // laserscanutils namespace
diff --git a/src/corner_falko_2d.h b/src/corner_falko_2d.h
index ffcff43f9cfe4f9365ad06589ec65c50d7786828..4d707cd150fe6bfe6795001efc9ad17e5f605891 100644
--- a/src/corner_falko_2d.h
+++ b/src/corner_falko_2d.h
@@ -71,7 +71,6 @@ public:
 
     /** \brief Extract landmark/scene (list of corners) from a given 2D scan
      **/
-    //void extract(falkolib::LaserScan scan);
 
     /** \brief compare new scans against the training set in order to find loop closures
      **/
@@ -82,6 +81,10 @@ public:
         keypointsNumberTh = _th;
     }
 
+    /** \brief Convert scans from laserscanutils::LaserScan to falkolib::LaserScan object
+     **/
+    falkolib::LaserScan convert2LaserScanFALKO(LaserScan scan,LaserScanParams scanParams);
+
     std::vector<std::vector<falkolib::FALKO>> keypointSets;
     std::vector<falkolib::FALKO> lastKeypointSet;
     std::vector<std::vector<falkolib::BSC>> descriptorSets;