diff --git a/src/rust/amadeus-rs/Cargo.lock b/src/rust/amadeus-rs/Cargo.lock
index d765cb5ff7d370b29c38b88d702e3684ef8157b0..25f8651df2a9485136e29cf28054c8cbe4666cd5 100644
--- a/src/rust/amadeus-rs/Cargo.lock
+++ b/src/rust/amadeus-rs/Cargo.lock
@@ -62,6 +62,7 @@ dependencies = [
 name = "amadeus"
 version = "0.1.0"
 dependencies = [
+ "amadeus_lib",
  "amadeus_macro",
  "eframe",
  "egui 0.19.0",
@@ -74,6 +75,16 @@ dependencies = [
  "serde_json",
 ]
 
+[[package]]
+name = "amadeus_lib"
+version = "0.1.0"
+dependencies = [
+ "amadeus_macro",
+ "lazy_static",
+ "lkt_lib",
+ "log",
+]
+
 [[package]]
 name = "amadeus_macro"
 version = "0.1.0"
@@ -941,7 +952,7 @@ dependencies = [
 ]
 
 [[package]]
-name = "lkt-rs"
+name = "lkt"
 version = "0.1.0"
 dependencies = [
  "amadeus_macro",
diff --git a/src/rust/amadeus-rs/Cargo.toml b/src/rust/amadeus-rs/Cargo.toml
index e07989ee38057ea5d190a53a831bc7eaf76f1f76..23f29b1a3bcb4712d8013e31d21dffaf7faa6542 100644
--- a/src/rust/amadeus-rs/Cargo.toml
+++ b/src/rust/amadeus-rs/Cargo.toml
@@ -1,6 +1,7 @@
 [workspace]
 members = [
     "amadeus",
+    "amadeus-lib",
     "amadeus-macro",
     "lkt-rs",
     "lkt-lib"
diff --git a/src/rust/amadeus-rs/amadeus-lib/Cargo.toml b/src/rust/amadeus-rs/amadeus-lib/Cargo.toml
new file mode 100644
index 0000000000000000000000000000000000000000..60061d423543db5397159d64ca3a0a03ea767d52
--- /dev/null
+++ b/src/rust/amadeus-rs/amadeus-lib/Cargo.toml
@@ -0,0 +1,11 @@
+[package]
+name    = "amadeus_lib"
+version = "0.1.0"
+edition = "2021"
+license = "MIT"
+
+[dependencies]
+lkt_lib       = { path = "../lkt-lib" }
+amadeus_macro = { path = "../amadeus-macro" }
+log           = { version = "0.4" }
+lazy_static   = "1"
diff --git a/src/rust/amadeus-rs/amadeus/src/action/actions.rs b/src/rust/amadeus-rs/amadeus-lib/src/actions.rs
similarity index 96%
rename from src/rust/amadeus-rs/amadeus/src/action/actions.rs
rename to src/rust/amadeus-rs/amadeus-lib/src/actions.rs
index 50ab7330a52f8d24accf4ae5416d8645c1dd4ff5..78c54dfd29c75b9a7be29b1b865f7605a745031c 100644
--- a/src/rust/amadeus-rs/amadeus/src/action/actions.rs
+++ b/src/rust/amadeus-rs/amadeus-lib/src/actions.rs
@@ -1,5 +1,3 @@
-use std::fmt;
-
 #[derive(Clone)]
 pub enum Action {
     /// Resume playback from that kara.
@@ -47,8 +45,8 @@ pub enum Action {
     PlaybackNext,
 }
 
-impl fmt::Debug for Action {
-    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
+impl std::fmt::Debug for Action {
+    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
         match self {
             Self::PlayFromKara => write!(f, "PlayFromKara"),
             Self::DeleteKaraFromQueue => write!(f, "DeleteKaraFromQueue"),
diff --git a/src/rust/amadeus-rs/amadeus/src/utils/deamon.rs b/src/rust/amadeus-rs/amadeus-lib/src/deamon.rs
similarity index 99%
rename from src/rust/amadeus-rs/amadeus/src/utils/deamon.rs
rename to src/rust/amadeus-rs/amadeus-lib/src/deamon.rs
index 8720045d894f3bd1c2a75b8178b2d64847efd279..7d59b01ff19a7e19ae1a12220b8ff1aba124ad4e 100644
--- a/src/rust/amadeus-rs/amadeus/src/utils/deamon.rs
+++ b/src/rust/amadeus-rs/amadeus-lib/src/deamon.rs
@@ -1,5 +1,3 @@
-#![allow(dead_code)]
-
 use lkt_lib::*;
 use log::error;
 use std::{
diff --git a/src/rust/amadeus-rs/amadeus-lib/src/lib.rs b/src/rust/amadeus-rs/amadeus-lib/src/lib.rs
new file mode 100644
index 0000000000000000000000000000000000000000..719c05fa492ad45e7bb0ea9bc612ffaeeb9961bd
--- /dev/null
+++ b/src/rust/amadeus-rs/amadeus-lib/src/lib.rs
@@ -0,0 +1,2 @@
+pub mod actions;
+pub mod deamon;
diff --git a/src/rust/amadeus-rs/amadeus/Cargo.toml b/src/rust/amadeus-rs/amadeus/Cargo.toml
index 433ad7596a78a5c579b7aa0615ab59ce854ed646..a0e68ae14e671a6726551c252ea1df131837f221 100644
--- a/src/rust/amadeus-rs/amadeus/Cargo.toml
+++ b/src/rust/amadeus-rs/amadeus/Cargo.toml
@@ -6,6 +6,7 @@ license = "MIT"
 
 [dependencies]
 lkt_lib       = { path = "../lkt-lib" }
+amadeus_lib   = { path = "../amadeus-lib" }
 amadeus_macro = { path = "../amadeus-macro" }
 serde         = { version = "1", default-features = false,     features = [ "derive", "std" ] }
 serde_json    = { version = "1", default-features = false,     features = [ "std" ] }
diff --git a/src/rust/amadeus-rs/amadeus/src/action/mod.rs b/src/rust/amadeus-rs/amadeus/src/action/mod.rs
deleted file mode 100644
index 60e0752e92e53544b7f1654b67a027dd25987fb3..0000000000000000000000000000000000000000
--- a/src/rust/amadeus-rs/amadeus/src/action/mod.rs
+++ /dev/null
@@ -1,5 +0,0 @@
-mod actions;
-mod menu;
-
-pub use actions::*;
-pub use menu::render_action_menu;
diff --git a/src/rust/amadeus-rs/amadeus/src/action/menu.rs b/src/rust/amadeus-rs/amadeus/src/action_menu.rs
similarity index 92%
rename from src/rust/amadeus-rs/amadeus/src/action/menu.rs
rename to src/rust/amadeus-rs/amadeus/src/action_menu.rs
index 04bfac65b6e00968e2e8d3ae450fb1067221e32f..20a8cab1458aff11367809599ee68f486e63d630 100644
--- a/src/rust/amadeus-rs/amadeus/src/action/menu.rs
+++ b/src/rust/amadeus-rs/amadeus/src/action_menu.rs
@@ -1,5 +1,5 @@
-use super::{actions::get_card_action_name, Action};
 use crate::utils;
+use amadeus_lib::actions::*;
 
 pub fn render_action_menu(
     ui: &mut egui::Ui,
diff --git a/src/rust/amadeus-rs/amadeus/src/amadeus.rs b/src/rust/amadeus-rs/amadeus/src/amadeus.rs
index cc4f2e74db4d7b032025e759faaddf5a2aeb1992..e0660113d33d6f93d774dd9052769f475269549b 100644
--- a/src/rust/amadeus-rs/amadeus/src/amadeus.rs
+++ b/src/rust/amadeus-rs/amadeus/src/amadeus.rs
@@ -1,9 +1,7 @@
-use crate::{
-    action,
-    cards::*,
-    constants, playlists,
-    utils::{self, deamon::Deamon},
-    widgets,
+use crate::{cards::*, constants, playlists, utils, widgets};
+use amadeus_lib::{
+    actions,
+    deamon::{self, CommandDeamon, Deamon, StatusDeamon},
 };
 use amadeus_macro::either;
 use eframe::{egui, App};
@@ -16,12 +14,12 @@ use std::{
 
 type CommandDeamonData = (
     (Sender<LektorQuery>, Receiver<LektorResponse>),
-    utils::deamon::CommandDeamon,
+    deamon::CommandDeamon,
 );
 
 type StatusDeamonData = (
-    (Receiver<utils::deamon::StatusDeamonMessageType>,),
-    utils::deamon::StatusDeamon,
+    (Receiver<deamon::StatusDeamonMessageType>,),
+    deamon::StatusDeamon,
 );
 
 pub struct Amadeus<'a> {
@@ -29,7 +27,7 @@ pub struct Amadeus<'a> {
     has_config_changed: bool,
     need_about_window: bool,
     need_settings_window: bool,
-    actions: Vec<action::Action>,
+    actions: Vec<actions::Action>,
 
     last_render_instant: time::SystemTime,
     begin_render_instant: time::SystemTime,
@@ -59,19 +57,19 @@ impl Default for Amadeus<'_> {
             begin_render_instant: time::SystemTime::UNIX_EPOCH,
 
             lektord_queue: KaraCardCollection::new("Queue".to_owned())
-                .add_action(action::Action::PlayFromKara)
-                .add_action(action::Action::DeleteKaraFromQueue)
-                .add_action(action::Action::AddKaraToPlaylist),
+                .add_action(actions::Action::PlayFromKara)
+                .add_action(actions::Action::DeleteKaraFromQueue)
+                .add_action(actions::Action::AddKaraToPlaylist),
             lektord_historic: KaraCardCollection::new("Historic".to_owned())
-                .add_action(action::Action::AddKaraToQueue)
-                .add_action(action::Action::InsertKaraInQueue)
-                .add_action(action::Action::DeleteKaraFromQueue)
-                .add_action(action::Action::AddKaraToPlaylist),
+                .add_action(actions::Action::AddKaraToQueue)
+                .add_action(actions::Action::InsertKaraInQueue)
+                .add_action(actions::Action::DeleteKaraFromQueue)
+                .add_action(actions::Action::AddKaraToPlaylist),
             lektord_search_results: KaraCardCollection::new("Search results".to_owned())
-                .add_action(action::Action::AddKaraToQueue)
-                .add_action(action::Action::InsertKaraInQueue)
-                .add_action(action::Action::DeleteKaraFromQueue)
-                .add_action(action::Action::AddKaraToPlaylist),
+                .add_action(actions::Action::AddKaraToQueue)
+                .add_action(actions::Action::InsertKaraInQueue)
+                .add_action(actions::Action::DeleteKaraFromQueue)
+                .add_action(actions::Action::AddKaraToPlaylist),
             lektord_search_query: String::new(),
 
             actions: Vec::with_capacity(10),
@@ -122,7 +120,7 @@ impl Amadeus<'_> {
             Some(ctx.load_texture("amadeus-logo", logo_texture, egui::TextureFilter::Linear));
     }
 
-    fn collect_fulfilled_actions(&mut self) -> Vec<(u64, action::Action)> {
+    fn collect_fulfilled_actions(&mut self) -> Vec<(u64, actions::Action)> {
         let mut ret = self.lektord_queue.fulfilled_actions();
         ret.extend(self.lektord_historic.fulfilled_actions());
         ret.extend(self.lektord_search_results.fulfilled_actions());
@@ -248,13 +246,13 @@ impl Amadeus<'_> {
                         ui.add(egui::Button::new("Connect lektord").wrap(false))
                             .clicked()
                             .then(|| {
-                                self.actions.push(action::Action::ConnectToLektord);
+                                self.actions.push(actions::Action::ConnectToLektord);
                                 ui.close_menu();
                             });
                         ui.add(egui::Button::new("Disconnect lektord").wrap(false))
                             .clicked()
                             .then(|| {
-                                self.actions.push(action::Action::DisconnectFromLektord);
+                                self.actions.push(actions::Action::DisconnectFromLektord);
                                 ui.close_menu();
                             });
                     })
@@ -276,23 +274,23 @@ impl Amadeus<'_> {
                     ui.button("⏪")
                         .on_hover_text("Previous")
                         .clicked()
-                        .then(|| self.actions.push(action::Action::PlaybackPrevious));
+                        .then(|| self.actions.push(actions::Action::PlaybackPrevious));
                     match self.lektord_state {
                         LektorState::Stopped | LektorState::Pause(_) => ui
                             .button("â–¶")
                             .on_hover_text("Play")
                             .clicked()
-                            .then(|| self.actions.push(action::Action::PlaybackPlay)),
+                            .then(|| self.actions.push(actions::Action::PlaybackPlay)),
                         LektorState::Play(_) => ui
                             .button("⏸")
                             .on_hover_text("Pause")
                             .clicked()
-                            .then(|| self.actions.push(action::Action::PlaybackPause)),
+                            .then(|| self.actions.push(actions::Action::PlaybackPause)),
                     };
                     ui.button("⏩")
                         .on_hover_text("Next")
                         .clicked()
-                        .then(|| self.actions.push(action::Action::PlaybackNext));
+                        .then(|| self.actions.push(actions::Action::PlaybackNext));
                 });
 
                 ui.with_layout(egui::Layout::right_to_left(egui::Align::Min), |ui| {
@@ -337,7 +335,7 @@ impl Amadeus<'_> {
     }
 
     fn handle_action(&mut self) {
-        use action::Action::*;
+        use actions::Action::*;
 
         // Handle actions on lektor items
         for (id, act) in self.collect_fulfilled_actions() {
@@ -353,7 +351,7 @@ impl Amadeus<'_> {
             match act {
                 ConnectToLektord => {
                     if self.status_deamon.is_none() {
-                        let connexion = utils::deamon::StatusDeamon::spawn(
+                        let connexion = StatusDeamon::spawn(
                             self.config.lektord_hostname.clone(),
                             self.config.lektord_port.as_integer() as i16,
                         );
@@ -362,7 +360,7 @@ impl Amadeus<'_> {
                         }
                     }
                     if self.deamon.is_none() {
-                        let connexion = utils::deamon::CommandDeamon::spawn(
+                        let connexion = CommandDeamon::spawn(
                             self.config.lektord_hostname.clone(),
                             self.config.lektord_port.as_integer() as i16,
                         );
diff --git a/src/rust/amadeus-rs/amadeus/src/cards/card.rs b/src/rust/amadeus-rs/amadeus/src/cards/card.rs
index 0eabb2026a765fc6a263896bb4014dd49f1cfcbe..ac2157b3cd259dfa1a0aee4ad40596704cacf654 100644
--- a/src/rust/amadeus-rs/amadeus/src/cards/card.rs
+++ b/src/rust/amadeus-rs/amadeus/src/cards/card.rs
@@ -1,4 +1,5 @@
-use crate::{action, constants, utils};
+use crate::{action_menu, constants, utils};
+use amadeus_lib::actions;
 use amadeus_macro::either;
 use lkt_lib::*;
 
@@ -8,14 +9,14 @@ pub trait Card<'a, LktType: LektorType<'a>>: ToString + Clone {
     fn new(lkt_type: LktType) -> Self;
 
     /// Render the card to the screen
-    fn render(&mut self, ui: &mut egui::Ui, dark_mode: bool, actions: &[action::Action]);
+    fn render(&mut self, ui: &mut egui::Ui, dark_mode: bool, actions: &[actions::Action]);
 
     /// Render the card to the screen. Variant to try to render the element in a
     /// more compact way.
     fn render_compact(&self, ui: &mut egui::Ui, dark_mode: bool);
 
     /// Returns the Ids of the activated actions.
-    fn fulfilled_actions(&mut self) -> Vec<action::Action>;
+    fn fulfilled_actions(&mut self) -> Vec<actions::Action>;
 
     /// Get the unique id from the inner lkt type.
     fn unique_id(&self) -> u64;
@@ -34,13 +35,13 @@ pub trait Card<'a, LktType: LektorType<'a>>: ToString + Clone {
 #[derive(Clone)]
 pub struct KaraCard {
     pub inner: Kara,
-    actions: Vec<action::Action>,
+    actions: Vec<actions::Action>,
 }
 
 #[derive(Clone)]
 pub struct PlaylistCard {
     pub inner: Playlist,
-    actions: Vec<action::Action>,
+    actions: Vec<actions::Action>,
 }
 
 impl ToString for KaraCard {
@@ -80,7 +81,7 @@ impl Card<'_, Kara> for KaraCard {
         }
     }
 
-    fn render(&mut self, ui: &mut egui::Ui, dark_mode: bool, actions: &[action::Action]) {
+    fn render(&mut self, ui: &mut egui::Ui, dark_mode: bool, actions: &[actions::Action]) {
         ui.add_space(constants::PADDING);
         static MIN_WIDTH_FOR_ADDITIONAL_INFOS: f32 = 1024.;
         let song = format!(
@@ -111,7 +112,7 @@ impl Card<'_, Kara> for KaraCard {
                 });
                 ui.horizontal(|ui| {
                     ui.style_mut().override_text_style = Some(utils::font::heading2());
-                    action::render_action_menu(ui, actions, "â–¶", &mut self.actions);
+                    action_menu::render_action_menu(ui, actions, "â–¶", &mut self.actions);
                     ui.colored_label(constants::get_text_color(dark_mode), song);
                     ui.style_mut().override_text_style = Some(utils::font::body());
                     if left_space >= MIN_WIDTH_FOR_ADDITIONAL_INFOS {
@@ -167,7 +168,7 @@ impl Card<'_, Kara> for KaraCard {
         });
     }
 
-    fn fulfilled_actions(&mut self) -> Vec<action::Action> {
+    fn fulfilled_actions(&mut self) -> Vec<actions::Action> {
         let ret = self.actions.clone();
         self.actions.clear();
         ret
@@ -190,11 +191,11 @@ impl Card<'_, Playlist> for PlaylistCard {
         }
     }
 
-    fn render(&mut self, ui: &mut egui::Ui, dark_mode: bool, actions: &[action::Action]) {
+    fn render(&mut self, ui: &mut egui::Ui, dark_mode: bool, actions: &[actions::Action]) {
         ui.horizontal(|ui| {
             ui.add_space(constants::PADDING * 2.);
             ui.style_mut().override_text_style = Some(utils::font::body());
-            action::render_action_menu(ui, actions, "â–¶", &mut self.actions);
+            action_menu::render_action_menu(ui, actions, "â–¶", &mut self.actions);
             ui.colored_label(
                 constants::get_text_color(dark_mode),
                 self.inner.name.to_string(),
@@ -214,7 +215,7 @@ impl Card<'_, Playlist> for PlaylistCard {
         });
     }
 
-    fn fulfilled_actions(&mut self) -> Vec<action::Action> {
+    fn fulfilled_actions(&mut self) -> Vec<actions::Action> {
         let ret = self.actions.clone();
         self.actions.clear();
         ret
diff --git a/src/rust/amadeus-rs/amadeus/src/cards/collection.rs b/src/rust/amadeus-rs/amadeus/src/cards/collection.rs
index 1966ea2ece73cc1a6ba2d78c91948076c890d338..8dc93ee9be04ff1fa2145fc431eb21bb66ef7aee 100644
--- a/src/rust/amadeus-rs/amadeus/src/cards/collection.rs
+++ b/src/rust/amadeus-rs/amadeus/src/cards/collection.rs
@@ -1,4 +1,5 @@
-use crate::{action, cards::card::*, constants, utils};
+use crate::{cards::card::*, constants, utils};
+use amadeus_lib::actions;
 use amadeus_macro::either;
 use lkt_lib::{Kara, LektorType};
 use std::{borrow::Borrow, cmp::min, marker::PhantomData};
@@ -13,7 +14,7 @@ where
 {
     name: String,
     content: Vec<CardType>,
-    actions: Vec<action::Action>,
+    actions: Vec<actions::Action>,
     max_content: Option<usize>,
     phantom: PhantomData<&'a LktType>,
 }
@@ -56,7 +57,7 @@ impl<'a, CardType: Card<'a, LktType>, LktType: LektorType<'a>>
         self
     }
 
-    pub fn add_action(mut self, act: action::Action) -> Self {
+    pub fn add_action(mut self, act: actions::Action) -> Self {
         self.actions.push(act);
         self
     }
@@ -65,7 +66,7 @@ impl<'a, CardType: Card<'a, LktType>, LktType: LektorType<'a>>
         self.content.is_empty()
     }
 
-    pub fn fulfilled_actions(&mut self) -> Vec<(u64, action::Action)> {
+    pub fn fulfilled_actions(&mut self) -> Vec<(u64, actions::Action)> {
         let mut ret = Vec::new();
         for card in &mut self.content {
             let actions = card.fulfilled_actions();
diff --git a/src/rust/amadeus-rs/amadeus/src/main.rs b/src/rust/amadeus-rs/amadeus/src/main.rs
index 0f033bc462256c7bce5422a39295e52cd52dcef3..afd4c49d125e3f467d5d10768847a28415940a54 100644
--- a/src/rust/amadeus-rs/amadeus/src/main.rs
+++ b/src/rust/amadeus-rs/amadeus/src/main.rs
@@ -1,4 +1,4 @@
-mod action;
+mod action_menu;
 mod amadeus;
 mod cards;
 mod constants;
diff --git a/src/rust/amadeus-rs/amadeus/src/playlists.rs b/src/rust/amadeus-rs/amadeus/src/playlists.rs
index 95aa96fa5fa8f6a4b643b836ce1855765a9e27d6..0acd4cd1a2a349e2782f0be97e42ac2ea144a2c4 100644
--- a/src/rust/amadeus-rs/amadeus/src/playlists.rs
+++ b/src/rust/amadeus-rs/amadeus/src/playlists.rs
@@ -1,8 +1,8 @@
+use crate::{action_menu, constants, utils, widgets};
+use amadeus_lib::actions;
 use lkt_lib::{Kara, LektorType, Playlist};
 use std::collections::{HashMap, HashSet};
 
-use crate::{action, constants, utils, widgets};
-
 static DEFAULT_HASHSET_SIZE: usize = 10;
 
 pub struct PlaylistsStore {
@@ -18,11 +18,11 @@ pub struct PlaylistsStore {
     playlists_to_show: HashMap<u64, bool>,
 
     /// The fullfilled actions in this frame.
-    actions: Vec<(u64, action::Action)>,
+    actions: Vec<(u64, actions::Action)>,
 
     /// A temp buffer for handling actions on a specific item, where we know the
     /// id to put but not the render function.
-    temp_actions: Vec<action::Action>,
+    temp_actions: Vec<actions::Action>,
 }
 
 impl Default for PlaylistsStore {
@@ -38,7 +38,7 @@ impl Default for PlaylistsStore {
 }
 
 impl PlaylistsStore {
-    pub fn fulfilled_actions(&mut self) -> Vec<(u64, action::Action)> {
+    pub fn fulfilled_actions(&mut self) -> Vec<(u64, actions::Action)> {
         if !self.actions.is_empty() {
             let ret = self.actions.clone();
             self.actions.clear();
@@ -70,10 +70,10 @@ impl PlaylistsStore {
                 .with_resizable(false)
                 .with_default_size(egui::vec2(200., 500.))
                 .with_actions(vec![
-                    action::Action::AddPlaylistToQueue,
-                    action::Action::InsertPlaylistToQueue,
+                    actions::Action::AddPlaylistToQueue,
+                    actions::Action::InsertPlaylistToQueue,
                 ])
-                .with_warning_actions(vec![action::Action::ClearPlaylistContent])
+                .with_warning_actions(vec![actions::Action::ClearPlaylistContent])
                 .show(flag, ctx, |ui| {
                     egui::ScrollArea::vertical()
                         .hscroll(false)
@@ -91,14 +91,14 @@ impl PlaylistsStore {
                                     ui.horizontal(|ui| {
                                         ui.style_mut().override_text_style =
                                             Some(utils::font::body());
-                                        action::render_action_menu(
+                                        action_menu::render_action_menu(
                                             ui,
                                             &[
-                                                action::Action::AddKaraToQueue,
-                                                action::Action::InsertKaraInQueue,
-                                                action::Action::AddKaraToPlaylist,
-                                                action::Action::DeleteKaraFromPlaylist(id),
-                                                action::Action::DeleteKaraFromQueue,
+                                                actions::Action::AddKaraToQueue,
+                                                actions::Action::InsertKaraInQueue,
+                                                actions::Action::AddKaraToPlaylist,
+                                                actions::Action::DeleteKaraFromPlaylist(id),
+                                                actions::Action::DeleteKaraFromQueue,
                                             ],
                                             widgets::get_label_text_for_kara(kara),
                                             &mut self.temp_actions,
@@ -149,12 +149,12 @@ impl PlaylistsStore {
                             let plt_size = self.playlist_size(name).unwrap();
                             ui.horizontal(|ui| {
                                 ui.add_space(constants::PADDING);
-                                action::render_action_menu(
+                                action_menu::render_action_menu(
                                     ui,
                                     &[
-                                        action::Action::OpenPlaylist,
-                                        action::Action::AddPlaylistToQueue,
-                                        action::Action::InsertPlaylistToQueue,
+                                        actions::Action::OpenPlaylist,
+                                        actions::Action::AddPlaylistToQueue,
+                                        actions::Action::InsertPlaylistToQueue,
                                     ],
                                     "â–¶",
                                     &mut self.temp_actions,
diff --git a/src/rust/amadeus-rs/amadeus/src/utils/mod.rs b/src/rust/amadeus-rs/amadeus/src/utils/mod.rs
index 9fb004f44a8a2fefecd2df67e436012d34c04d80..a7606af3abbee4305788870df6ce2e5d31de1571 100644
--- a/src/rust/amadeus-rs/amadeus/src/utils/mod.rs
+++ b/src/rust/amadeus-rs/amadeus/src/utils/mod.rs
@@ -1,4 +1,3 @@
-pub(crate) mod deamon;
 pub(crate) mod font;
 
 mod config;
diff --git a/src/rust/amadeus-rs/amadeus/src/widgets/window.rs b/src/rust/amadeus-rs/amadeus/src/widgets/window.rs
index 3cbafbb5d163771810afcf749000402636f99947..50e94cf1fe7f915b286a3a5b8275415de4c2914b 100644
--- a/src/rust/amadeus-rs/amadeus/src/widgets/window.rs
+++ b/src/rust/amadeus-rs/amadeus/src/widgets/window.rs
@@ -1,7 +1,5 @@
-use crate::{
-    action::{self, Action},
-    constants,
-};
+use crate::{action_menu, constants};
+use amadeus_lib::actions::Action;
 use amadeus_macro::*;
 
 /// Structure used to hole informations about the window to create, we use a
@@ -101,10 +99,10 @@ impl<'a> WindowBuilder<'a> {
                         .clicked()
                         .then(|| flag_copy = false);
                     if let Some(actions) = self.actions {
-                        action::render_action_menu(ui, &actions, "â–¶", &mut temp_actions);
+                        action_menu::render_action_menu(ui, &actions, "â–¶", &mut temp_actions);
                     };
                     if let Some(actions) = self.warning_actions {
-                        action::render_action_menu(ui, &actions, "âš ", &mut temp_actions);
+                        action_menu::render_action_menu(ui, &actions, "âš ", &mut temp_actions);
                     };
                     ui.colored_label(constants::get_text_color(self.dark_mode), self.name);
                 });
diff --git a/src/rust/amadeus-rs/lkt-rs/Cargo.toml b/src/rust/amadeus-rs/lkt-rs/Cargo.toml
index 89387867e53c6b24a6e3b80a1075e8c16a5658a1..9909296afe0d25253ac3135d17e9fa2fdbff75af 100644
--- a/src/rust/amadeus-rs/lkt-rs/Cargo.toml
+++ b/src/rust/amadeus-rs/lkt-rs/Cargo.toml
@@ -1,5 +1,5 @@
 [package]
-name    = "lkt-rs"
+name    = "lkt"
 version = "0.1.0"
 edition = "2021"
 license = "MIT"
@@ -10,4 +10,4 @@ amadeus_macro = { path = "../amadeus-macro" }
 serde         = { version = "1",                           features = [ "derive" ] }
 serde_json    = { version = "1", default-features = false, features = [ "std" ] }
 log           = { version = "0.4" }
-lazy_static   = "1"
\ No newline at end of file
+lazy_static   = "1"