diff --git a/services/tunnelbroker/build.rs b/services/tunnelbroker/build.rs
--- a/services/tunnelbroker/build.rs
+++ b/services/tunnelbroker/build.rs
@@ -27,7 +27,7 @@
   add_import_path("src/libcpp/src/DeliveryBroker");
   add_import_path("src/libcpp/src/Tools");
 
-  cxx_build::bridge("src/main.rs")
+  cxx_build::bridge("src/cxx_bridge.rs")
     .files(get_cpp_sources("../lib/src"))
     .files(get_cpp_sources("src/libcpp/src"))
     .file(Path::new("src/libcpp/Tunnelbroker.cpp"))
diff --git a/services/tunnelbroker/src/main.rs b/services/tunnelbroker/src/cxx_bridge.rs
copy from services/tunnelbroker/src/main.rs
copy to services/tunnelbroker/src/cxx_bridge.rs
--- a/services/tunnelbroker/src/main.rs
+++ b/services/tunnelbroker/src/cxx_bridge.rs
@@ -1,13 +1,7 @@
-pub mod constants;
-
 #[cxx::bridge]
-mod ffi {
+pub mod ffi {
   unsafe extern "C++" {
     include!("tunnelbroker/src/libcpp/Tunnelbroker.h");
     pub fn initialize();
   }
 }
-
-pub fn main() {
-  ffi::initialize();
-}
diff --git a/services/tunnelbroker/src/main.rs b/services/tunnelbroker/src/main.rs
--- a/services/tunnelbroker/src/main.rs
+++ b/services/tunnelbroker/src/main.rs
@@ -1,13 +1,6 @@
 pub mod constants;
-
-#[cxx::bridge]
-mod ffi {
-  unsafe extern "C++" {
-    include!("tunnelbroker/src/libcpp/Tunnelbroker.h");
-    pub fn initialize();
-  }
-}
+pub mod cxx_bridge;
 
 pub fn main() {
-  ffi::initialize();
+  cxx_bridge::ffi::initialize();
 }