diff --git a/tools/dnc/dnc.cpp b/tools/dnc/dnc.cpp
index 7f17464..37c8b22 100644
--- a/tools/dnc/dnc.cpp
+++ b/tools/dnc/dnc.cpp
@@ -61,8 +61,8 @@
          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 92f30b1..ca4e99d 100644
--- a/tools/dsh/dsh.cpp
+++ b/tools/dsh/dsh.cpp
@@ -92,8 +92,9 @@
                  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 @@
                                           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 c349619..3bdc934 100644
--- a/tools/dsh/dsh.h
+++ b/tools/dsh/dsh.h
@@ -51,7 +51,7 @@
     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 212b340..f0fc820 100644
--- a/tools/dvpn/dvpn.cpp
+++ b/tools/dvpn/dvpn.cpp
@@ -165,7 +165,8 @@
                    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] {
