diff --git a/src/rust/amadeus/src/address.rs b/src/rust/amadeus/src/address.rs
new file mode 100644
index 0000000000000000000000000000000000000000..3746ea73fa632b9767d5517fbd915c0d5f04f76f
--- /dev/null
+++ b/src/rust/amadeus/src/address.rs
@@ -0,0 +1,28 @@
+use serde::{Deserialize, Serialize};
+
+/// The address of the lektord deamon.
+#[derive(Debug, Clone, Serialize, Deserialize)]
+#[serde(tag = "type", content = "socket")]
+pub enum Address {
+    /// Connect over TCP/IP
+    TCP(String, i16),
+
+    /// Connect over UNIX domain socket.
+    #[cfg(unix)]
+    UNIX(String),
+}
+
+impl std::fmt::Display for Address {
+    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
+        match self {
+            Address::TCP(addr, port) => write!(f, "TCP://{addr}:{port}"),
+            Address::UNIX(path) => write!(f, "UNIX://{path}"),
+        }
+    }
+}
+
+impl Default for Address {
+    fn default() -> Self {
+        Self::TCP(String::from("127.0.0.1"), 6600)
+    }
+}
diff --git a/src/rust/amadeus/src/action.rs b/src/rust/amadeus/src/amadeus/action.rs
similarity index 100%
rename from src/rust/amadeus/src/action.rs
rename to src/rust/amadeus/src/amadeus/action.rs
diff --git a/src/rust/amadeus/src/client.rs b/src/rust/amadeus/src/amadeus/client.rs
similarity index 90%
rename from src/rust/amadeus/src/client.rs
rename to src/rust/amadeus/src/amadeus/client.rs
index b04f55d96ce927977a09fd05ea079868f5a373f6..11863ff9945bd35e9d59f51156d37652b310d143 100644
--- a/src/rust/amadeus/src/client.rs
+++ b/src/rust/amadeus/src/amadeus/client.rs
@@ -1,4 +1,4 @@
-use crate::{action, AmadeusConfig};
+use crate::{address::Address, amadeus::action, AmadeusConfig};
 use commons::{log, Report};
 use iced::{
     futures::lock::Mutex,
@@ -6,30 +6,8 @@ use iced::{
     widget::{button, text},
     Command, Element, Subscription,
 };
-use serde::{Deserialize, Serialize};
 use std::sync::Arc;
 
-/// The address of the lektord deamon.
-#[derive(Debug, Clone, Serialize, Deserialize)]
-#[serde(tag = "type", content = "socket")]
-pub enum Address {
-    /// Connect over TCP/IP
-    TCP(String, i16),
-
-    /// Connect over UNIX domain socket.
-    #[cfg(unix)]
-    UNIX(String),
-}
-
-impl std::fmt::Display for Address {
-    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
-        match self {
-            Address::TCP(addr, port) => write!(f, "TCP://{addr}:{port}"),
-            Address::UNIX(path) => write!(f, "UNIX://{path}"),
-        }
-    }
-}
-
 #[derive(Debug, Clone)]
 pub enum Message {
     /// Nothing to do...
diff --git a/src/rust/amadeus/src/amadeus.rs b/src/rust/amadeus/src/amadeus/mod.rs
similarity index 98%
rename from src/rust/amadeus/src/amadeus.rs
rename to src/rust/amadeus/src/amadeus/mod.rs
index af12b72bbafe8a00a53ae06e5ac37ff2afc8de0a..1dfd093a2741d4213f80ef8c65d5917a1f7ae217 100644
--- a/src/rust/amadeus/src/amadeus.rs
+++ b/src/rust/amadeus/src/amadeus/mod.rs
@@ -1,4 +1,8 @@
-use crate::{action, client, queue_control, AmadeusConfig};
+mod action;
+mod client;
+mod queue_control;
+
+use crate::AmadeusConfig;
 use iced::{
     executor, subscription,
     widget::{column, row},
diff --git a/src/rust/amadeus/src/queue_control.rs b/src/rust/amadeus/src/amadeus/queue_control.rs
similarity index 99%
rename from src/rust/amadeus/src/queue_control.rs
rename to src/rust/amadeus/src/amadeus/queue_control.rs
index cd288036fb522b0333c0538057cee897f8601545..252953f52a6f9bcdcc7cad715c5ef92e988bacdd 100644
--- a/src/rust/amadeus/src/queue_control.rs
+++ b/src/rust/amadeus/src/amadeus/queue_control.rs
@@ -1,4 +1,4 @@
-use crate::action;
+use crate::amadeus::action;
 use iced::{widget::text, Command, Element};
 
 #[derive(Debug, Clone, Copy)]
diff --git a/src/rust/amadeus/src/main.rs b/src/rust/amadeus/src/main.rs
index 5663072bf6ed92ddaf5f38e8fc51a77edb5fcc9a..a9ccfbf8e6e588fa82a70f72dcea1ca076436dd8 100644
--- a/src/rust/amadeus/src/main.rs
+++ b/src/rust/amadeus/src/main.rs
@@ -4,14 +4,12 @@ use commons::log;
 use iced::{Application, Settings};
 use serde::{Deserialize, Serialize};
 
-mod action;
+mod address;
 mod amadeus;
-mod client;
-mod queue_control;
 
 #[derive(Debug, Deserialize, Serialize)]
 pub struct AmadeusRemoteConfig {
-    pub address: client::Address,
+    pub address: address::Address,
 }
 
 #[derive(Debug, Deserialize, Serialize)]
@@ -29,7 +27,7 @@ pub struct AmadeusConfig {
 impl Default for AmadeusRemoteConfig {
     fn default() -> Self {
         Self {
-            address: client::Address::TCP(String::from("127.0.0.1"), 6600),
+            address: address::Address::default(),
         }
     }
 }