diff --git a/include/gnss/processor/processor_gnss_fix.h b/include/gnss/processor/processor_gnss_fix.h
index fce80394e5c29fb52501b312d970a25b946052c5..66b8f506c8a7244c5621c88c252d67667b8ba955 100644
--- a/include/gnss/processor/processor_gnss_fix.h
+++ b/include/gnss/processor/processor_gnss_fix.h
@@ -21,7 +21,7 @@ struct ProcessorParamsGnssFix : public ProcessorParamsBase
     Scalar dist_traveled;
     Scalar enu_map_init_dist_min;
     ProcessorParamsGnssFix() = default;
-    ProcessorParamsGnssFix(std::string _unique_name, const paramsServer& _server):
+    ProcessorParamsGnssFix(std::string _unique_name, const ParamsServer& _server):
         ProcessorParamsBase(_unique_name, _server)
     {
         time_th                 = _server.getParam<Scalar>(_unique_name + "/time_th");
@@ -77,6 +77,18 @@ class ProcessorGnssFix : public ProcessorBase
          */
         virtual bool triggerInKeyFrame(FrameBasePtr _keyframe_ptr, const Scalar& _time_tolerance) override {return false;}
 
+        /** \brief store key frame
+        *
+        * Returns true if the key frame should be stored
+        */
+        virtual bool storeKeyFrame(FrameBasePtr) override;
+
+        /** \brief store capture
+        *
+        * Returns true if the capture should be stored
+        */
+        virtual bool storeCapture(CaptureBasePtr) override;
+
         virtual bool voteForKeyFrame() override;
 
     private:
diff --git a/include/gnss/processor/processor_gnss_single_diff.h b/include/gnss/processor/processor_gnss_single_diff.h
index 84f18c30b53bc0d61cdaa269814fdd8576e63061..137f0b326a47f3d96fb2b5e9d3d4adbccea7d324 100644
--- a/include/gnss/processor/processor_gnss_single_diff.h
+++ b/include/gnss/processor/processor_gnss_single_diff.h
@@ -21,7 +21,7 @@ struct ProcessorParamsGnssSingleDiff : public ProcessorParamsBase
     Scalar dist_traveled;
     Scalar enu_map_init_dist_min;
     ProcessorParamsGnssSingleDiff() = default;
-    ProcessorParamsGnssSingleDiff(std::string _unique_name, const paramsServer& _server):
+    ProcessorParamsGnssSingleDiff(std::string _unique_name, const ParamsServer& _server):
         ProcessorParamsBase(_unique_name, _server)
     {
         time_th                 = _server.getParam<Scalar>(_unique_name + "/time_th");
@@ -66,6 +66,18 @@ class ProcessorGnssSingleDiff : public ProcessorBase
          */
         virtual void processKeyFrame(FrameBasePtr _keyframe, const Scalar& _time_tolerance) override {};
 
+        /** \brief store key frame
+        *
+        * Returns true if the key frame should be stored
+        */
+        virtual bool storeKeyFrame(FrameBasePtr) override;
+
+        /** \brief store capture
+        *
+        * Returns true if the capture should be stored
+        */
+        virtual bool storeCapture(CaptureBasePtr) override;
+
         /** \brief trigger in capture
          *
          * Returns true if processCapture() should be called after the provided capture arrived.
diff --git a/include/gnss/sensor/sensor_gnss.h b/include/gnss/sensor/sensor_gnss.h
index 00d71c8ea1e5ffae633ab84e190e22ff8fa2c8c7..d84c8b19c1c70bcf3560c642fbcac641268217eb 100644
--- a/include/gnss/sensor/sensor_gnss.h
+++ b/include/gnss/sensor/sensor_gnss.h
@@ -21,7 +21,7 @@ struct IntrinsicsGnss : public IntrinsicsBase
         bool translation_fixed_ = false;
         virtual ~IntrinsicsGnss() = default;
         IntrinsicsGnss() = default;
-        IntrinsicsGnss(std::string _unique_name, const paramsServer& _server):
+        IntrinsicsGnss(std::string _unique_name, const ParamsServer& _server):
             IntrinsicsBase(_unique_name, _server)
         {
             extrinsics_fixed_ = _server.getParam<bool>(_unique_name + "/extrinsics_fixed");
diff --git a/src/processor/processor_gnss_fix.cpp b/src/processor/processor_gnss_fix.cpp
index b4efaea1fc846095dc71af477a1164005aa42105..578e0203ceed53593ae5f6c5c5fe85ce109f8ce5 100644
--- a/src/processor/processor_gnss_fix.cpp
+++ b/src/processor/processor_gnss_fix.cpp
@@ -10,6 +10,7 @@ namespace wolf
 ProcessorGnssFix::ProcessorGnssFix(ProcessorParamsGnssFixPtr _params_gnss, SensorGnssPtr _sensor_gnss) :
         ProcessorBase("GNSS FIX", _params_gnss),
         sensor_gnss_(_sensor_gnss),
+
         params_gnss_(_params_gnss),
         first_capture_(nullptr)
 {
@@ -155,6 +156,14 @@ bool ProcessorGnssFix::voteForKeyFrame()
     return false;
 }
 
+bool ProcessorGnssFix::storeKeyFrame(FrameBasePtr _frame_ptr)
+{
+    return true;
+}
+bool ProcessorGnssFix::storeCapture(CaptureBasePtr _cap_ptr)
+{
+    return false;
+}
 void ProcessorGnssFix::configure(SensorBasePtr _sensor)
 {
     sensor_gnss_ = std::static_pointer_cast<SensorGnss>(_sensor);
diff --git a/src/processor/processor_gnss_single_diff.cpp b/src/processor/processor_gnss_single_diff.cpp
index 2dd0a9179de1eb44b7726e6dd43702949b5bfd95..c2bb47b995d6b07205dc51d984b89d0bd279c141 100644
--- a/src/processor/processor_gnss_single_diff.cpp
+++ b/src/processor/processor_gnss_single_diff.cpp
@@ -129,6 +129,14 @@ bool ProcessorGnssSingleDiff::voteForKeyFrame()
     return false;
 }
 
+bool ProcessorGnssSingleDiff::storeKeyFrame(FrameBasePtr _frame_ptr)
+{
+    return true;
+}
+bool ProcessorGnssSingleDiff::storeCapture(CaptureBasePtr _cap_ptr)
+{
+    return false;
+}
 void ProcessorGnssSingleDiff::configure(SensorBasePtr _sensor)
 {
     sensor_gnss_ = std::static_pointer_cast<SensorGnss>(_sensor);