diff --git a/src/config/config.rs b/src/config/config.rs
index 1c19b15..9b8ede8 100644
--- a/src/config/config.rs
+++ b/src/config/config.rs
@@ -1,7 +1,7 @@
 use std::{
+    fs::{self, File, OpenOptions},
+    io::{Error, Read, Write},
     path::PathBuf,
-    fs::{File, OpenOptions, self},
-    io::{Error, Write, Read},
 };
 
 use serde::{Deserialize, Serialize};
@@ -41,7 +41,7 @@ impl ConfigLibrary {
     pub fn open(&self) -> Result<File, Error> {
         match File::open(self.path.as_path()) {
             Ok(ok) => Ok(ok),
-            Err(e) => Err(e)
+            Err(e) => Err(e),
         }
     }
 }
@@ -62,18 +62,17 @@ impl ConfigLibraries {
     pub fn get_default(&self) -> Result<&ConfigLibrary, ConfigError> {
         for library in &self.libraries {
             if library.uuid == self.default_library {
-                return Ok(library)
+                return Ok(library);
             }
         }
         Err(ConfigError::NoDefaultLibrary)
     }
 
     pub fn get_library(&self, uuid: &Uuid) -> Result<ConfigLibrary, ConfigError> {
-
         for library in &self.libraries {
             // dbg!(&library.uuid, &uuid);
             if &library.uuid == uuid {
-                return Ok(library.to_owned())
+                return Ok(library.to_owned());
             }
         }
         Err(ConfigError::NoConfigLibrary(*uuid))
@@ -82,7 +81,7 @@ impl ConfigLibraries {
     pub fn uuid_exists(&self, uuid: &Uuid) -> bool {
         for library in &self.libraries {
             if &library.uuid == uuid {
-                return true
+                return true;
             }
         }
         false
@@ -91,7 +90,7 @@ impl ConfigLibraries {
 
 #[derive(Debug, Default, Serialize, Deserialize, Clone)]
 pub struct ConfigConnections {
-    pub listenbrainz_token: Option<String>
+    pub listenbrainz_token: Option<String>,
 }
 
 #[derive(Debug, Default, Serialize, Deserialize, Clone)]
@@ -122,7 +121,12 @@ impl Config {
     pub fn write_file(&self) -> Result<(), Error> {
         let mut writer = self.path.clone();
         writer.set_extension("tmp");
-        let mut file = OpenOptions::new().create(true).truncate(true).read(true).write(true).open(&writer)?;
+        let mut file = OpenOptions::new()
+            .create(true)
+            .truncate(true)
+            .read(true)
+            .write(true)
+            .open(&writer)?;
         let config = to_string_pretty(self)?;
         // dbg!(&config);
 
@@ -136,15 +140,20 @@ impl Config {
             Some(path) => {
                 let mut writer = path.clone();
                 writer.set_extension("tmp");
-                let mut file = OpenOptions::new().create(true).truncate(true).read(true).write(true).open(&writer)?;
+                let mut file = OpenOptions::new()
+                    .create(true)
+                    .truncate(true)
+                    .read(true)
+                    .write(true)
+                    .open(&writer)?;
                 let config = to_string_pretty(self)?;
                 // dbg!(&config);
 
                 file.write_all(config.as_bytes())?;
                 fs::rename(writer, self.path.as_path())?;
                 Ok(())
-            },
-            None => Err(ConfigError::NoBackupLibrary.into())
+            }
+            None => Err(ConfigError::NoBackupLibrary.into()),
         }
     }
 
@@ -175,17 +184,23 @@ pub enum ConfigError {
     BadPlaylist,
     #[error("No backup Config folder present")]
     NoBackupLibrary,
-
 }
 
 #[cfg(test)]
 pub mod tests {
-    use std::{path::PathBuf, sync::{Arc, RwLock}};
+    use super::{Config, ConfigLibrary};
     use crate::music_storage::library::MusicLibrary;
-    use super::{Config, ConfigLibraries, ConfigLibrary};
+    use std::{
+        path::PathBuf,
+        sync::{Arc, RwLock},
+    };
 
     pub fn new_config_lib() -> (Config, MusicLibrary) {
-        let lib = ConfigLibrary::new(PathBuf::from("test-config/library"), String::from("library"), None);
+        let lib = ConfigLibrary::new(
+            PathBuf::from("test-config/library"),
+            String::from("library"),
+            None,
+        );
         let mut config = Config {
             path: PathBuf::from("test-config/config_test.json"),
             ..Default::default()
@@ -194,7 +209,11 @@ pub mod tests {
         config.push_library(lib);
         config.write_file().unwrap();
 
-        let mut lib = MusicLibrary::init(Arc::new(RwLock::from(config.clone())), dbg!(config.libraries.default_library)).unwrap();
+        let mut lib = MusicLibrary::init(
+            Arc::new(RwLock::from(config.clone())),
+            dbg!(config.libraries.default_library),
+        )
+        .unwrap();
         lib.scan_folder("test-config/music/").unwrap();
         lib.save(config.clone()).unwrap();
 
@@ -206,20 +225,22 @@ pub mod tests {
 
         // dbg!(&config);
 
-        let mut lib = MusicLibrary::init(Arc::new(RwLock::from(config.clone())), config.libraries.get_default().unwrap().uuid).unwrap();
-
+        let mut lib = MusicLibrary::init(
+            Arc::new(RwLock::from(config.clone())),
+            config.libraries.get_default().unwrap().uuid,
+        )
+        .unwrap();
 
         lib.scan_folder("test-config/music/").unwrap();
 
         lib.save(config.clone()).unwrap();
 
-
         (config, lib)
     }
 
     #[test]
     fn test3() {
-        let (config, lib) = read_config_lib();
+        let (config, _) = read_config_lib();
 
         _ = config.write_file();
 
diff --git a/src/music_controller/controller.rs b/src/music_controller/controller.rs
index f84545c..5e0ea55 100644
--- a/src/music_controller/controller.rs
+++ b/src/music_controller/controller.rs
@@ -12,7 +12,6 @@ use std::error::Error;
 use uuid::Uuid;
 
 use crate::music_player::player::Player;
-use crate::music_storage::library::URI;
 use crate::{
     config::config::Config, music_controller::queue::Queue, music_storage::library::MusicLibrary,
 };
@@ -21,7 +20,7 @@ pub struct Controller<P: Player> {
     pub queue: Queue,
     pub config: Arc<RwLock<Config>>,
     pub library: MusicLibrary,
-    pub player: P,
+    pub player: Box<P>,
 }
 
 #[derive(Debug)]
@@ -55,19 +54,12 @@ impl<T: Send, U: Send> MailMan<T, U> {
     }
 }
 
-enum PlayerCmd {
-    Test(URI),
-}
-
-enum PlayerRes {
-    Test,
-}
-
 #[allow(unused_variables)]
-impl<P> Controller<P> {
+impl<P: Player> Controller<P> {
     pub fn start<T>(config_path: T) -> Result<Self, Box<dyn Error>>
     where
         std::path::PathBuf: std::convert::From<T>,
+        P: Player,
     {
         let config_path = PathBuf::from(config_path);
 
@@ -77,13 +69,11 @@ impl<P> Controller<P> {
         let config_ = Arc::new(RwLock::from(config));
         let library = MusicLibrary::init(config_.clone(), uuid)?;
 
-        let (player_mail, in_thread) = MailMan::<PlayerCmd, PlayerRes>::double();
-
         Ok(Controller {
-            queue: Queue::new(),
+            queue: Queue::default(),
             config: config_.clone(),
             library,
-            player: P::new(),
+            player: Box::new(P::new()),
         })
     }
 
@@ -94,27 +84,4 @@ impl<P> Controller<P> {
 }
 
 #[cfg(test)]
-mod test_super {
-    use std::{thread::sleep, time::Duration};
-
-    use super::Controller;
-
-    #[test]
-    fn play_test() {
-        let mut a = match Controller::start("test-config/config_test.json".to_string()) {
-            Ok(c) => c,
-            Err(e) => panic!("{e}"),
-        };
-        sleep(Duration::from_millis(500));
-    }
-
-    #[test]
-    fn test_() {
-        let c = Controller::start(
-            "F:\\Dangoware\\Dango Music Player\\dmp-core\\test-config\\config_test.json",
-        )
-        .unwrap();
-
-        sleep(Duration::from_secs(60));
-    }
-}
+mod test_super {}
diff --git a/src/music_controller/queue.rs b/src/music_controller/queue.rs
index 380d157..6c533c3 100644
--- a/src/music_controller/queue.rs
+++ b/src/music_controller/queue.rs
@@ -1,8 +1,5 @@
-use crate::music_storage::library::{MusicLibrary, Song, URI};
-use std::{
-    error::Error,
-    sync::{Arc, RwLock},
-};
+use crate::music_storage::library::Song;
+use std::error::Error;
 use uuid::Uuid;
 
 use thiserror::Error;
@@ -53,7 +50,7 @@ impl From<Song> for QueueItem {
     }
 }
 
-#[derive(Debug)]
+#[derive(Debug, Default)]
 pub struct Queue {
     pub items: Vec<QueueItem>,
     pub played: Vec<QueueItem>,
@@ -81,16 +78,6 @@ impl Queue {
         );
     }
 
-    pub fn new() -> Self {
-        //TODO: Make the queue take settings from config/state if applicable
-        Queue {
-            items: Vec::new(),
-            played: Vec::new(),
-            loop_: false,
-            shuffle: false,
-        }
-    }
-
     pub fn set_items(&mut self, tracks: Vec<QueueItem>) {
         let mut tracks = tracks;
         self.items.clear();
@@ -131,7 +118,7 @@ impl Queue {
         let empty = self.items.is_empty();
 
         self.items.insert(
-            (if empty { 0 } else { 1 }),
+            if empty { 0 } else { 1 },
             QueueItem {
                 item,
                 state: if (self.items.get(1).is_none()
diff --git a/src/music_storage/library.rs b/src/music_storage/library.rs
index 344dd3a..e3e660e 100644
--- a/src/music_storage/library.rs
+++ b/src/music_storage/library.rs
@@ -642,7 +642,7 @@ impl MusicLibrary {
             name,
             uuid,
             library: Vec::new(),
-            playlists: PlaylistFolder::new(),
+            playlists: PlaylistFolder::default(),
             backup_songs: Vec::new(),
         }
     }
diff --git a/src/music_storage/playlist.rs b/src/music_storage/playlist.rs
index e7ae61b..788e59b 100644
--- a/src/music_storage/playlist.rs
+++ b/src/music_storage/playlist.rs
@@ -1,3 +1,4 @@
+use std::default;
 use std::error::Error;
 use std::{
     fs::File,
@@ -26,6 +27,7 @@ pub enum SortOrder {
 
 nest! {
     #[derive(Debug, Clone, Deserialize, Serialize)]*
+    #[derive(Default)]
     pub struct PlaylistFolder {
         name: String,
         items: Vec<
@@ -37,15 +39,6 @@ nest! {
     }
 }
 
-impl PlaylistFolder {
-    pub fn new() -> Self {
-        PlaylistFolder {
-            name: String::new(),
-            items: Vec::new(),
-        }
-    }
-}
-
 #[derive(Debug, Clone, Deserialize, Serialize)]
 pub struct Playlist {
     uuid: Uuid,
@@ -233,7 +226,7 @@ impl Playlist {
                 #[cfg(target_family = "windows")]
                 {
                     playlist.title = path
-                        .split("\\")
+                        .split('\\')
                         .last()
                         .unwrap_or_default()
                         .strip_suffix(".m3u8")
@@ -339,7 +332,7 @@ impl Default for Playlist {
 #[cfg(test)]
 mod test_super {
     use super::*;
-    use crate::{config::config::tests::read_config_lib, music_storage::playlist};
+    use crate::config::config::tests::read_config_lib;
 
     #[test]
     fn list_to_m3u8() {
@@ -360,7 +353,7 @@ mod test_super {
         let playlist =
             Playlist::from_m3u8(".\\test-config\\playlists\\playlist.m3u8", arc).unwrap();
 
-        playlist.to_file(".\\test-config\\playlists\\playlist");
+        _ = playlist.to_file(".\\test-config\\playlists\\playlist");
         dbg!(playlist)
     }