diff --git a/src/processor_imu.h b/src/processor_imu.h
index 47decd316b1f420611629e390d783c63c64a337c..82abfa1da474402d869ea48db9984cb78696d408 100644
--- a/src/processor_imu.h
+++ b/src/processor_imu.h
@@ -72,6 +72,7 @@ class ProcessorIMU : public ProcessorMotion{
                                                const MatrixXs& _data_cov,
                                                const FrameBasePtr& _frame_origin) override;
         virtual FeatureBasePtr createFeature(CaptureMotionPtr _capture_motion) override;
+    public:
         virtual ConstraintBasePtr emplaceConstraint(FeatureBasePtr _feature_motion,
                                                     CaptureBasePtr _capture_origin) override;
 
diff --git a/src/processor_motion.h b/src/processor_motion.h
index 412b36f64d6013b2c0a2efa613a8a4c82c7c0a19..a95243fbd5144e97c2dcb85bc5086ce6f619e1f7 100644
--- a/src/processor_motion.h
+++ b/src/processor_motion.h
@@ -374,18 +374,22 @@ class ProcessorMotion : public ProcessorBase
                                                const MatrixXs& _data_cov,
                                                const FrameBasePtr& _frame_origin) = 0;
 
+    public:
         /** \brief create a feature corresponding to given capture and add the feature to this capture
          * \param _capture_motion: the parent capture
          */
         FeatureBasePtr emplaceFeature(CaptureMotionPtr _capture_own);
+    protected:
         virtual FeatureBasePtr createFeature(CaptureMotionPtr _capture_own) = 0;
 
+    public:
         /** \brief create a constraint and link it in the wolf tree
          * \param _feature_motion: the parent feature
          * \param _frame_origin: the frame constrained by this motion constraint
          */
         virtual ConstraintBasePtr emplaceConstraint(FeatureBasePtr _feature_motion, CaptureBasePtr _capture_origin) = 0;
 
+    protected:
         Motion motionZero(const TimeStamp& _ts);
         CaptureMotionPtr getCaptureMotionContainingTimeStamp(const TimeStamp& _ts);