diff --git a/include/core/processor/processor_tracker.h b/include/core/processor/processor_tracker.h
index f03ed4ea4d5e2ae46864479e65ad19c7d16aa9a9..d93c9baa367b8ba65374a4b64d21bab194ce1d2a 100644
--- a/include/core/processor/processor_tracker.h
+++ b/include/core/processor/processor_tracker.h
@@ -138,9 +138,12 @@ class ProcessorTracker : public ProcessorBase
 
         StateStructure getStateStructure() const;
 
-        virtual CaptureBasePtr getOrigin() const;
-        virtual CaptureBasePtr getLast() const;
-        virtual CaptureBasePtr getIncoming() const;
+        virtual CaptureBaseConstPtr getOrigin() const;
+        virtual CaptureBasePtr getOrigin();
+        virtual CaptureBaseConstPtr getLast() const;
+        virtual CaptureBasePtr getLast();
+        virtual CaptureBaseConstPtr getIncoming() const;
+        virtual CaptureBasePtr getIncoming();
 
     protected:
         /** \brief process an incoming capture
@@ -261,7 +264,8 @@ class ProcessorTracker : public ProcessorBase
 
     public:
 
-        FeatureBasePtrList& getNewFeaturesListLast();
+        FeatureBaseConstPtrList getNewFeaturesListLast() const;
+        FeatureBasePtrList getNewFeaturesListLast();
 
         std::string print() const {
             return this->params_tracker_->print();
@@ -286,7 +290,15 @@ class ProcessorTracker : public ProcessorBase
 
 };
 
-inline FeatureBasePtrList& ProcessorTracker::getNewFeaturesListLast()
+inline FeatureBaseConstPtrList ProcessorTracker::getNewFeaturesListLast() const
+{
+    FeatureBaseConstPtrList list_const;
+    for (auto&& obj_ptr : new_features_last_)
+        list_const.push_back(obj_ptr);
+    return list_const;
+}
+
+inline FeatureBasePtrList ProcessorTracker::getNewFeaturesListLast()
 {
     return new_features_last_;
 }
@@ -311,17 +323,32 @@ inline void ProcessorTracker::addNewFeatureIncoming(FeatureBasePtr _feature_ptr)
     new_features_incoming_.push_back(_feature_ptr);
 }
 
-inline CaptureBasePtr ProcessorTracker::getOrigin() const
+inline CaptureBaseConstPtr ProcessorTracker::getOrigin() const
+{
+    return origin_ptr_;
+}
+
+inline CaptureBasePtr ProcessorTracker::getOrigin()
 {
     return origin_ptr_;
 }
 
-inline CaptureBasePtr ProcessorTracker::getLast() const
+inline CaptureBaseConstPtr ProcessorTracker::getLast() const
 {
     return last_ptr_;
 }
 
-inline CaptureBasePtr ProcessorTracker::getIncoming() const
+inline CaptureBasePtr ProcessorTracker::getLast()
+{
+    return last_ptr_;
+}
+
+inline CaptureBaseConstPtr ProcessorTracker::getIncoming() const
+{
+    return incoming_ptr_;
+}
+
+inline CaptureBasePtr ProcessorTracker::getIncoming()
 {
     return incoming_ptr_;
 }