diff --git a/src/drivers/barometer/bmp280/bmp280.cpp b/src/drivers/barometer/bmp280/bmp280.cpp
index 7d9c160f241af5a51d32fee4c67788cf98db1d80..6e54ad808dce944931b5c3bcff1ffc109db62f93 100644
--- a/src/drivers/barometer/bmp280/bmp280.cpp
+++ b/src/drivers/barometer/bmp280/bmp280.cpp
@@ -194,9 +194,7 @@ BMP280::~BMP280()
 int
 BMP280::init()
 {
-	int ret;
-
-	ret = CDev::init();
+	int ret = CDev::init();
 
 	if (ret != OK) {
 		DEVICE_DEBUG("CDev init failed");
diff --git a/src/drivers/barometer/lps25h/lps25h_i2c.cpp b/src/drivers/barometer/lps25h/lps25h_i2c.cpp
index e09dd38af1c4d7c3f721b2d75463096a3a98d4c9..712990567f560015fb1c69417b6beed55da9f2a0 100644
--- a/src/drivers/barometer/lps25h/lps25h_i2c.cpp
+++ b/src/drivers/barometer/lps25h/lps25h_i2c.cpp
@@ -67,9 +67,8 @@ class LPS25H_I2C : public device::I2C
 {
 public:
 	LPS25H_I2C(int bus);
-	virtual ~LPS25H_I2C();
+	virtual ~LPS25H_I2C() = default;
 
-	virtual int	init();
 	virtual int	read(unsigned address, void *data, unsigned count);
 	virtual int	write(unsigned address, void *data, unsigned count);
 
@@ -91,17 +90,6 @@ LPS25H_I2C::LPS25H_I2C(int bus) :
 {
 }
 
-LPS25H_I2C::~LPS25H_I2C()
-{
-}
-
-int
-LPS25H_I2C::init()
-{
-	/* this will call probe() */
-	return I2C::init();
-}
-
 int
 LPS25H_I2C::ioctl(unsigned operation, unsigned &arg)
 {
diff --git a/src/drivers/barometer/lps25h/lps25h_spi.cpp b/src/drivers/barometer/lps25h/lps25h_spi.cpp
index f72458133cec9e47700b0ae9af225884fdb6b550..efb9a9724a51857af0e52aa6fe38251ac77bc851 100644
--- a/src/drivers/barometer/lps25h/lps25h_spi.cpp
+++ b/src/drivers/barometer/lps25h/lps25h_spi.cpp
@@ -73,7 +73,7 @@ class LPS25H_SPI : public device::SPI
 {
 public:
 	LPS25H_SPI(int bus, uint32_t device);
-	virtual ~LPS25H_SPI();
+	virtual ~LPS25H_SPI() = default;
 
 	virtual int	init();
 	virtual int	read(unsigned address, void *data, unsigned count);
@@ -95,10 +95,6 @@ LPS25H_SPI::LPS25H_SPI(int bus, uint32_t device) :
 	_device_id.devid_s.devtype = DRV_MAG_DEVTYPE_LPS25H;
 }
 
-LPS25H_SPI::~LPS25H_SPI()
-{
-}
-
 int
 LPS25H_SPI::init()
 {
diff --git a/src/drivers/barometer/mpl3115a2/mpl3115a2_i2c.cpp b/src/drivers/barometer/mpl3115a2/mpl3115a2_i2c.cpp
index aa24ec328f87fef4b54d8cbd5352268c6a8ac0e0..5246c68778c62e704b8597d94d604f842032b907 100644
--- a/src/drivers/barometer/mpl3115a2/mpl3115a2_i2c.cpp
+++ b/src/drivers/barometer/mpl3115a2/mpl3115a2_i2c.cpp
@@ -64,7 +64,7 @@ class MPL3115A2_I2C : public device::I2C
 {
 public:
 	MPL3115A2_I2C(uint8_t bus);
-	virtual ~MPL3115A2_I2C();
+	virtual ~MPL3115A2_I2C() = default;
 
 	virtual int	init();
 	virtual int	read(unsigned offset, void *data, unsigned count);
@@ -99,10 +99,6 @@ MPL3115A2_I2C::MPL3115A2_I2C(uint8_t bus) :
 {
 }
 
-MPL3115A2_I2C::~MPL3115A2_I2C()
-{
-}
-
 int
 MPL3115A2_I2C::init()
 {
diff --git a/src/drivers/barometer/ms5611/ms5611_i2c.cpp b/src/drivers/barometer/ms5611/ms5611_i2c.cpp
index 8747d5e4a2b8caad0f4fa20813cc8f02f5362d69..e67d6e10eae2e86d9f701b5d8dcc282f82c916a9 100644
--- a/src/drivers/barometer/ms5611/ms5611_i2c.cpp
+++ b/src/drivers/barometer/ms5611/ms5611_i2c.cpp
@@ -67,9 +67,8 @@ class MS5611_I2C : public device::I2C
 {
 public:
 	MS5611_I2C(uint8_t bus, ms5611::prom_u &prom_buf);
-	virtual ~MS5611_I2C();
+	virtual ~MS5611_I2C() = default;
 
-	virtual int	init();
 	virtual int	read(unsigned offset, void *data, unsigned count);
 	virtual int	ioctl(unsigned operation, unsigned &arg);
 
@@ -116,17 +115,6 @@ MS5611_I2C::MS5611_I2C(uint8_t bus, ms5611::prom_u &prom) :
 {
 }
 
-MS5611_I2C::~MS5611_I2C()
-{
-}
-
-int
-MS5611_I2C::init()
-{
-	/* this will call probe(), and thereby _probe_address */
-	return I2C::init();
-}
-
 int
 MS5611_I2C::read(unsigned offset, void *data, unsigned count)
 {
diff --git a/src/drivers/barometer/ms5611/ms5611_spi.cpp b/src/drivers/barometer/ms5611/ms5611_spi.cpp
index 2985a1adb5bab44349ae36294dc8dd54a6f195e0..0b0c66498d58ab70391b9f099722f1de8cf8d3c6 100644
--- a/src/drivers/barometer/ms5611/ms5611_spi.cpp
+++ b/src/drivers/barometer/ms5611/ms5611_spi.cpp
@@ -67,7 +67,7 @@ class MS5611_SPI : public device::SPI
 {
 public:
 	MS5611_SPI(uint8_t bus, uint32_t device, ms5611::prom_u &prom_buf);
-	virtual ~MS5611_SPI();
+	virtual ~MS5611_SPI() = default;
 
 	virtual int	init();
 	virtual int	read(unsigned offset, void *data, unsigned count);
@@ -136,10 +136,6 @@ MS5611_SPI::MS5611_SPI(uint8_t bus, uint32_t device, ms5611::prom_u &prom_buf) :
 {
 }
 
-MS5611_SPI::~MS5611_SPI()
-{
-}
-
 int
 MS5611_SPI::init()
 {
diff --git a/src/drivers/blinkm/blinkm.cpp b/src/drivers/blinkm/blinkm.cpp
index 0fd6289ad2bbc6a1aeb136662168d3a483b9b3e7..12876b19bc3f5e5d7a37b3604d7e548d607b51ce 100644
--- a/src/drivers/blinkm/blinkm.cpp
+++ b/src/drivers/blinkm/blinkm.cpp
@@ -135,7 +135,7 @@ class BlinkM : public device::I2C
 {
 public:
 	BlinkM(int bus, int blinkm);
-	virtual ~BlinkM();
+	virtual ~BlinkM() = default;
 
 
 	virtual int		init();
@@ -311,10 +311,6 @@ BlinkM::BlinkM(int bus, int blinkm) :
 	memset(&_work, 0, sizeof(_work));
 }
 
-BlinkM::~BlinkM()
-{
-}
-
 int
 BlinkM::init()
 {
diff --git a/src/drivers/camera_trigger/interfaces/src/camera_interface.cpp b/src/drivers/camera_trigger/interfaces/src/camera_interface.cpp
index 18f8ac80133b697d858b87084f0b5543b57406b1..29690056cbaad0c72f73fb3bac4a09fec05440b4 100644
--- a/src/drivers/camera_trigger/interfaces/src/camera_interface.cpp
+++ b/src/drivers/camera_trigger/interfaces/src/camera_interface.cpp
@@ -12,8 +12,6 @@ CameraInterface::CameraInterface():
 {
 }
 
-CameraInterface::~CameraInterface() = default;
-
 void CameraInterface::get_pins()
 {
 
diff --git a/src/drivers/camera_trigger/interfaces/src/camera_interface.h b/src/drivers/camera_trigger/interfaces/src/camera_interface.h
index 4e1fb511ced74556d097a16b3da4632e2a6b59d7..d95f2a1959417aa1e95a47778501c25ccbfe0555 100644
--- a/src/drivers/camera_trigger/interfaces/src/camera_interface.h
+++ b/src/drivers/camera_trigger/interfaces/src/camera_interface.h
@@ -21,7 +21,7 @@ public:
 	/**
 	 * Destructor.
 	 */
-	virtual ~CameraInterface();
+	virtual ~CameraInterface() = default;
 
 	/**
 	 * trigger the camera
diff --git a/src/drivers/camera_trigger/interfaces/src/gpio.cpp b/src/drivers/camera_trigger/interfaces/src/gpio.cpp
index 62c8a5abb80ce88967b94367598551b488a0e675..8104fc189b9e3d675cefde4d66dce88c3782b11e 100644
--- a/src/drivers/camera_trigger/interfaces/src/gpio.cpp
+++ b/src/drivers/camera_trigger/interfaces/src/gpio.cpp
@@ -21,10 +21,6 @@ CameraInterfaceGPIO::CameraInterfaceGPIO():
 	setup();
 }
 
-CameraInterfaceGPIO::~CameraInterfaceGPIO()
-{
-}
-
 void CameraInterfaceGPIO::setup()
 {
 	for (unsigned i = 0, t = 0; i < arraySize(_pins); i++) {
diff --git a/src/drivers/camera_trigger/interfaces/src/gpio.h b/src/drivers/camera_trigger/interfaces/src/gpio.h
index 394e3169ce09b280ec84ee2b2c6a1ad584cae4ef..38150d1409ff332894d61692dd740c4f39db6744 100644
--- a/src/drivers/camera_trigger/interfaces/src/gpio.h
+++ b/src/drivers/camera_trigger/interfaces/src/gpio.h
@@ -16,7 +16,7 @@ class CameraInterfaceGPIO : public CameraInterface
 {
 public:
 	CameraInterfaceGPIO();
-	virtual ~CameraInterfaceGPIO();
+	virtual ~CameraInterfaceGPIO() = default;
 
 	void trigger(bool trigger_on_true);
 
diff --git a/src/drivers/distance_sensor/ll40ls/LidarLite.cpp b/src/drivers/distance_sensor/ll40ls/LidarLite.cpp
index 3a6707e6f956cd34ae4738f4d5f83a6ddfbfc440..4f7a602123952160840bc13bf9218c9939bf0810 100644
--- a/src/drivers/distance_sensor/ll40ls/LidarLite.cpp
+++ b/src/drivers/distance_sensor/ll40ls/LidarLite.cpp
@@ -48,8 +48,6 @@ LidarLite::LidarLite() :
 {
 }
 
-LidarLite::~LidarLite() = default;
-
 void LidarLite::set_minimum_distance(const float min)
 {
 	_min_distance = min;
diff --git a/src/drivers/distance_sensor/ll40ls/LidarLite.h b/src/drivers/distance_sensor/ll40ls/LidarLite.h
index 2c00a92bf07b7a590d6ac9bf541d05f922aed8c2..b59887bca0c4f0c2d8916bcf93097d0efcf84177 100644
--- a/src/drivers/distance_sensor/ll40ls/LidarLite.h
+++ b/src/drivers/distance_sensor/ll40ls/LidarLite.h
@@ -58,7 +58,7 @@ class LidarLite
 public:
 	LidarLite();
 
-	virtual ~LidarLite();
+	virtual ~LidarLite() = default;
 
 	virtual int init() = 0;
 
diff --git a/src/drivers/imu/mpu6000/mpu6000_i2c.cpp b/src/drivers/imu/mpu6000/mpu6000_i2c.cpp
index 2b7d768815f36fb444cd27fa2e8711b7e105e344..190bc24bb1f07c30e057b800fc68e4dbca02fec1 100644
--- a/src/drivers/imu/mpu6000/mpu6000_i2c.cpp
+++ b/src/drivers/imu/mpu6000/mpu6000_i2c.cpp
@@ -67,9 +67,8 @@ class MPU6000_I2C : public device::I2C
 {
 public:
 	MPU6000_I2C(int bus, int device_type);
-	virtual ~MPU6000_I2C();
+	virtual ~MPU6000_I2C() = default;
 
-	virtual int	init();
 	virtual int	read(unsigned address, void *data, unsigned count);
 	virtual int	write(unsigned address, void *data, unsigned count);
 
@@ -97,17 +96,6 @@ MPU6000_I2C::MPU6000_I2C(int bus, int device_type) :
 	_device_id.devid_s.devtype =  DRV_ACC_DEVTYPE_MPU6000;
 }
 
-MPU6000_I2C::~MPU6000_I2C()
-{
-}
-
-int
-MPU6000_I2C::init()
-{
-	/* this will call probe() */
-	return I2C::init();
-}
-
 int
 MPU6000_I2C::ioctl(unsigned operation, unsigned &arg)
 {
diff --git a/src/drivers/imu/mpu6000/mpu6000_spi.cpp b/src/drivers/imu/mpu6000/mpu6000_spi.cpp
index acf747f34205690a412dd33069b2f122c10f01db..2261e1bb868b7ee39c78b49074a9e59fbb39c0bc 100644
--- a/src/drivers/imu/mpu6000/mpu6000_spi.cpp
+++ b/src/drivers/imu/mpu6000/mpu6000_spi.cpp
@@ -101,7 +101,7 @@ class MPU6000_SPI : public device::SPI
 {
 public:
 	MPU6000_SPI(int bus, uint32_t device, int device_type);
-	virtual ~MPU6000_SPI();
+	virtual ~MPU6000_SPI() = default;
 
 	virtual int	init();
 	virtual int	read(unsigned address, void *data, unsigned count);
@@ -213,10 +213,6 @@ MPU6000_SPI::MPU6000_SPI(int bus, uint32_t device, int device_type) :
 	_device_id.devid_s.devtype =  DRV_ACC_DEVTYPE_MPU6000;
 }
 
-MPU6000_SPI::~MPU6000_SPI()
-{
-}
-
 int
 MPU6000_SPI::init()
 {
diff --git a/src/drivers/imu/mpu9250/mag_i2c.cpp b/src/drivers/imu/mpu9250/mag_i2c.cpp
index 15fbdbfb10b071e2fd38a87116efd3214e1e4e16..3f0bb4f225cc1b97ce1593feeed5455fde256b48 100644
--- a/src/drivers/imu/mpu9250/mag_i2c.cpp
+++ b/src/drivers/imu/mpu9250/mag_i2c.cpp
@@ -69,9 +69,8 @@ class AK8963_I2C : public device::I2C
 {
 public:
 	AK8963_I2C(int bus);
-	virtual ~AK8963_I2C();
+	virtual ~AK8963_I2C() = default;
 
-	virtual int	init();
 	virtual int	read(unsigned address, void *data, unsigned count);
 	virtual int	write(unsigned address, void *data, unsigned count);
 
@@ -95,17 +94,6 @@ AK8963_I2C::AK8963_I2C(int bus) :
 	_device_id.devid_s.devtype =  DRV_MAG_DEVTYPE_MPU9250;
 }
 
-AK8963_I2C::~AK8963_I2C()
-{
-}
-
-int
-AK8963_I2C::init()
-{
-	/* this will call probe() */
-	return I2C::init();
-}
-
 int
 AK8963_I2C::ioctl(unsigned operation, unsigned &arg)
 {
diff --git a/src/drivers/kinetis/tone_alarm/tone_alarm.cpp b/src/drivers/kinetis/tone_alarm/tone_alarm.cpp
index 7f25e34a26bd470466eea41094007bc87fc77e9f..ddc3ad94ce5651da4a58c8f1efc548b5eb257425 100644
--- a/src/drivers/kinetis/tone_alarm/tone_alarm.cpp
+++ b/src/drivers/kinetis/tone_alarm/tone_alarm.cpp
@@ -199,7 +199,7 @@ class ToneAlarm : public device::CDev
 {
 public:
 	ToneAlarm();
-	~ToneAlarm();
+	~ToneAlarm() = default;
 
 	virtual int		init();
 
@@ -342,10 +342,6 @@ ToneAlarm::ToneAlarm() :
 	_tune_names[TONE_HOME_SET] = "home_set";
 }
 
-ToneAlarm::~ToneAlarm()
-{
-}
-
 int
 ToneAlarm::init()
 {
diff --git a/src/drivers/magnetometer/hmc5883/hmc5883_i2c.cpp b/src/drivers/magnetometer/hmc5883/hmc5883_i2c.cpp
index 79f77dc13a87fed5aaec5891034b05f037f8e62a..2ab4921251bf1975cd143630b70eb72a32ebd8fc 100644
--- a/src/drivers/magnetometer/hmc5883/hmc5883_i2c.cpp
+++ b/src/drivers/magnetometer/hmc5883/hmc5883_i2c.cpp
@@ -67,9 +67,8 @@ class HMC5883_I2C : public device::I2C
 {
 public:
 	HMC5883_I2C(int bus);
-	virtual ~HMC5883_I2C();
+	virtual ~HMC5883_I2C() = default;
 
-	virtual int	init();
 	virtual int	read(unsigned address, void *data, unsigned count);
 	virtual int	write(unsigned address, void *data, unsigned count);
 
@@ -92,17 +91,6 @@ HMC5883_I2C::HMC5883_I2C(int bus) :
 	_device_id.devid_s.devtype = DRV_MAG_DEVTYPE_HMC5883;
 }
 
-HMC5883_I2C::~HMC5883_I2C()
-{
-}
-
-int
-HMC5883_I2C::init()
-{
-	/* this will call probe() */
-	return I2C::init();
-}
-
 int
 HMC5883_I2C::ioctl(unsigned operation, unsigned &arg)
 {
diff --git a/src/drivers/magnetometer/hmc5883/hmc5883_spi.cpp b/src/drivers/magnetometer/hmc5883/hmc5883_spi.cpp
index 1b94074d629b8e583981be681fb6945e06fea05d..295baf029d2e0126353fe8bebcbdf0f9208b3e01 100644
--- a/src/drivers/magnetometer/hmc5883/hmc5883_spi.cpp
+++ b/src/drivers/magnetometer/hmc5883/hmc5883_spi.cpp
@@ -74,7 +74,7 @@ class HMC5883_SPI : public device::SPI
 {
 public:
 	HMC5883_SPI(int bus, uint32_t device);
-	virtual ~HMC5883_SPI();
+	virtual ~HMC5883_SPI() = default;
 
 	virtual int	init();
 	virtual int	read(unsigned address, void *data, unsigned count);
@@ -96,10 +96,6 @@ HMC5883_SPI::HMC5883_SPI(int bus, uint32_t device) :
 	_device_id.devid_s.devtype = DRV_MAG_DEVTYPE_HMC5883;
 }
 
-HMC5883_SPI::~HMC5883_SPI()
-{
-}
-
 int
 HMC5883_SPI::init()
 {
diff --git a/src/drivers/magnetometer/lis3mdl/lis3mdl_i2c.cpp b/src/drivers/magnetometer/lis3mdl/lis3mdl_i2c.cpp
index 882f15c55f3fa7d8958a4e3ea146f3ec1aa0658c..0e17ed6c960235a4ede12c45dbb307e481cdb8bf 100644
--- a/src/drivers/magnetometer/lis3mdl/lis3mdl_i2c.cpp
+++ b/src/drivers/magnetometer/lis3mdl/lis3mdl_i2c.cpp
@@ -65,9 +65,8 @@ class LIS3MDL_I2C : public device::I2C
 {
 public:
 	LIS3MDL_I2C(int bus);
-	virtual ~LIS3MDL_I2C();
+	virtual ~LIS3MDL_I2C() = default;
 
-	virtual int     init();
 	virtual int     ioctl(unsigned operation, unsigned &arg);
 	virtual int     read(unsigned address, void *data, unsigned count);
 	virtual int     write(unsigned address, void *data, unsigned count);
@@ -92,17 +91,6 @@ LIS3MDL_I2C::LIS3MDL_I2C(int bus) :
 	_device_id.devid_s.devtype = DRV_MAG_DEVTYPE_LIS3MDL;
 }
 
-LIS3MDL_I2C::~LIS3MDL_I2C()
-{
-}
-
-int
-LIS3MDL_I2C::init()
-{
-	/* this will call probe() */
-	return I2C::init();
-}
-
 int
 LIS3MDL_I2C::ioctl(unsigned operation, unsigned &arg)
 {
diff --git a/src/drivers/magnetometer/lis3mdl/lis3mdl_spi.cpp b/src/drivers/magnetometer/lis3mdl/lis3mdl_spi.cpp
index ac80ad78d61f967f1f3ea4ae75414e3b8a61d884..dc5a6e9969da40ed838feeaaec4d881c0c88db38 100644
--- a/src/drivers/magnetometer/lis3mdl/lis3mdl_spi.cpp
+++ b/src/drivers/magnetometer/lis3mdl/lis3mdl_spi.cpp
@@ -68,7 +68,7 @@ class LIS3MDL_SPI : public device::SPI
 {
 public:
 	LIS3MDL_SPI(int bus, uint32_t device);
-	virtual ~LIS3MDL_SPI();
+	virtual ~LIS3MDL_SPI() = default;
 
 	virtual int     init();
 	virtual int     ioctl(unsigned operation, unsigned &arg);
@@ -91,10 +91,6 @@ LIS3MDL_SPI::LIS3MDL_SPI(int bus, uint32_t device) :
 	_device_id.devid_s.devtype = DRV_MAG_DEVTYPE_LIS3MDL;
 }
 
-LIS3MDL_SPI::~LIS3MDL_SPI()
-{
-}
-
 int
 LIS3MDL_SPI::init()
 {
diff --git a/src/drivers/md25/md25.cpp b/src/drivers/md25/md25.cpp
index 9bd591607d31b1644e6f6927a8fb386088d9894d..5cbcece21bf17d01aa57b9caa65579a881b8cf9d 100644
--- a/src/drivers/md25/md25.cpp
+++ b/src/drivers/md25/md25.cpp
@@ -121,10 +121,6 @@ MD25::MD25(const char *deviceName, int bus,
 	setTimeout(true);
 }
 
-MD25::~MD25()
-{
-}
-
 int MD25::readData()
 {
 	uint8_t sendBuf[1];
diff --git a/src/drivers/md25/md25.hpp b/src/drivers/md25/md25.hpp
index 962c6b881d891eba7197bb4e96880f226042a46a..c59b97a97296ea6cc8a64deed786a7439b00ebf1 100644
--- a/src/drivers/md25/md25.hpp
+++ b/src/drivers/md25/md25.hpp
@@ -120,7 +120,7 @@ public:
 	/**
 	 * deconstructor
 	 */
-	virtual ~MD25();
+	virtual ~MD25() = default;
 
 	/**
 	 * @return software version
diff --git a/src/drivers/pca8574/pca8574.cpp b/src/drivers/pca8574/pca8574.cpp
index 8d6c05c1d264485412e8256f6ad8d708a310114b..678f62d01d15c4187e1445ea948769c1bc684e9d 100644
--- a/src/drivers/pca8574/pca8574.cpp
+++ b/src/drivers/pca8574/pca8574.cpp
@@ -74,10 +74,8 @@ class PCA8574 : public device::I2C
 {
 public:
 	PCA8574(int bus, int pca8574);
-	virtual ~PCA8574();
+	virtual ~PCA8574() = default;
 
-
-	virtual int		init();
 	virtual int		probe();
 	virtual int		info();
 	virtual int		ioctl(struct file *filp, int cmd, unsigned long arg);
@@ -133,23 +131,6 @@ PCA8574::PCA8574(int bus, int pca8574) :
 	memset(&_work, 0, sizeof(_work));
 }
 
-PCA8574::~PCA8574()
-{
-}
-
-int
-PCA8574::init()
-{
-	int ret;
-	ret = I2C::init();
-
-	if (ret != OK) {
-		return ret;
-	}
-
-	return OK;
-}
-
 int
 PCA8574::probe()
 {
diff --git a/src/drivers/pca9685/pca9685.cpp b/src/drivers/pca9685/pca9685.cpp
index ff010396df9bc78186d99332d6edb9c8dc9c790d..a1e13b601a20185faf2cf9d1581b495c8b85d537 100644
--- a/src/drivers/pca9685/pca9685.cpp
+++ b/src/drivers/pca9685/pca9685.cpp
@@ -112,7 +112,7 @@ class PCA9685 : public device::I2C
 {
 public:
 	PCA9685(int bus = PCA9685_BUS, uint8_t address = ADDR);
-	virtual ~PCA9685();
+	virtual ~PCA9685() = default;
 
 
 	virtual int		init();
@@ -198,10 +198,6 @@ PCA9685::PCA9685(int bus, uint8_t address) :
 	memset(_current_values, 0, sizeof(_current_values));
 }
 
-PCA9685::~PCA9685()
-{
-}
-
 int
 PCA9685::init()
 {
diff --git a/src/drivers/px4io/px4io_uploader.cpp b/src/drivers/px4io/px4io_uploader.cpp
index c222509323448d0e2b03e3605172888632f8b4d7..b0af24aa082d83b79ebf6750eb8d8becbdfd410d 100644
--- a/src/drivers/px4io/px4io_uploader.cpp
+++ b/src/drivers/px4io/px4io_uploader.cpp
@@ -70,10 +70,6 @@ PX4IO_Uploader::PX4IO_Uploader() :
 {
 }
 
-PX4IO_Uploader::~PX4IO_Uploader()
-{
-}
-
 int
 PX4IO_Uploader::upload(const char *filenames[])
 {
diff --git a/src/drivers/px4io/uploader.h b/src/drivers/px4io/uploader.h
index 2855ea4ad6f7c4fcc41aef41d6783bb964d6f32d..acfaddbe521380c7184f398b0b45caf3391953fc 100644
--- a/src/drivers/px4io/uploader.h
+++ b/src/drivers/px4io/uploader.h
@@ -47,7 +47,7 @@ class PX4IO_Uploader
 {
 public:
 	PX4IO_Uploader();
-	virtual ~PX4IO_Uploader();
+	virtual ~PX4IO_Uploader() = default;
 
 	int			upload(const char *filenames[]);
 
diff --git a/src/drivers/samv7/drv_input_capture.c b/src/drivers/samv7/drv_input_capture.c
index ffe9fcdbc82f5d3da721ae51a083d44913faf049..042386e6db9b7a18d48a5128a02731410600f39a 100644
--- a/src/drivers/samv7/drv_input_capture.c
+++ b/src/drivers/samv7/drv_input_capture.c
@@ -87,13 +87,12 @@ static struct channel_handler_entry {
 	void			  *context;
 } channel_handlers[MAX_TIMER_IO_CHANNELS];
 
-
-
 static void input_capture_chan_handler(void *context, const io_timers_t *timer, uint32_t chan_index,
 				       const timer_io_channels_t *chan,
 				       hrt_abstime isrs_time, uint16_t isrs_rcnt)
 {
 }
+
 static void input_capture_bind(unsigned channel, capture_callback_t callback, void *context)
 {
 	irqstate_t flags = enter_critical_section();
diff --git a/src/drivers/samv7/tone_alarm/tone_alarm.cpp b/src/drivers/samv7/tone_alarm/tone_alarm.cpp
index 672321331ac6f0c23f3e47a098a0d49c1214c3af..c91766fcdd46616fd907f27651fe1b8f0f5708cf 100644
--- a/src/drivers/samv7/tone_alarm/tone_alarm.cpp
+++ b/src/drivers/samv7/tone_alarm/tone_alarm.cpp
@@ -212,7 +212,7 @@ class ToneAlarm : public device::CDev
 {
 public:
 	ToneAlarm();
-	~ToneAlarm();
+	~ToneAlarm() = default;
 
 	virtual int		init();
 
@@ -355,10 +355,6 @@ ToneAlarm::ToneAlarm() :
 	_tune_names[TONE_HOME_SET] = "home_set";
 }
 
-ToneAlarm::~ToneAlarm()
-{
-}
-
 int
 ToneAlarm::init()
 {
diff --git a/src/examples/segway/blocks.cpp b/src/examples/segway/blocks.cpp
index da0cf91f710928a7ad81a90b5cb2822a85a6e179..695cdec2d0b19255aad15460d719ffac4ac102c0 100644
--- a/src/examples/segway/blocks.cpp
+++ b/src/examples/segway/blocks.cpp
@@ -54,8 +54,6 @@ BlockWaypointGuidance::BlockWaypointGuidance(SuperBlock *parent, const char *nam
 {
 }
 
-BlockWaypointGuidance::~BlockWaypointGuidance() = default;;
-
 void BlockWaypointGuidance::update(
 	const vehicle_global_position_s &pos,
 	const vehicle_attitude_s &att,
diff --git a/src/examples/segway/blocks.hpp b/src/examples/segway/blocks.hpp
index ebf2edd4e12960ccde99f5b541c8db6e926dd8e7..f5b95b36b6520287f3b69e5981941ad415174397 100644
--- a/src/examples/segway/blocks.hpp
+++ b/src/examples/segway/blocks.hpp
@@ -75,11 +75,13 @@ private:
 	float _psiCmd;
 public:
 	BlockWaypointGuidance(SuperBlock *parent, const char *name);
-	virtual ~BlockWaypointGuidance();
+	virtual ~BlockWaypointGuidance() = default;
+
 	void update(const vehicle_global_position_s &pos,
 		    const vehicle_attitude_s &att,
 		    const position_setpoint_s &missionCmd,
 		    const position_setpoint_s &lastMissionCmd);
+
 	float getPsiCmd() { return _psiCmd; }
 };
 
diff --git a/src/lib/drivers/led/led.cpp b/src/lib/drivers/led/led.cpp
index f0d928538ab728644d5950f397b2fab386201a2e..9819875218fa39fce15fc076f4543299f9cdd18d 100644
--- a/src/lib/drivers/led/led.cpp
+++ b/src/lib/drivers/led/led.cpp
@@ -60,7 +60,7 @@ class LED : device::CDev
 {
 public:
 	LED();
-	virtual ~LED();
+	virtual ~LED() = default;
 
 	virtual int		init();
 	virtual int		ioctl(device::file_t *filp, int cmd, unsigned long arg);
@@ -72,8 +72,6 @@ LED::LED() : CDev("led", LED0_DEVICE_PATH)
 	init();
 }
 
-LED::~LED() = default;
-
 int
 LED::init()
 {
diff --git a/src/modules/landing_target_estimator/LandingTargetEstimator.cpp b/src/modules/landing_target_estimator/LandingTargetEstimator.cpp
index 6eb60127eb5eecc63d9dd63b767201a733b55964..d285240562330c74b8ff67e97bc4a832e080be30 100644
--- a/src/modules/landing_target_estimator/LandingTargetEstimator.cpp
+++ b/src/modules/landing_target_estimator/LandingTargetEstimator.cpp
@@ -78,8 +78,6 @@ LandingTargetEstimator::LandingTargetEstimator() :
 	_check_params(true);
 }
 
-LandingTargetEstimator::~LandingTargetEstimator() = default;
-
 void LandingTargetEstimator::update()
 {
 	_check_params(false);
diff --git a/src/modules/landing_target_estimator/LandingTargetEstimator.h b/src/modules/landing_target_estimator/LandingTargetEstimator.h
index 1180f04009662e85d34b0bad5d28aec1305b67f4..7a859795175534906cfbf7c71cfb50077cd408b7 100644
--- a/src/modules/landing_target_estimator/LandingTargetEstimator.h
+++ b/src/modules/landing_target_estimator/LandingTargetEstimator.h
@@ -67,7 +67,7 @@ class LandingTargetEstimator
 public:
 
 	LandingTargetEstimator();
-	virtual ~LandingTargetEstimator();
+	virtual ~LandingTargetEstimator() = default;
 
 	/*
 	 * Get new measurements and update the state estimate
diff --git a/src/modules/mavlink/mavlink_shell.cpp b/src/modules/mavlink/mavlink_shell.cpp
index df4e31a1e9b0f55aece539e9ab6a71682f20f258..55fc85fa68ebfd44c089c1131425fdf55a5d5e0f 100644
--- a/src/modules/mavlink/mavlink_shell.cpp
+++ b/src/modules/mavlink/mavlink_shell.cpp
@@ -54,8 +54,6 @@
 #include <asm/socket.h>
 #endif
 
-MavlinkShell::MavlinkShell() = default;
-
 MavlinkShell::~MavlinkShell()
 {
 	//closing the pipes will stop the thread as well
diff --git a/src/modules/mavlink/mavlink_shell.h b/src/modules/mavlink/mavlink_shell.h
index ad1e2205a5aed67cf4fc4b9a23874c81d7870e02..53bbc3293170d029e069e172834d01e7e19a487e 100644
--- a/src/modules/mavlink/mavlink_shell.h
+++ b/src/modules/mavlink/mavlink_shell.h
@@ -48,7 +48,7 @@
 class MavlinkShell
 {
 public:
-	MavlinkShell();
+	MavlinkShell() = default;
 
 	~MavlinkShell();
 
diff --git a/src/modules/mavlink/mavlink_tests/mavlink_ftp_test.cpp b/src/modules/mavlink/mavlink_tests/mavlink_ftp_test.cpp
index 3b44b2504fa61263ee326ba9c2e39fa3e93aecf8..2b319d9a86432b2eddabc0529454a61fff272f48 100644
--- a/src/modules/mavlink/mavlink_tests/mavlink_ftp_test.cpp
+++ b/src/modules/mavlink/mavlink_tests/mavlink_ftp_test.cpp
@@ -65,8 +65,6 @@ MavlinkFtpTest::MavlinkFtpTest() :
 {
 }
 
-MavlinkFtpTest::~MavlinkFtpTest() = default;
-
 /// @brief Called before every test to initialize the FTP Server.
 void MavlinkFtpTest::_init()
 {
diff --git a/src/modules/mavlink/mavlink_tests/mavlink_ftp_test.h b/src/modules/mavlink/mavlink_tests/mavlink_ftp_test.h
index 58a41ae25d25cc560422bac9c12f4d2193b1e335..8af982f41cb22c4aca87037353f92c09a0594f57 100644
--- a/src/modules/mavlink/mavlink_tests/mavlink_ftp_test.h
+++ b/src/modules/mavlink/mavlink_tests/mavlink_ftp_test.h
@@ -44,7 +44,7 @@ class MavlinkFtpTest : public UnitTest
 {
 public:
 	MavlinkFtpTest();
-	virtual ~MavlinkFtpTest();
+	virtual ~MavlinkFtpTest() = default;
 
 	virtual bool run_tests(void);
 
diff --git a/src/modules/muorb/krait/px4muorb_KraitRpcWrapper.cpp b/src/modules/muorb/krait/px4muorb_KraitRpcWrapper.cpp
index 52003b557e215a972f7d4a2b84696ba1cc581e09..d697a973737a68eac5fce5f86947ed6b3f2891d2 100644
--- a/src/modules/muorb/krait/px4muorb_KraitRpcWrapper.cpp
+++ b/src/modules/muorb/krait/px4muorb_KraitRpcWrapper.cpp
@@ -145,14 +145,6 @@ int calc_timer_diff_to_dsp_us(int32_t *time_diff_us)
 	return 0;
 }
 
-px4muorb::KraitRpcWrapper::KraitRpcWrapper()
-{
-}
-
-px4muorb::KraitRpcWrapper::~KraitRpcWrapper()
-{
-}
-
 bool px4muorb::KraitRpcWrapper::Initialize()
 {
 	bool rc = true;
diff --git a/src/modules/muorb/krait/px4muorb_KraitRpcWrapper.hpp b/src/modules/muorb/krait/px4muorb_KraitRpcWrapper.hpp
index 9a931ec02b549039e85f1864b0b17b84c70ebe85..3fec23ff9ca562af19d7921c5211f82e1d886240 100644
--- a/src/modules/muorb/krait/px4muorb_KraitRpcWrapper.hpp
+++ b/src/modules/muorb/krait/px4muorb_KraitRpcWrapper.hpp
@@ -45,12 +45,12 @@ public:
 	/**
 	 * Constructor
 	 */
-	KraitRpcWrapper();
+	KraitRpcWrapper() = default;
 
 	/**
 	 * destructor
 	 */
-	~KraitRpcWrapper();
+	~KraitRpcWrapper() = default;
 
 	/**
 	 * Initiatizes the rpc channel px4 muorb
diff --git a/src/modules/simulator/accelsim/accelsim.cpp b/src/modules/simulator/accelsim/accelsim.cpp
index c2e8cf4fade9565aec4905f265cb820f363c5d60..a6966043a13c4e2a8780606a5f3d31ac3f201ce4 100644
--- a/src/modules/simulator/accelsim/accelsim.cpp
+++ b/src/modules/simulator/accelsim/accelsim.cpp
@@ -209,7 +209,7 @@ class ACCELSIM_mag : public VirtDevObj
 {
 public:
 	ACCELSIM_mag(ACCELSIM *parent);
-	~ACCELSIM_mag();
+	~ACCELSIM_mag() = default;
 
 	virtual ssize_t	devRead(void *buffer, size_t buflen);
 	virtual int	devIOCTL(unsigned long cmd, unsigned long arg);
@@ -973,8 +973,6 @@ ACCELSIM_mag::ACCELSIM_mag(ACCELSIM *parent) :
 	m_id.dev_id_s.devtype = DRV_ACC_DEVTYPE_ACCELSIM;
 }
 
-ACCELSIM_mag::~ACCELSIM_mag() = default;
-
 ssize_t
 ACCELSIM_mag::devRead(void *buffer, size_t buflen)
 {
diff --git a/src/modules/vtol_att_control/standard.cpp b/src/modules/vtol_att_control/standard.cpp
index 24b240114c3b4df374c88d7aad00b685c2182842..8ad2093b13b7ae8e32f06db85defdefff6389343 100644
--- a/src/modules/vtol_att_control/standard.cpp
+++ b/src/modules/vtol_att_control/standard.cpp
@@ -72,8 +72,6 @@ Standard::Standard(VtolAttitudeControl *attc) :
 	_params_handles_standard.reverse_delay = param_find("VT_B_REV_DEL");
 }
 
-Standard::~Standard() = default;
-
 void
 Standard::parameters_update()
 {
diff --git a/src/modules/vtol_att_control/standard.h b/src/modules/vtol_att_control/standard.h
index c53f608500838f1e47b2a0b49129d9803a61031e..884753fa6f3f8aa7463b7e350ceb5fbfc11525a5 100644
--- a/src/modules/vtol_att_control/standard.h
+++ b/src/modules/vtol_att_control/standard.h
@@ -55,7 +55,7 @@ class Standard : public VtolType
 public:
 
 	Standard(VtolAttitudeControl *_att_controller);
-	~Standard();
+	~Standard() = default;
 
 	virtual void update_vtol_state();
 	virtual void update_transition_state();
diff --git a/src/modules/vtol_att_control/tailsitter.cpp b/src/modules/vtol_att_control/tailsitter.cpp
index f040bf1da0c26b85eb3e0d195540985502ce5d29..be21121bc6fc013689bec122180e003985228faf 100644
--- a/src/modules/vtol_att_control/tailsitter.cpp
+++ b/src/modules/vtol_att_control/tailsitter.cpp
@@ -65,8 +65,6 @@ Tailsitter::Tailsitter(VtolAttitudeControl *attc) :
 	_params_handles_tailsitter.front_trans_dur_p2 = param_find("VT_TRANS_P2_DUR");
 }
 
-Tailsitter::~Tailsitter() = default;
-
 void
 Tailsitter::parameters_update()
 {
diff --git a/src/modules/vtol_att_control/tailsitter.h b/src/modules/vtol_att_control/tailsitter.h
index 2fca09b9c9bc24d889ee902de3d499afc15303a8..b65a4ef7131d1794e0f65258e84542867e45da02 100644
--- a/src/modules/vtol_att_control/tailsitter.h
+++ b/src/modules/vtol_att_control/tailsitter.h
@@ -52,7 +52,7 @@ class Tailsitter : public VtolType
 
 public:
 	Tailsitter(VtolAttitudeControl *_att_controller);
-	~Tailsitter();
+	~Tailsitter() = default;
 
 	virtual void update_vtol_state();
 	virtual void update_transition_state();
diff --git a/src/modules/vtol_att_control/tiltrotor.cpp b/src/modules/vtol_att_control/tiltrotor.cpp
index 01695c112c65a152bd57d1aa81b9def46a55dee4..bc9238892eaa9e1cb655dca7c8e9e816fab7535f 100644
--- a/src/modules/vtol_att_control/tiltrotor.cpp
+++ b/src/modules/vtol_att_control/tiltrotor.cpp
@@ -65,8 +65,6 @@ Tiltrotor::Tiltrotor(VtolAttitudeControl *attc) :
 	_params_handles_tiltrotor.diff_thrust_scale = param_find("VT_FW_DIFTHR_SC");
 }
 
-Tiltrotor::~Tiltrotor() = default;
-
 void
 Tiltrotor::parameters_update()
 {
diff --git a/src/modules/vtol_att_control/tiltrotor.h b/src/modules/vtol_att_control/tiltrotor.h
index 6ba94c2b9488a30acb09a101617cacd48aca7b00..508973642a69f58c5cceefe6bc3dcaa04dafb802 100644
--- a/src/modules/vtol_att_control/tiltrotor.h
+++ b/src/modules/vtol_att_control/tiltrotor.h
@@ -50,7 +50,7 @@ class Tiltrotor : public VtolType
 public:
 
 	Tiltrotor(VtolAttitudeControl *_att_controller);
-	~Tiltrotor();
+	~Tiltrotor() = default;
 
 	virtual void update_vtol_state();
 	virtual void update_transition_state();
diff --git a/src/modules/vtol_att_control/vtol_type.cpp b/src/modules/vtol_att_control/vtol_type.cpp
index 803aadbd72ccf20b15bbc91322879ec6e63f2485..ccbc24c126868689eb062af368a6affbd97f2bf5 100644
--- a/src/modules/vtol_att_control/vtol_type.cpp
+++ b/src/modules/vtol_att_control/vtol_type.cpp
@@ -76,8 +76,6 @@ VtolType::VtolType(VtolAttitudeControl *att_controller) :
 	}
 }
 
-VtolType::~VtolType() = default;
-
 bool VtolType::init()
 {
 	const char *dev = PWM_OUTPUT0_DEVICE_PATH;
diff --git a/src/modules/vtol_att_control/vtol_type.h b/src/modules/vtol_att_control/vtol_type.h
index 04acccf46a2527ccb4649713d9b36b17630e0235..6bed95a002866002d0731ba227144a4acd588f00 100644
--- a/src/modules/vtol_att_control/vtol_type.h
+++ b/src/modules/vtol_att_control/vtol_type.h
@@ -116,7 +116,7 @@ public:
 	VtolType(const VtolType &) = delete;
 	VtolType &operator=(const VtolType &) = delete;
 
-	virtual ~VtolType();
+	virtual ~VtolType() = default;
 
 	/**
 	 * Initialise.