diff --git a/build.rs b/build.rs
index 932fceaff808799f7d61e40aa191ef6a346b6233..87e169583e47ffcb12d1ad72ab93c5aa681acbec 100644
--- a/build.rs
+++ b/build.rs
@@ -2,10 +2,10 @@
 
 use std::env;
 
-const DEF_DIR: &str = concat!(env!("CARGO_MANIFEST_DIR"), "/message_definitions");
-
 pub fn main() {
-    let result = mavlink_bindgen::generate(DEF_DIR, env::var("OUT_DIR").unwrap())
+    let out_path = env::var("OUT_DIR").unwrap();
+
+    let result = mavlink_bindgen::generate("message_definitions", out_path)
         .expect("Failed to generate Rust MAVLink bindings");
 
     mavlink_bindgen::format_generated_code(&result);
diff --git a/src/bindings.rs b/src/bindings.rs
deleted file mode 100644
index 725b2b7a222f9dd085aca0b2e9377a7845773a0e..0000000000000000000000000000000000000000
--- a/src/bindings.rs
+++ /dev/null
@@ -1,41 +0,0 @@
-#![allow(non_camel_case_types)]
-#![allow(clippy::derive_partial_eq_without_eq)]
-#![allow(clippy::field_reassign_with_default)]
-#![allow(non_snake_case)]
-#![allow(clippy::unnecessary_cast)]
-#![allow(clippy::bad_bit_mask)]
-
-#[cfg(feature = "gemini")]
-pub mod gemini {
-    include!(concat!(env!("OUT_DIR"), "/lyra.rs"));
-}
-
-#[cfg(feature = "hermes")]
-pub mod hermes {
-    include!(concat!(env!("OUT_DIR"), "/hermes.rs"));
-}
-
-#[cfg(feature = "lynx")]
-pub mod lynx {
-    include!(concat!(env!("OUT_DIR"), "/lynx.rs"));
-}
-
-#[cfg(feature = "lyra")]
-pub mod lyra {
-    include!(concat!(env!("OUT_DIR"), "/lyra.rs"));
-}
-
-#[cfg(feature = "pyxis")]
-pub mod pyxis {
-    include!(concat!(env!("OUT_DIR"), "/pyxis.rs"));
-}
-
-#[cfg(feature = "r2a")]
-pub mod r2a {
-    include!(concat!(env!("OUT_DIR"), "/r2a.rs"));
-}
-
-#[cfg(feature = "test")]
-pub mod test {
-    include!(concat!(env!("OUT_DIR"), "/test.rs"));
-}
diff --git a/src/lib.rs b/src/lib.rs
index d667db146437db7cb481028f7a4246d303561ff5..ebad77c6c57a14eb3f182883b074ed8d2a2fa4f2 100644
--- a/src/lib.rs
+++ b/src/lib.rs
@@ -1,4 +1,6 @@
-mod bindings;
+mod bindings {
+    include!(concat!(env!("OUT_DIR"), "/mod.rs"));
+}
 
 // Re-export the generated bindings
 pub use bindings::*;