diff --git a/src/processor/processor_gnss_single_diff.cpp b/src/processor/processor_gnss_single_diff.cpp
index d72c8b97adc09e9686e7eca4a18635033031dd33..6bdf0994827a67d76ac87f2cfd37a123fdd45f56 100644
--- a/src/processor/processor_gnss_single_diff.cpp
+++ b/src/processor/processor_gnss_single_diff.cpp
@@ -51,8 +51,8 @@ void ProcessorGnssSingleDiff::process(CaptureBasePtr _capture_ptr)
 
         // EXTRACT AND ADD FEATURES
         //WOLF_DEBUG("adding the feature...");
-        FeatureBasePtr ftr_ptr = last_capture_ptr_->addFeature(std::make_shared<FeatureGnssSingleDiff>(last_capture_ptr_->getData(),last_capture_ptr_->getDataCovariance()));
-
+        // FeatureBasePtr ftr_ptr = last_capture_ptr_->addFeature(std::make_shared<FeatureGnssSingleDiff>(last_capture_ptr_->getData(),last_capture_ptr_->getDataCovariance()));
+        FeatureBasePtr ftr_ptr = FeatureBase::emplace<FeatureGnssSingleDiff>(last_capture_ptr_, last_capture_ptr_->getData(),last_capture_ptr_->getDataCovariance());
         // ADD CONSTRAINT
         FactorBasePtr fac_ptr;
         //WOLF_DEBUG("adding the factor...");