diff --git a/src/connectionmanager.cpp b/src/connectionmanager.cpp
index 45dc64caa6eb3c114e1ecd90e8a89751168070a6..266fa080e2a9f361017e3563bf051001336d6891 100644
--- a/src/connectionmanager.cpp
+++ b/src/connectionmanager.cpp
@@ -428,9 +428,9 @@ class ConnectionManager::Impl : public std::enable_shared_from_this<ConnectionMa
 {
 public:
     explicit Impl(std::shared_ptr<ConnectionManager::Config> config_)
-        : config_ {std::move(createConfig(config_))}
+        : treatedMessages_ {config_->cachePath / "treatedMessages"}
+        , config_ {createConfig(config_)}
         , rand_ {config_->rng ? *config_->rng : dht::crypto::getSeededRandomEngine<std::mt19937_64>()}
-        , treatedMessages_ {config_->cachePath / "treatedMessages"}
     {
         if(!config_->ioContext) {
             config_->ioContext = std::make_shared<asio::io_context>();
@@ -1572,7 +1572,7 @@ ConnectionManager::Impl::addNewMultiplexedSocket(const std::weak_ptr<DeviceInfo>
                     std::unique_lock lkc(info->mutex_);
                     auto ids = std::move(info->pendingCbs_);
                     auto [ops, retry] = deviceInfo->resetPendingOperations(ids);
-                    auto erased = deviceInfo->info.erase(vid);
+                    deviceInfo->info.erase(vid);
                     if (!retry && deviceInfo->empty()) {
                         if (auto sthis = w.lock())
                             sthis->infos_.removeDeviceInfo(deviceInfo->deviceId);
diff --git a/src/multiplexed_socket.cpp b/src/multiplexed_socket.cpp
index 910e31e87bcf9dfa043bfb710f3b6c291b004558..6d1e002f17a014cdd6dd22fac8600e8c756bd6cd 100644
--- a/src/multiplexed_socket.cpp
+++ b/src/multiplexed_socket.cpp
@@ -63,11 +63,11 @@ public:
          std::unique_ptr<TlsSocketEndpoint> ep,
          std::shared_ptr<dht::log::Logger> logger)
         : parent_(parent)
+        , logger_(std::move(logger))
         , ctx_(std::move(ctx))
         , deviceId(deviceId)
         , endpoint(std::move(ep))
         , nextChannel_(endpoint->isInitiator() ? 0x0001u : 0x8000u)
-        , logger_(std::move(logger))
         , eventLoopThread_ {[this] {
             try {
                 eventLoop();
diff --git a/src/upnp/upnp_context.cpp b/src/upnp/upnp_context.cpp
index 8bb2fece23c5ba9fd2b0f8976d255c8f33426a32..38a5a856c646f80a7f802607c969276e3d9461d8 100644
--- a/src/upnp/upnp_context.cpp
+++ b/src/upnp/upnp_context.cpp
@@ -47,10 +47,10 @@ constexpr static uint16_t UPNP_UDP_PORT_MAX {UPNP_UDP_PORT_MIN + 5000};
 UPnPContext::UPnPContext(const std::shared_ptr<asio::io_context>& ioContext, const std::shared_ptr<dht::log::Logger>& logger)
  : ctx(createIoContext(ioContext, logger))
  , logger_(logger)
+ , connectivityChangedTimer_(*ctx)
  , mappingRenewalTimer_(*ctx)
  , renewalSchedulingTimer_(*ctx)
  , syncTimer_(*ctx)
- , connectivityChangedTimer_(*ctx)
  , igdDiscoveryTimer_(*ctx)
 
 {
diff --git a/tools/common.cpp b/tools/common.cpp
index 06b92080254251457559b7fbe4981d5f6d057439..62562fbbba3bc903487159f5f3b8b9ec2ab16759 100644
--- a/tools/common.cpp
+++ b/tools/common.cpp
@@ -103,7 +103,7 @@ connectionManagerConfig(dht::crypto::Identity identity,
         config->upnpCtrl = controller;
     }
 
-    return std::move(config);
+    return config;
 }
 template<typename T>
 void
diff --git a/tools/dnc/dnc.cpp b/tools/dnc/dnc.cpp
index 7ed1fc44b9eec0b8c6c9effc8f610a0ba5890e81..fccd694f0deeed76ab2ff526a2e744c5b2a0f5cb 100644
--- a/tools/dnc/dnc.cpp
+++ b/tools/dnc/dnc.cpp
@@ -64,8 +64,8 @@ Dnc::Dnc(dht::crypto::Identity identity,
          const std::map<std::string, std::vector<int>> authorized_services,
          const bool enable_upnp)
     :logger(verbose ? dht::log::getStdLogger() : nullptr),
-    ioContext(std::make_shared<asio::io_context>()),
-    iceFactory(std::make_shared<IceTransportFactory>(logger))
+    iceFactory(std::make_shared<IceTransportFactory>(logger)),
+    ioContext(std::make_shared<asio::io_context>())
 {
     
     certStore = std::make_shared<tls::CertificateStore>(cachePath()/"certStore", logger);
@@ -157,16 +157,16 @@ Dnc::Dnc(dht::crypto::Identity identity,
             asio::async_connect(
                 *socket,
                 endpoints,
-                [this, socket, mtlxSocket](const std::error_code& error,
+                [socket, mtlxSocket](const std::error_code& error,
                                            const asio::ip::tcp::endpoint& ep) {
                     if (!error) {
                         Log("Connected!\n");
-                        mtlxSocket->setOnRecv([socket, this](const uint8_t* data, size_t size) {
+                        mtlxSocket->setOnRecv([socket](const uint8_t* data, size_t size) {
                             auto data_copy = std::make_shared<std::vector<uint8_t>>(data,
                                                                                     data + size);
                             asio::async_write(*socket,
                                               asio::buffer(*data_copy),
-                                              [data_copy, this](const std::error_code& error,
+                                              [data_copy](const std::error_code& error,
                                                                 std::size_t bytesWritten) {
                                                   if (error) {
                                                     Log("Write error: {}\n", error.message());
@@ -209,7 +209,7 @@ Dnc::Dnc(dht::crypto::Identity identity,
     connectionManager->connectDevice(
         peer_id, name, [&](std::shared_ptr<ChannelSocket> socket, const dht::InfoHash&) {
             if (socket) {
-                socket->setOnRecv([this, socket](const uint8_t* data, size_t size) {
+                socket->setOnRecv([socket](const uint8_t* data, size_t size) {
                     std::cout.write((const char*) data, size);
                     std::cout.flush();
                     return size;
diff --git a/tools/dsh/dsh.cpp b/tools/dsh/dsh.cpp
index 5dcfb0b9e5eb4082d7ebe14b9b573bcd2127b4a2..5b13fc89adf263e50a445990451a57aba0a9e485 100644
--- a/tools/dsh/dsh.cpp
+++ b/tools/dsh/dsh.cpp
@@ -93,9 +93,9 @@ dhtnet::Dsh::Dsh(dht::crypto::Identity identity,
                  const std::string& turn_realm,
                  bool anonymous)
     :logger(dht::log::getStdLogger()),
-    ioContext(std::make_shared<asio::io_context>()),
-    iceFactory(std::make_shared<IceTransportFactory>(logger)),
     certStore(std::make_shared<tls::CertificateStore>(cachePath()/"certstore", logger)),
+    iceFactory(std::make_shared<IceTransportFactory>(logger)),
+    ioContext(std::make_shared<asio::io_context>()),
     trustStore(std::make_shared<tls::TrustStore>(*certStore))
 {
     auto ca = identity.second->issuer;
@@ -223,7 +223,7 @@ dhtnet::Dsh::Dsh(dht::crypto::Identity identity,
     connectionManager->connectDevice(
         peer_id, binary, [&](std::shared_ptr<ChannelSocket> socket, const dht::InfoHash&) {
             if (socket) {
-                socket->setOnRecv([this, socket](const uint8_t* data, size_t size) {
+                socket->setOnRecv([socket](const uint8_t* data, size_t size) {
                     std::cout.write((const char*) data, size);
                     std::cout.flush();
                     return size;