diff --git a/src/features/feature_diff_drive.cpp b/src/features/feature_diff_drive.cpp
index ae1f8a2b3a3298824ffd6703786d901b272a88c6..c33d5fdec4e487e4e1b8893625ba140b60b4f54e 100644
--- a/src/features/feature_diff_drive.cpp
+++ b/src/features/feature_diff_drive.cpp
@@ -13,7 +13,7 @@ FeatureDiffDrive::FeatureDiffDrive(const Eigen::VectorXs& _delta_preintegrated,
   //
 }
 
-const Eigen::VectorXs& FeatureDiffDrive::getJacobianFactor() const
+const Eigen::MatrixXs& FeatureDiffDrive::getJacobianFactor() const
 {
   return jacobian_diff_drive_factors_;
 }
diff --git a/src/features/feature_diff_drive.h b/src/features/feature_diff_drive.h
index ac13c490717c66b54c652d9f93e49387672a1d1c..5c837469b577cf411eb8c830e2941823d1a0d91f 100644
--- a/src/features/feature_diff_drive.h
+++ b/src/features/feature_diff_drive.h
@@ -26,12 +26,12 @@ public:
 
   virtual ~FeatureDiffDrive() = default;
 
-  const Eigen::VectorXs& getJacobianFactor() const;
+  const Eigen::MatrixXs& getJacobianFactor() const;
 
 protected:
 
   Eigen::VectorXs diff_drive_factors_;
-  Eigen::VectorXs jacobian_diff_drive_factors_;
+  Eigen::MatrixXs jacobian_diff_drive_factors_;
 };
 
 } /* namespace wolf */
diff --git a/src/sensors/sensor_diff_drive.cpp b/src/sensors/sensor_diff_drive.cpp
index 0931b700ce658b486823fa930e3f1c454f87be5e..4c57144c96375f6c077d90ea20fde5ad027e488d 100644
--- a/src/sensors/sensor_diff_drive.cpp
+++ b/src/sensors/sensor_diff_drive.cpp
@@ -33,7 +33,7 @@ SensorBasePtr SensorDiffDrive::create(const std::string& _unique_name,
 
   StateBlockPtr pos_ptr = std::make_shared<StateBlock>(_extrinsics_po.head(2), true);
   StateBlockPtr ori_ptr = std::make_shared<StateBlock>(_extrinsics_po.tail(1), true);
-  StateBlockPtr int_ptr = std::make_shared<StateBlock>(params->factors_,       true);
+  StateBlockPtr int_ptr = std::make_shared<StateBlock>(params->factors_,       false);
 
   SensorBasePtr odo = std::make_shared<SensorDiffDrive>(pos_ptr, ori_ptr, int_ptr, params);
 
@@ -41,7 +41,7 @@ SensorBasePtr SensorDiffDrive::create(const std::string& _unique_name,
 
   /// @todo make calibration optional at creation
   //if (calibrate)
-    odo->unfixIntrinsics();
+  //  odo->unfixIntrinsics();
 
   return odo;
 }
diff --git a/src/sensors/sensor_diff_drive.h b/src/sensors/sensor_diff_drive.h
index f4556a84a16c7a347f27a6f7f51ce913c02dc477..749772902dcf39e035b318705a4797028c896d5b 100644
--- a/src/sensors/sensor_diff_drive.h
+++ b/src/sensors/sensor_diff_drive.h
@@ -14,6 +14,9 @@
 
 namespace wolf {
 
+WOLF_STRUCT_PTR_TYPEDEFS(IntrinsicsDiffDrive);
+WOLF_STRUCT_PTR_TYPEDEFS(SensorDiffDrive);
+
 struct IntrinsicsDiffDrive : public IntrinsicsBase
 {
   Scalar left_radius_;