diff --git a/src/midi/daemon.rs b/src/midi/daemon.rs
index 1389d03..03fd07a 100644
--- a/src/midi/daemon.rs
+++ b/src/midi/daemon.rs
@@ -169,10 +169,10 @@ impl State {
         let send_queue = self.message_send.clone();
 
         if let Ok(conn) = midi.connect(
-            &port,
+            port,
             &name,
             |timestamp, bytes, (conn_id, send_queue)| {
-                handle_message(timestamp, bytes, &conn_id, &send_queue);
+                handle_message(timestamp, bytes, conn_id, send_queue);
             },
             (port.id(), send_queue),
         ) {
@@ -188,6 +188,12 @@ impl State {
     }
 }
 
+impl Default for State {
+    fn default() -> Self {
+        State::new()
+    }
+}
+
 fn guess_catgory(name: &str) -> Category {
     if name.contains("TravelSax2") || name.contains("AE-20") {
         Category::WindSynth
diff --git a/src/ui.rs b/src/ui.rs
index f97b437..f3c6b9c 100644
--- a/src/ui.rs
+++ b/src/ui.rs
@@ -47,6 +47,12 @@ impl DisplayState {
     }
 }
 
+impl Default for DisplayState {
+    fn default() -> Self {
+        DisplayState::new()
+    }
+}
+
 /// Queues we receive from to refresh and update the UI.
 #[derive(Debug, Clone)]
 pub struct DisplayQueues {