diff --git a/include/vision/factor/factor_pixel_hp.h b/include/vision/factor/factor_pixel_hp.h
index eed7e421b4bc81bc58b9a0391eebd3ef61579dc3..0edfcb65ef32d02ccf74b0e7ccd46ac0c233ea00 100644
--- a/include/vision/factor/factor_pixel_hp.h
+++ b/include/vision/factor/factor_pixel_hp.h
@@ -131,10 +131,10 @@ inline void FactorPixelHp::expectation(const T* const _frame_p,
     using namespace Eigen;
 
     // frames w: world; r: robot; c: camera
-    Matrix<T, 3, 1> p_wr(_frame_p);
-    Quaternion<T>   q_wr(_frame_o);
-    Matrix<T, 3, 1> p_rc(_sensor_p);
-    Quaternion<T>   q_rc(_sensor_o);
+    Map<const Matrix<T, 3, 1> > p_wr(_frame_p);
+    Map<const Quaternion<T> >   q_wr(_frame_o);
+    Map<const Matrix<T, 3, 1> > p_rc(_sensor_p);
+    Map<const Quaternion<T> >   q_rc(_sensor_o);
 
     // camera pose in world frame: transforms from camera to world
     Matrix<T, 3, 1> p_wc = p_wr + q_wr * p_rc;
diff --git a/src/processor/processor_visual_odometry.cpp b/src/processor/processor_visual_odometry.cpp
index ca1617787facab42848f4b757394c70a9a7e23d4..9b6c0c89ee6860e1e2ee1850306258a8c14941c7 100644
--- a/src/processor/processor_visual_odometry.cpp
+++ b/src/processor/processor_visual_odometry.cpp
@@ -133,10 +133,6 @@ void ProcessorVisualOdometry::preProcess()
         capture_image_incoming_->setTracksOrigin(tracks_init);
         capture_image_incoming_->setTracksPrev(tracks_init);
 
-        // print a bar with the number of active tracks in incoming
-        std::string s(capture_image_incoming_->getKeyPoints().size(), '#');
-        WOLF_INFO("TRACKS: ", capture_image_incoming_->getKeyPoints().size(), " ", s);
-
         auto __attribute__((unused)) dt_preprocess = std::chrono::duration_cast<std::chrono::milliseconds>(std::chrono::system_clock::now() - t1).count();
         WOLF_DEBUG( "dt_preprocess (ms): " , dt_preprocess );
 
@@ -310,11 +306,6 @@ void ProcessorVisualOdometry::preProcess()
     capture_image_incoming_->setTracksOrigin(tracks_origin_incoming);
 
     auto __attribute__((unused)) dt_preprocess = std::chrono::duration_cast<std::chrono::milliseconds>(std::chrono::system_clock::now() - t1).count();
-
-    // print a bar with the number of active tracks in incoming
-    std::string s(capture_image_incoming_->getKeyPoints().size(), '#');
-    WOLF_INFO("TRACKS: ", capture_image_incoming_->getKeyPoints().size(), " ", s);
-
     WOLF_DEBUG( "dt_preprocess (ms): " , dt_preprocess );
 
     return;
@@ -480,16 +471,16 @@ LandmarkBasePtr ProcessorVisualOdometry::emplaceLandmark(FeatureBasePtr _feat)
 
     Eigen::Vector3d point3d;
     point3d = pinhole::backprojectPoint(
-    		getSensor()->getIntrinsic()->getState(),
-    		(std::static_pointer_cast<SensorCamera>(getSensor()))->getCorrectionVector(),
-			point2d);
+            getSensor()->getIntrinsic()->getState(),
+            (std::static_pointer_cast<SensorCamera>(getSensor()))->getCorrectionVector(),
+            point2d);
 
-    //double distance = params_bundle_adjustment_->distance; // arbitrary value
+    // double distance = params_bundle_adjustment_->distance; // arbitrary value
     double distance = 1;
     Eigen::Vector4d vec_homogeneous_c;
     vec_homogeneous_c = {point3d(0),point3d(1),point3d(2),point3d.norm()/distance};
 
-    //TODO: lmk from camera to world coordinate frame.
+    // lmk from camera to world coordinate frame.
     Transform<double,3,Isometry> T_w_r
         = Translation<double,3>(feat_pi->getFrame()->getP()->getState())
         * Quaterniond(_feat->getFrame()->getO()->getState().data());
@@ -533,6 +524,16 @@ void ProcessorVisualOdometry::postProcess()
             ++track_it;
     }
 
+    // print a bar with the number of active tracks in incoming
+    unsigned int n = capture_image_incoming_->getKeyPoints().size();
+    std::string s(n/2, '#');
+    WOLF_INFO("TRACKS: ", n, " ", s);
+
+    n = getProblem()->getMap()->getLandmarkList().size();
+    s = std::string(n/2, '-');
+    WOLF_INFO("LMARKS: ", n, " ", s);
+
+
 }
 
 bool ProcessorVisualOdometry::voteForKeyFrame() const