diff --git a/src/Document/VivyDocumentStore.cc b/src/Document/VivyDocumentStore.cc
index 92342328c585151f8baea9f95b1246025a6ebc58..361a4b4c2ff44e6bc29c4d2330ea19ba182fc385 100644
--- a/src/Document/VivyDocumentStore.cc
+++ b/src/Document/VivyDocumentStore.cc
@@ -17,7 +17,7 @@ VivyDocumentStore::loadDocument(const QString &file)
     if (VivyDocument *ret = VivyDocument::fromPath(file)) {
         qDebug() << "Register ument " << baseName;
         documents[baseName] = std::shared_ptr<VivyDocument>(ret);
-        return std::weak_ptr{documents[baseName]};
+        return std::weak_ptr{ documents[baseName] };
     } else {
         qDebug() << "Failed to create document from " << file;
         throw std::runtime_error("Failed to create the document");
@@ -50,5 +50,5 @@ VivyDocumentStore::getDocument(const QString &name) const
         qCritical() << "Couldn't find the document " << name;
         throw std::runtime_error("Can't find the document");
     }
-    return std::weak_ptr<VivyDocument>{documents.value(name)};
+    return std::weak_ptr<VivyDocument>{ documents.value(name) };
 }
diff --git a/src/Document/VivyDocumentStore.hh b/src/Document/VivyDocumentStore.hh
index a4965c27b6342ecf818cf24964e39465759b6537..72d6299b605f9e265fee1517cabc877c11ff5c59 100644
--- a/src/Document/VivyDocumentStore.hh
+++ b/src/Document/VivyDocumentStore.hh
@@ -11,7 +11,7 @@
 class VivyDocumentStore final {
 public:
     explicit VivyDocumentStore() noexcept = default;
-    ~VivyDocumentStore() noexcept = default;
+    ~VivyDocumentStore() noexcept         = default;
 
     /* Don't move this object around */
     VivyDocumentStore(const VivyDocumentStore &) = delete;            // Copy
diff --git a/src/Document/VivyDocumentView.cc b/src/Document/VivyDocumentView.cc
index 2a459ab568a4bd378e3daee57d6180c5c3c1245f..380702d38831fe19b9d7a22b697dabb1c3ed0c94 100644
--- a/src/Document/VivyDocumentView.cc
+++ b/src/Document/VivyDocumentView.cc
@@ -5,7 +5,8 @@
 #include <QVBoxLayout>
 
 VivyDocumentView::VivyDocumentView(std::weak_ptr<VivyDocument> docWeak, QWidget *parent) noexcept
-    : QWidget(parent), document(docWeak)
+    : QWidget(parent)
+    , document(docWeak)
 {
     if (auto doc = document.lock()) {
         AudioDocument *const audioDocument = doc->getAudioSubDocument();
diff --git a/src/MainWindow.cc b/src/MainWindow.cc
index 4641010cb65ce5107074d0bd120527668ade1249..640dbdd69fb345f0ed358f1f1fdf8e887581c3a3 100644
--- a/src/MainWindow.cc
+++ b/src/MainWindow.cc
@@ -16,8 +16,9 @@
 #include <QToolBar>
 #include <QTabWidget>
 
-MainWindow::MainWindow(QWidget *parent) noexcept
-    : QMainWindow(parent)
+MainWindow::MainWindow(VivyApplication *app) noexcept
+    : QMainWindow(nullptr)
+    , application(app)
 {
     /* Some ugly stuff going on here with the toolbars and the menues */
 #include "MainWindow.xdef"
@@ -99,9 +100,3 @@ MainWindow::openDocument() noexcept
         throw;
     }
 }
-
-void
-MainWindow::registerApplication(VivyApplication *app) noexcept
-{
-    application = app;
-}
diff --git a/src/MainWindow.hh b/src/MainWindow.hh
index 0d8c09bf351d0f3762a77738b64247e628fda783..3cf488231c93a88a6643d0f2e7bc7e613f5889f9 100644
--- a/src/MainWindow.hh
+++ b/src/MainWindow.hh
@@ -18,15 +18,13 @@ class MainWindow final : public QMainWindow {
     Q_OBJECT
 
     VivyDocumentStore documentStore{};
-    VivyApplication *application{ nullptr };
+    VivyApplication *application;
     QTabWidget *documents{ nullptr };
 
 public:
-    explicit MainWindow(QWidget *parent = nullptr) noexcept;
+    explicit MainWindow(VivyApplication *) noexcept;
     ~MainWindow() noexcept = default;
 
-    void registerApplication(VivyApplication *) noexcept;
-
 private slots:
     void openDocument() noexcept;
     void closeDocument(int index) noexcept;
@@ -35,4 +33,5 @@ private slots:
     void saveFile() noexcept;
     void saveFileAs() noexcept;
 };
+
 #endif // VIVY_MAINWINDOW_H
diff --git a/src/VivyApplication.cc b/src/VivyApplication.cc
index 5cb26f878c6e499dd353acfe699ce689718112d3..b5c470b190e044425b6220158331f107f456b873 100644
--- a/src/VivyApplication.cc
+++ b/src/VivyApplication.cc
@@ -8,14 +8,13 @@ extern char *vivy_xpm[];
 
 VivyApplication::VivyApplication(int argc, char **argv)
     : QApplication(argc, argv)
-    , mainWindow(new MainWindow)
     , applicationIcon(QPixmap(vivy_xpm).scaled(100, 100, Qt::KeepAspectRatio, Qt::SmoothTransformation))
 {
     if (singletonInstance)
         throw std::runtime_error("A single instance of the VivyApplication can be created");
 
     singletonInstance = this;
-    mainWindow->registerApplication(this);
+    mainWindow        = std::make_unique<MainWindow>(this);
 }
 
 int