diff --git a/src/motion_buffer.h b/src/motion_buffer.h
index db0e346546ee802f42614bfb05b08800efe08ed6..c5a7e52886ad0d6ebf1b75a91b9a97301222fb88 100644
--- a/src/motion_buffer.h
+++ b/src/motion_buffer.h
@@ -16,12 +16,25 @@ namespace wolf {
 
 struct Motion
 {
-    public:
-        TimeStamp ts_;                      ///< Time stamp
-        Eigen::VectorXs delta_;             ///< instantaneous motion delta
-        Eigen::VectorXs delta_integr_;      ///< the integrated motion or delta-integral
-        Eigen::MatrixXs delta_cov_;         ///< covariance of the instantaneous delta
-        Eigen::MatrixXs delta_integr_cov_;  ///< covariance of the integrated delta
+public:
+
+  Motion() = default;
+
+  Motion(const TimeStamp& _time_stamp,
+         const Eigen::VectorXs& _delta,     const Eigen::VectorXs& _delta_integr,
+         const Eigen::MatrixXs& _delta_cov, const Eigen::MatrixXs& _delta_integr_cov) :
+    ts_(_time_stamp),
+    delta_(_delta), delta_integr_(_delta_integr),
+    delta_cov_(_delta_cov), delta_integr_cov_(_delta_integr_cov)
+  {
+    //
+  }
+
+  TimeStamp ts_;                      ///< Time stamp
+  Eigen::VectorXs delta_;             ///< instantaneous motion delta
+  Eigen::VectorXs delta_integr_;      ///< the integrated motion or delta-integral
+  Eigen::MatrixXs delta_cov_;         ///< covariance of the instantaneous delta
+  Eigen::MatrixXs delta_integr_cov_;  ///< covariance of the integrated delta
 }; ///< One instance of the buffered data, corresponding to a particular time stamp.