diff --git a/tools/dnc/dnc.cpp b/tools/dnc/dnc.cpp
index 7f174640975ec98ae65e28593e3b27e502a4b647..37c8b229e0ae21e54464e7101145f8b12f927683 100644
--- a/tools/dnc/dnc.cpp
+++ b/tools/dnc/dnc.cpp
@@ -61,8 +61,8 @@ Dnc::Dnc(const std::filesystem::path& path,
          const std::string& turn_pass,
          const std::string& turn_realm)
     : logger(dht::log::getStdLogger())
-    // , certStore(std::shared_ptr<tls::CertificateStore>(path / "certstore", logger))
-    , ioContext(std::make_shared<asio::io_context>())
+    , ioContext(std::make_shared<asio::io_context>()),
+    iceFactory(std::make_shared<IceTransportFactory>(logger))
 {
     auto certStore = std::make_shared<tls::CertificateStore>(path / "certstore", logger);
     ioContextRunner = std::thread([context = ioContext, logger = logger] {
diff --git a/tools/dsh/dsh.cpp b/tools/dsh/dsh.cpp
index 92f30b1d9f0734cbb55e56d4f19158b632a84232..ca4e99d2f38ee754114b73ac1d4a3234ae72ed82 100644
--- a/tools/dsh/dsh.cpp
+++ b/tools/dsh/dsh.cpp
@@ -92,8 +92,9 @@ dhtnet::Dsh::Dsh(const std::filesystem::path& path,
                  const std::string& turn_user,
                  const std::string& turn_pass,
                  const std::string& turn_realm)
-    : logger(dht::log::getStdLogger())
-    // , std::shared_ptr<tls::CertificateStore>(path / "certstore", logger)
+    :logger(dht::log::getStdLogger())
+    , ioContext(std::make_shared<asio::io_context>()),
+    iceFactory(std::make_shared<IceTransportFactory>(logger))
 {
     auto certStore = std::make_shared<tls::CertificateStore>(path / "certstore", logger);
 
@@ -114,7 +115,7 @@ dhtnet::Dsh::Dsh(const std::filesystem::path& path,
                                           logger,
                                           certStore,
                                           ioContext,
-                                          factory);
+                                          iceFactory);
     // create a connection manager
     connectionManager = std::make_unique<ConnectionManager>(std::move(config));
 
diff --git a/tools/dsh/dsh.h b/tools/dsh/dsh.h
index c349619abb73e22e6bb343cb254238631b5ba4e7..3bdc93476e65135d065c79539e31e2aa4970edff 100644
--- a/tools/dsh/dsh.h
+++ b/tools/dsh/dsh.h
@@ -51,7 +51,7 @@ private:
     std::unique_ptr<ConnectionManager> connectionManager;
     std::shared_ptr<Logger> logger;
     std::shared_ptr<tls::CertificateStore> certStore {nullptr};
-    std::shared_ptr<dhtnet::IceTransportFactory> factory {nullptr};
+    std::shared_ptr<dhtnet::IceTransportFactory> iceFactory {nullptr};
     std::shared_ptr<asio::io_context> ioContext;
     std::thread ioContextRunner;
 };
diff --git a/tools/dvpn/dvpn.cpp b/tools/dvpn/dvpn.cpp
index 212b340f3b3696ac6aaa7fe4e72dba0d0be3916d..f0fc8209fd384bfb628223ce190ea59ff8a810b8 100644
--- a/tools/dvpn/dvpn.cpp
+++ b/tools/dvpn/dvpn.cpp
@@ -165,7 +165,8 @@ dhtnet::Dvpn::Dvpn(const std::filesystem::path& path,
                    const std::string& turn_realm,
                    const std::string& configuration_file)
     : logger(dht::log::getStdLogger())
-    , ioContext(std::make_shared<asio::io_context>())
+    , ioContext(std::make_shared<asio::io_context>()),
+    iceFactory(std::make_shared<IceTransportFactory>(logger))
 {
     auto certStore = std::make_shared<tls::CertificateStore>(path / "certstore", logger);
     ioContextRunner = std::thread([context = ioContext, logger = logger] {