diff --git a/podcasts-gtk/src/app.rs b/podcasts-gtk/src/app.rs
index 5f5f413..cd3e255 100644
--- a/podcasts-gtk/src/app.rs
+++ b/podcasts-gtk/src/app.rs
@@ -24,43 +24,37 @@ use glib;
use glib::subclass;
use glib::subclass::prelude::*;
use glib::translate::*;
-use glib::{glib_object_impl, glib_object_subclass, glib_object_wrapper, glib_wrapper, Variant};
+use glib::{glib_object_impl, glib_object_subclass, glib_object_wrapper, glib_wrapper};
use gio::{self, prelude::*, ActionMapExt, ApplicationFlags, SettingsExt};
+use gio::subclass::application::ApplicationImplExt;
+
use gtk;
use gtk::prelude::*;
use gettextrs::{bindtextdomain, setlocale, textdomain, LocaleCategory};
-use crossbeam_channel::{unbounded, Receiver, Sender};
+use crossbeam_channel::Receiver;
use fragile::Fragile;
use podcasts_data::Show;
-use crate::headerbar::Header;
-use crate::settings::{self, WindowGeometry};
-use crate::stacks::{Content, PopulatedState};
+use crate::settings;
+use crate::stacks::{PopulatedState};
use crate::utils;
-use crate::widgets::about_dialog;
use crate::widgets::appnotif::{InAppNotification, SpinnerState, State};
-use crate::widgets::player;
use crate::widgets::show_menu::{mark_all_notif, remove_show_notif, ShowMenu};
+use crate::window::MainWindow;
use std::cell::RefCell;
use std::env;
-use std::rc::Rc;
-use std::sync::{Arc, Mutex};
+use std::sync::Arc;
use crate::config::{APP_ID, LOCALEDIR};
use crate::i18n::i18n;
-#[derive(Debug)]
-struct AppState {
- some_window: gtk::Window,
- some_label: gtk::Label,
-}
-
pub struct HmdApplicationPrivate {
- state: Mutex