diff --git a/src/Lib/CRTPStore.hh b/src/Lib/CRTPStore.hh
index 57c27661d09aa835062f9d7a7df694a288e30ca4..d75be68098041fe270faaf295d579e2e1b0b6996 100644
--- a/src/Lib/CRTPStore.hh
+++ b/src/Lib/CRTPStore.hh
@@ -7,6 +7,8 @@
 #include "Utils.hh"
 #include "Uuid.hh"
 #include <QString>
+#include <QMap>
+#include <memory>
 
 #define VIVY_STORAGE_CLASS(theClassName, theDocumentName)                                          \
     VIVY_UNMOVABLE_OBJECT(theClassName)                                                            \
@@ -30,6 +32,15 @@ protected:
     explicit CRTPStore() noexcept = default;
 
 public:
+    // Load a document by its name
+    std::shared_ptr<Document> loadDocument(const QString &file)
+    {
+        auto ret      = std::make_shared<Document>(file);
+        const Uuid id = ret->getUuid();
+        documents[id] = ret;
+        return ret;
+    }
+
     // Close a document, please be sure to not used any of the dangling
     // references to the closed document...
     void closeDocument(const Uuid &uuid) noexcept
diff --git a/src/Lib/Document/VivyDocumentStore.cc b/src/Lib/Document/VivyDocumentStore.cc
index da9ff0ac1e4dde98cd53abf64558e6008d7e394d..5e2ca6fb98915c88d3c89d10dd0eeee6c57649f0 100644
--- a/src/Lib/Document/VivyDocumentStore.cc
+++ b/src/Lib/Document/VivyDocumentStore.cc
@@ -5,24 +5,6 @@
 
 using namespace Vivy;
 
-std::shared_ptr<VivyDocument>
-VivyDocumentStore::loadDocument(const QString &file)
-{
-    const QFileInfo fileinfo(file);
-    const QString baseName = fileinfo.baseName();
-    auto ret               = std::make_shared<VivyDocument>(file);
-
-    if (ret) {
-        qDebug() << "Register document " << baseName << ret->getDocumentCapabilitiesString();
-        const Uuid uuid = ret->getUuid();
-        documents[uuid] = ret;
-        return documents[uuid];
-    } else {
-        qDebug() << "Failed to create document from " << file;
-        throw std::runtime_error("Failed to create the document");
-    }
-}
-
 std::shared_ptr<VivyDocument>
 VivyDocumentStore::newDocument(VivyDocument::Options opt)
 {
diff --git a/src/Lib/Document/VivyDocumentStore.hh b/src/Lib/Document/VivyDocumentStore.hh
index 79929f2c7dee5343f5c583056c8fd20bc7a397fd..c2ac6b8e729a8befca9c085aeac25af81141a42b 100644
--- a/src/Lib/Document/VivyDocumentStore.hh
+++ b/src/Lib/Document/VivyDocumentStore.hh
@@ -8,10 +8,6 @@
 #include "../Utils.hh"
 #include "../CRTPStore.hh"
 
-#include <QMap>
-#include <QString>
-#include <memory>
-
 namespace Vivy
 {
 class VivyDocumentStore final : public CRTPStore<VivyDocumentStore, VivyDocument> {
@@ -20,8 +16,7 @@ class VivyDocumentStore final : public CRTPStore<VivyDocumentStore, VivyDocument
 public:
     explicit VivyDocumentStore() noexcept = default;
 
-    // Create/load documents
-    std::shared_ptr<VivyDocument> loadDocument(const QString &file);
+    // Create a new empty document with no backing file for the moment
     std::shared_ptr<VivyDocument> newDocument(VivyDocument::Options opt = VivyDocument::NoOption);
 };
 
diff --git a/src/Lib/Script/ScriptStore.cc b/src/Lib/Script/ScriptStore.cc
index 959935a55ee363ea018e66015539a15df6fe2d70..deb8b89ec8427d0f5170498d48d2a5e01505889e 100644
--- a/src/Lib/Script/ScriptStore.cc
+++ b/src/Lib/Script/ScriptStore.cc
@@ -2,17 +2,3 @@
 #include "../Uuid.hh"
 
 using namespace Vivy::Script;
-
-std::shared_ptr<ScriptDocument>
-ScriptStore::loadDocument(const QString &file)
-{
-    try {
-        auto ret        = std::make_shared<ScriptDocument>(file);
-        const Uuid uuid = ret->getUuid();
-        documents[uuid] = ret;
-        return ret;
-    } catch (const std::runtime_error &e) {
-        qCritical() << "Failed to create the Script document with:" << e.what();
-        return std::shared_ptr<ScriptDocument>(nullptr);
-    }
-}
diff --git a/src/Lib/Script/ScriptStore.hh b/src/Lib/Script/ScriptStore.hh
index f42d84a03a9630f3f2818056598a7462f97ffc36..8cddd1ebb2e84783d9e5926c479d8d17c9caea3b 100644
--- a/src/Lib/Script/ScriptStore.hh
+++ b/src/Lib/Script/ScriptStore.hh
@@ -10,7 +10,5 @@ class ScriptStore final : public CRTPStore<ScriptStore, ScriptDocument> {
 
 public:
     explicit ScriptStore() noexcept = default;
-
-    std::shared_ptr<ScriptDocument> loadDocument(const QString &file);
 };
 }