diff --git a/src/sensor_GPS.h b/src/sensor_GPS.h
index b36d09ae0055c177d42f05b6d3fb7517a4e9fd0a..c43cd13cb8a766fd6cfea67000d16d4262ee5f2a 100644
--- a/src/sensor_GPS.h
+++ b/src/sensor_GPS.h
@@ -20,6 +20,7 @@ namespace wolf {
 struct IntrinsicsGPS : public IntrinsicsBase
 {
         // add GPS parameters here
+        virtual ~IntrinsicsGPS() = default;
 };
 
 WOLF_PTR_TYPEDEFS(SensorGPS);
diff --git a/src/sensor_GPS_fix.h b/src/sensor_GPS_fix.h
index 9cb5583a025eaab3264faa8943aaafbb4c720fd6..b2423e71ac6760716a2d311316d4b8583ee5d413 100644
--- a/src/sensor_GPS_fix.h
+++ b/src/sensor_GPS_fix.h
@@ -15,6 +15,7 @@ namespace wolf {
 struct IntrinsicsGPSFix : public IntrinsicsBase
 {
         // Empty -- it acts only as a typedef for IntrinsicsBase, but allows future extension with parameters
+        virtual ~IntrinsicsGPSFix() = default;
 };
 
 WOLF_PTR_TYPEDEFS(SensorGPSFix);
diff --git a/src/sensor_IMU.h b/src/sensor_IMU.h
index 823c18507efe6976f002d310f6edf9c89de2b4da..a9509188fc2f091f4c31fc26576a6087eed38b02 100644
--- a/src/sensor_IMU.h
+++ b/src/sensor_IMU.h
@@ -15,25 +15,18 @@ WOLF_STRUCT_PTR_TYPEDEFS(IntrinsicsIMU);
 struct IntrinsicsIMU : public IntrinsicsBase
 {
         //noise std dev
-        wolf::Scalar w_noise; //standard deviation of Gyroscope noise (same for all the axis) in rad/sec/ sqrt(s)
-        wolf::Scalar a_noise; //standard deviation of Acceleration noise (same for all the axis) in m/s2/sqrt(s)
+        wolf::Scalar w_noise = 0.001; //standard deviation of Gyroscope noise (same for all the axis) in rad/sec/ sqrt(s)
+        wolf::Scalar a_noise = 0.04; //standard deviation of Acceleration noise (same for all the axis) in m/s2/sqrt(s)
 
         //Initial biases std dev
-        wolf::Scalar ab_initial_stdev; //accelerometer micro_g/sec
-        wolf::Scalar wb_initial_stdev; //gyroscope rad/sec
+        wolf::Scalar ab_initial_stdev = 0.01; //accelerometer micro_g/sec
+        wolf::Scalar wb_initial_stdev = 0.01; //gyroscope rad/sec
 
         // bias rate of change std dev
-        Scalar ab_rate_stdev;
-        Scalar wb_rate_stdev;
-
-        IntrinsicsIMU() :
-            w_noise(0.001),
-            a_noise(0.04),
-            ab_initial_stdev(0.00001),
-            wb_initial_stdev(0.00001),
-            ab_rate_stdev(0.00001),
-            wb_rate_stdev(0.00001)
-        {}
+        Scalar ab_rate_stdev = 0.00001;
+        Scalar wb_rate_stdev = 0.00001;
+
+        virtual ~IntrinsicsIMU() = default;
 };
 
 WOLF_PTR_TYPEDEFS(SensorIMU);
diff --git a/src/sensor_base.h b/src/sensor_base.h
index 3a2de9957d572026fb637f0b1d19932974171686..a1befcf792bcb81cca58d972ff1ea33bf4e2b9df 100644
--- a/src/sensor_base.h
+++ b/src/sensor_base.h
@@ -24,11 +24,10 @@ namespace wolf {
  */
 struct IntrinsicsBase
 {
-  IntrinsicsBase()          = default;
-  virtual ~IntrinsicsBase() = default;
+        virtual ~IntrinsicsBase() = default;
 
-  std::string type;
-  std::string name;
+        std::string type;
+        std::string name;
 };
 
 class SensorBase : public NodeBase, public std::enable_shared_from_this<SensorBase>
diff --git a/src/sensor_camera.h b/src/sensor_camera.h
index 7c61c98e2a04f5bd437820b6e3f5d17b79f3b8cb..4b3d565da7d8c0095d18cefe3b97789f195190e8 100644
--- a/src/sensor_camera.h
+++ b/src/sensor_camera.h
@@ -15,6 +15,8 @@ struct IntrinsicsCamera : public IntrinsicsBase
         unsigned int height;                ///< Image height in pixels
         Eigen::Vector4s pinhole_model;      ///< k = [u_0, v_0, alpha_u, alpha_v]  vector of pinhole intrinsic parameters
         Eigen::VectorXs distortion;         ///< d = [d_1, d_2, d_3, ...] radial distortion coefficients
+
+        virtual ~IntrinsicsCamera() = default;
 };
 
 WOLF_PTR_TYPEDEFS(SensorCamera);
diff --git a/src/sensor_laser_2D.h b/src/sensor_laser_2D.h
index b1e3e9b2af5ed8fbe33a354264e018493178cddb..8c2aa85762d14ac5c50dbccee840de46a1418531 100644
--- a/src/sensor_laser_2D.h
+++ b/src/sensor_laser_2D.h
@@ -17,6 +17,8 @@ WOLF_STRUCT_PTR_TYPEDEFS(IntrinsicsLaser2D);
 
 struct IntrinsicsLaser2D : public IntrinsicsBase
 {
+        virtual ~IntrinsicsLaser2D() = default;
+
         laserscanutils::LaserScanParams scan_params;
 };
 
diff --git a/src/sensor_odom_2D.h b/src/sensor_odom_2D.h
index ad3b02ae557b023be9c4b279d106ce650d299a2f..b906bce9b5d4e72749c3d318aed2ee2d21aa1b89 100644
--- a/src/sensor_odom_2D.h
+++ b/src/sensor_odom_2D.h
@@ -7,10 +7,12 @@
 
 namespace wolf {
 
-WOLF_STRUCT_PTR_TYPEDEFS(IntrinsicsOdom2D)
+WOLF_STRUCT_PTR_TYPEDEFS(IntrinsicsOdom2D);
 
 struct IntrinsicsOdom2D : public IntrinsicsBase
 {
+        virtual ~IntrinsicsOdom2D() = default;
+
         Scalar k_disp_to_disp; ///< ratio of displacement variance to displacement, for odometry noise calculation
         Scalar k_rot_to_rot; ///< ratio of rotation variance to rotation, for odometry noise calculation
 };
diff --git a/src/sensor_odom_3D.h b/src/sensor_odom_3D.h
index c676edc95a66756a7d28b68299127dbd09a60d30..9ffef8d23eae9cfaa4fdf3d439636985350ab0f6 100644
--- a/src/sensor_odom_3D.h
+++ b/src/sensor_odom_3D.h
@@ -23,13 +23,8 @@ struct IntrinsicsOdom3D : public IntrinsicsBase
         Scalar min_disp_var;
         Scalar min_rot_var;
 
-        IntrinsicsOdom3D() :
-            k_disp_to_disp(0),
-            k_disp_to_rot(0),
-            k_rot_to_rot(0),
-            min_disp_var(0),
-            min_rot_var(0)
-        {}
+        virtual ~IntrinsicsOdom3D() = default;
+
 };
 
 WOLF_PTR_TYPEDEFS(SensorOdom3D);
diff --git a/src/sensors/sensor_diff_drive.h b/src/sensors/sensor_diff_drive.h
index 334fea3895676f923f84625997caf79b4637bafc..f4556a84a16c7a347f27a6f7f51ce913c02dc477 100644
--- a/src/sensors/sensor_diff_drive.h
+++ b/src/sensors/sensor_diff_drive.h
@@ -16,30 +16,6 @@ namespace wolf {
 
 struct IntrinsicsDiffDrive : public IntrinsicsBase
 {
-  IntrinsicsDiffDrive() = default;
-
-  IntrinsicsDiffDrive(const Scalar _left_radius,
-                      const Scalar _right_radius,
-                      const Scalar _separation,
-                      const DiffDriveModel _model,
-                      const Eigen::VectorXs& _factors,
-                      const Scalar _left_resolution,
-                      const Scalar _right_resolution,
-                      const Scalar _left_gain,
-                      const Scalar _right_gain) :
-    left_radius_(_left_radius),
-    right_radius_(_right_radius),
-    separation_(_separation),
-    model_(_model),
-    factors_(_factors),
-    left_resolution_(_left_resolution),
-    right_resolution_(_right_resolution),
-    left_gain_(_left_gain),
-    right_gain_(_right_gain)
-  {
-    //
-  }
-
   Scalar left_radius_;
   Scalar right_radius_;
   Scalar separation_;
@@ -53,6 +29,8 @@ struct IntrinsicsDiffDrive : public IntrinsicsBase
 
   Scalar left_gain_  = 0.01;
   Scalar right_gain_ = 0.01;
+
+  virtual ~IntrinsicsDiffDrive() = default;
 };
 
 typedef std::shared_ptr<IntrinsicsDiffDrive> IntrinsicsDiffDrivePtr;