diff --git a/tools/dnc/dnc.h b/tools/dnc/dnc.h
index 620f940..b9545c1 100644
--- a/tools/dnc/dnc.h
+++ b/tools/dnc/dnc.h
@@ -1,5 +1,5 @@
 /*
- *  Copyright (C) 2004-2023 Savoir-faire Linux Inc.
+ *  Copyright (C) 2023 Savoir-faire Linux Inc.
  *
  *  This program is free software: you can redistribute it and/or modify
  *  it under the terms of the GNU General Public License as published by
@@ -34,22 +34,30 @@
     // Build a server
     Dnc(const std::filesystem::path& path,
         dht::crypto::Identity identity,
-        const std::string& bootstrap);
+        const std::string& bootstrap,
+        const std::string& turn_host,
+        const std::string& turn_user,
+        const std::string& turn_pass,
+        const std::string& turn_realm);
     // Build a client
     Dnc(const std::filesystem::path& path,
         dht::crypto::Identity identity,
         const std::string& bootstrap,
         dht::InfoHash peer_id,
         const std::string& remote_host,
-        int remote_port);
+        int remote_port,
+        const std::string& turn_host = "",
+        const std::string& turn_user = "",
+        const std::string& turn_pass = "",
+        const std::string& turn_realm = "");
     ~Dnc();
     void run();
 
 private:
     std::unique_ptr<ConnectionManager> connectionManager;
     std::shared_ptr<Logger> logger;
-    tls::CertificateStore certStore;
-    IceTransportFactory iceFactory;
+    std::shared_ptr<tls::CertificateStore> certStore;
+    std::shared_ptr<IceTransportFactory> iceFactory;
     std::shared_ptr<asio::io_context> ioContext;
     std::thread ioContextRunner;
 
