diff --git a/include/maker/presenter.hpp b/include/maker/presenter.hpp
index a281896124ac46486921b95271538f2ccc1320e2..b2187c33f78a63943151a58aa005794bf5ddb432 100644
--- a/include/maker/presenter.hpp
+++ b/include/maker/presenter.hpp
@@ -19,6 +19,8 @@ struct Presenter : public com::Runner
 
 protected:
 
+    void on_content_changed(File* sender) override;
+
     void initialize() override;
     void release() override;
 };
diff --git a/src/presenter.cpp b/src/presenter.cpp
index e6a6ffec0bf3b185e88727ccb999dd5a5060557f..783276a22eb4452f31b7023e01564f1e14088ae8 100644
--- a/src/presenter.cpp
+++ b/src/presenter.cpp
@@ -3,6 +3,7 @@
 #include <gfx/index.hpp>
 #include <osi/index.hpp>
 #include <com/math_files.hpp>
+#include <lfs/index.hpp>
 
 namespace mak {
 
@@ -59,6 +60,24 @@ void Presenter::initialize()
 
     gfx::object_system()->insert_light(test_box, dir_light);
     gfx::light_system()->insert_shadow_caster(dir_light, test_box);
+
+    // -----------------------------
+
+    auto* handle{ lfs::loader()->load({"age", "texture", "font", "Consolas_16.txt"}) };
+    if (handle->state() == lfs::ResourceHandle::LOADED)
+        Presenter::on_content_changed(handle);
+    else
+        handle->register_on_content_changed(this);
+}
+
+void Presenter::on_content_changed(File* const sender)
+{
+    if (lfs::ResourceHandle* const handle = dynamic_cast<lfs::ResourceHandle*>(sender))
+    {
+        ASSUMPTION(handle->state() == lfs::ResourceHandle::LOADED);
+        std::string const my_loaded_data{ handle->data().begin(), handle->data().end() };
+        handle->unregister_on_content_changed(this);
+    }
 }
 
 void Presenter::release()