diff --git a/CMakeLists.txt b/CMakeLists.txt
index e7665fda3fcf673bb31a0d32c3ca4dd7646377c8..3a9b98d1e6c862432094098ba652bd778346bdf9 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -270,7 +270,6 @@ add_library(lava.block STATIC
         )
 
 target_link_libraries(lava.block
-        lava::file
         lava::base
         )
 
diff --git a/liblava/block/pipeline.cpp b/liblava/block/pipeline.cpp
index ca4754062319a10a7ebcb86bc6bb66168fa876c6..deeefe802048b5c47b52db9d98bc69b3d8b4469a 100644
--- a/liblava/block/pipeline.cpp
+++ b/liblava/block/pipeline.cpp
@@ -3,7 +3,6 @@
 // license   : MIT; see accompanying LICENSE file
 
 #include <liblava/block/pipeline.hpp>
-#include <liblava/file/file.hpp>
 
 namespace lava {
 
@@ -309,10 +308,6 @@ namespace lava {
         return true;
     }
 
-    bool graphics_pipeline::add_shader_stage(name filename, VkShaderStageFlagBits stage) {
-        return add_shader_stage(file_data(filename).get(), stage);
-    }
-
     void graphics_pipeline::copy_to(graphics_pipeline* target) const {
         target->set_layout(layout);
 
@@ -431,10 +426,6 @@ namespace lava {
         return true;
     }
 
-    bool compute_pipeline::set_shader_stage(name filename, VkShaderStageFlagBits stage) {
-        return set_shader_stage(file_data(filename).get(), stage);
-    }
-
     bool compute_pipeline::create_internal() {
         VkComputePipelineCreateInfo const create_info{
             .sType = VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO,
diff --git a/liblava/block/pipeline.hpp b/liblava/block/pipeline.hpp
index 4f06dcb9a2216533e259a8555999c6ef81dd63d1..d2435927bacb0761de457d45255a305ab31e9efd 100644
--- a/liblava/block/pipeline.hpp
+++ b/liblava/block/pipeline.hpp
@@ -238,11 +238,6 @@ namespace lava {
             return add_shader_stage(data, stage);
         }
 
-        bool add_shader_stage(name filename, VkShaderStageFlagBits stage);
-        bool add_shader(name filename, VkShaderStageFlagBits stage) {
-            return add_shader_stage(filename, stage);
-        }
-
         void add(shader_stage::ptr const& shader_stage) {
             shader_stages.push_back(shader_stage);
         }
@@ -351,7 +346,6 @@ namespace lava {
         void bind(VkCommandBuffer cmdBuffer) override;
 
         bool set_shader_stage(data const& data, VkShaderStageFlagBits stage);
-        bool set_shader_stage(name filename, VkShaderStageFlagBits stage);
         void set(shader_stage::ptr const& stage) {
             shader_stage = stage;
         }
diff --git a/liblava/file/file.hpp b/liblava/file/file.hpp
index a1ab11d97eef6692e04c78510271cbb179c1f594..3376b510ecf954222676d5f8d6cb704575042251 100644
--- a/liblava/file/file.hpp
+++ b/liblava/file/file.hpp
@@ -153,17 +153,10 @@ namespace lava {
 
     bool load_file_data(string_ref filename, data& target);
 
-    struct file_data {
+    struct file_data : scope_data {
         explicit file_data(string_ref filename) {
-            load_file_data(filename, scope_data);
+            load_file_data(filename, *this);
         }
-
-        data const& get() const {
-            return scope_data;
-        }
-
-    private:
-        lava::scope_data scope_data;
     };
 
     struct file_callback {