diff --git a/src/MainWindow.cc b/src/MainWindow.cc
index f49a38ef61fa889e42c7b4cb24dcc3fbd3bcf850..f028b208e99c3e1b8a4eebb4733fc256bb9febed 100644
--- a/src/MainWindow.cc
+++ b/src/MainWindow.cc
@@ -16,6 +16,7 @@
 #include <QImage>
 #include <QToolBar>
 #include <QTabWidget>
+#include "VivyApplication.hh"
 
 MainWindow::MainWindow(QWidget * parent) noexcept
     : QMainWindow(parent)
@@ -76,7 +77,7 @@ MainWindow::closeDocument(int index) noexcept
 
     if (auto doc = documentToClose->getDocument().lock()) {
         const QString documentName = doc->getName();
-        documentStore.closeDocument(documentName);
+        vivyApp->documentStore.closeDocument(documentName);
         qDebug() << "Request to close the document" << documentName << "with tab position" << index;
     } else {
         qCritical() << "The document at index" << index << "was already deleted from the store";
@@ -98,12 +99,12 @@ MainWindow::openDocument() noexcept
     QFileInfo fileInfo(filename);
     const QString baseName = fileInfo.baseName();
 
-    if (documentStore.isDocumentPresent(baseName)) {
+    if (vivyApp->documentStore.isDocumentPresent(baseName)) {
         qWarning() << "The document" << baseName << "is already loaded";
         return;
     }
 
-    std::weak_ptr<VivyDocument> document = documentStore.loadDocument(filename);
+    std::weak_ptr<VivyDocument> document = vivyApp->documentStore.loadDocument(filename);
 
     try {
         VivyDocumentView *documentView = new VivyDocumentView(document);
diff --git a/src/MainWindow.hh b/src/MainWindow.hh
index cb0bba89bd195137b35cd83272e0084dd220c413..e826c319fac92f456cfcd61a6a8c350cd8e215eb 100644
--- a/src/MainWindow.hh
+++ b/src/MainWindow.hh
@@ -17,11 +17,10 @@ class VivyApplication;
 class MainWindow final : public QMainWindow {
     Q_OBJECT
 
-    VivyDocumentStore documentStore{};
     QTabWidget *documents{ nullptr };
 
 public:
-    explicit MainWindow(QWidget * paret = nullptr) noexcept;
+    explicit MainWindow(QWidget * parent = nullptr) noexcept;
     ~MainWindow() noexcept = default;
 
     std::weak_ptr<VivyDocument> getCurrentDocument() const;
diff --git a/src/VivyApplication.hh b/src/VivyApplication.hh
index 22dd0669e41f24cc241aaf5d154d4da54bd3d464..ebf3264389291374f5baa16b887b3de4fdda205c 100644
--- a/src/VivyApplication.hh
+++ b/src/VivyApplication.hh
@@ -5,8 +5,11 @@
 #error "This is a C++ header"
 #endif
 
+#define vivyApp static_cast<VivyApplication*>(QApplication::instance())
+
 #include <QApplication>
 #include <QPixmap>
+#include "Document/VivyDocumentStore.hh"
 #include <memory>
 
 class MainWindow;
@@ -14,6 +17,9 @@ class MainWindow;
 class VivyApplication : public QApplication {
     Q_OBJECT
 
+public:
+    VivyDocumentStore documentStore{};
+
 private:
 
 public: