diff --git a/src/UI/VivyDocumentView.cc b/src/UI/VivyDocumentView.cc
index 64213d65f39dd15677361015d4c99e6c8d5e7b50..c35b0179de3d615cb69fc55c8038aa15a5432bf8 100644
--- a/src/UI/VivyDocumentView.cc
+++ b/src/UI/VivyDocumentView.cc
@@ -2,6 +2,7 @@
 #include "PropertyModel.hh"
 #include "DocumentViews/AudioVisualizer.hh"
 #include "DocumentViews/AssLinesView.hh"
+#include "DocumentViews/AssLinesModel.hh"
 #include "../VivyApplication.hh"
 #include "../Lib/Document/VivyDocument.hh"
 
@@ -9,6 +10,8 @@
 #include <QTreeView>
 #include <QVBoxLayout>
 #include <QTableView>
+#include <QWidget>
+#include <QDockWidget>
 
 using namespace Vivy;
 
@@ -75,22 +78,24 @@ VivyDocumentView::getDocumentTabToolTip() const noexcept
 void
 VivyDocumentView::loadVideoView() noexcept
 {
+    if (document->checkDocumentCapabilities(VivyDocument::Capabilities::VideoAble)) {
+    }
 }
 
 void
 VivyDocumentView::loadAssView() noexcept
 {
-    if (assLines)
-        delDockWidget(&assLines);
-
     if (document->checkDocumentCapabilities(VivyDocument::Capabilities::AssAble)) {
+        if (!assLines) {
+            assLines = new QDockWidget("ASS Lines", this);
+            assLines->setFeatures(QDockWidget::DockWidgetMovable | QDockWidget::DockWidgetClosable);
+            assLines->setAllowedAreas(Qt::LeftDockWidgetArea | Qt::RightDockWidgetArea |
+                                      Qt::BottomDockWidgetArea);
+            addDockWidget(Qt::BottomDockWidgetArea, assLines, Qt::Vertical);
+        }
+
         assModel.reset(new AssLinesModel(document->getAssSubDocument()->getLines()));
-        assLines = new QDockWidget("ASS Lines", this);
         assLines->setWidget(new AssLinesView(assModel.get(), assLines));
-        assLines->setFeatures(QDockWidget::DockWidgetMovable | QDockWidget::DockWidgetClosable);
-        assLines->setAllowedAreas(Qt::LeftDockWidgetArea | Qt::RightDockWidgetArea |
-                                  Qt::BottomDockWidgetArea);
-        addDockWidget(Qt::BottomDockWidgetArea, assLines, Qt::Vertical);
     }
 }
 
@@ -108,9 +113,16 @@ VivyDocumentView::loadAudioView() noexcept
             return;
         }
 
-        if (visualizer)
-            delDockWidget(&visualizer);
-        visualizer = new QDockWidget("Visualizer", this);
+        if (!visualizer) {
+            visualizer = new QDockWidget("Visualizer", this);
+
+            visualizer->setSizePolicy(QSizePolicy::Ignored, QSizePolicy::Minimum);
+            visualizer->setAllowedAreas(Qt::LeftDockWidgetArea | Qt::TopDockWidgetArea |
+                                        Qt::BottomDockWidgetArea);
+            visualizer->setFeatures(QDockWidget::DockWidgetMovable |
+                                    QDockWidget::DockWidgetClosable);
+            addDockWidget(Qt::LeftDockWidgetArea, visualizer, Qt::Horizontal);
+        }
 
         AudioVisualizer *visualizerInner = new AudioVisualizer(stream, visualizer);
         if (visualizerInner == nullptr) {
@@ -118,13 +130,8 @@ VivyDocumentView::loadAudioView() noexcept
             return;
         }
 
-        visualizer->setSizePolicy(QSizePolicy::Ignored, QSizePolicy::Minimum);
         visualizer->setWidget(visualizerInner);
-        visualizer->setAllowedAreas(Qt::LeftDockWidgetArea | Qt::TopDockWidgetArea |
-                                    Qt::BottomDockWidgetArea);
-        visualizer->setFeatures(QDockWidget::DockWidgetMovable | QDockWidget::DockWidgetClosable);
         visualizer->layout()->setAlignment(visualizerInner, Qt::AlignTop);
-        addDockWidget(Qt::LeftDockWidgetArea, visualizer, Qt::Horizontal);
     }
 
     else {
@@ -155,16 +162,17 @@ VivyDocumentView::getDocumentTabIcon() const noexcept
 void
 VivyDocumentView::openProperties() noexcept
 {
-    if (property)
-        delDockWidget(&property);
-
     propertyModel.reset(new PropertyModel(*document.get()));
-    property        = new QDockWidget("Properties", this);
     QTreeView *view = new QTreeView(property);
     view->setModel(propertyModel.get());
     view->header()->setSectionResizeMode(QHeaderView::ResizeToContents);
     view->expandAll();
+
+    if (!property) {
+        property = new QDockWidget("Properties", this);
+        property->setAllowedAreas(Qt::AllDockWidgetAreas);
+        addDockWidget(Qt::RightDockWidgetArea, property, Qt::Vertical);
+    }
+
     property->setWidget(view);
-    property->setAllowedAreas(Qt::AllDockWidgetAreas);
-    addDockWidget(Qt::RightDockWidgetArea, property, Qt::Vertical);
 }
diff --git a/src/UI/VivyDocumentView.hh b/src/UI/VivyDocumentView.hh
index 56c54a493826fe4bbe4447c65c5b75a05a34b11a..13d802cc73d4b52d747e38eea819204439ab8dbf 100644
--- a/src/UI/VivyDocumentView.hh
+++ b/src/UI/VivyDocumentView.hh
@@ -5,17 +5,17 @@
 #error "This is a C++ header"
 #endif
 
-#include "../Lib/Document/VivyDocument.hh"
-#include "DocumentViews/AudioVisualizer.hh"
-#include "DocumentViews/AssLinesModel.hh"
 #include "AbstractDocumentView.hh"
-#include "PropertyModel.hh"
 
-#include <QWidget>
-#include <QDockWidget>
+class QDockWidget;
+class QWidget;
 
 namespace Vivy
 {
+class PropertyModel;
+class AssLinesModel;
+class VivyDocument;
+
 class VivyDocumentView final : public AbstractDocumentView {
     Q_OBJECT
     VIVY_UNMOVABLE_OBJECT(VivyDocumentView)
@@ -45,6 +45,7 @@ private:
     QDockWidget *visualizer{ nullptr };
     QDockWidget *property{ nullptr };
     QDockWidget *assLines{ nullptr };
+    QDockWidget *videoView{ nullptr };
 };
 
 }