diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index 1fc80b1..11531ba 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -1,36 +1,4 @@
-
-
-set(GLFW_BUILD_DOCS OFF CACHE BOOL "" FORCE)
-set(GLFW_BUILD_TESTS OFF CACHE BOOL "" FORCE)
-set(GLFW_BUILD_EXAMPLES OFF CACHE BOOL "" FORCE)
-
-
-add_subdirectory(vendor/glad)
-add_subdirectory(vendor/glfw-3.3.8)
-
-find_package(OpenGL REQUIRED)
-
-
-add_library(paradiso_core
-    lib/bitmap.hpp
-    lib/geometry.hpp
-    lib/sprite.hpp
-    lib/shader.hpp
-    lib/shader.cpp
-    lib/window.hpp
-    lib/window.cpp
-    lib/renderer.hpp
-    lib/renderer.cpp
-    lib/context.hpp
-    lib/context.cpp
-    )
-
-target_link_libraries(
-    paradiso_core
-    PRIVATE
-    glfw
-    glad
-    )
+add_subdirectory(lib)
 
 set(paradiso_src
     main.cpp
@@ -41,7 +9,7 @@ add_executable(
     ${paradiso_src}
     )
 
-    target_link_libraries(paradiso
+target_link_libraries(paradiso
     paradiso_core
     )
 
diff --git a/src/lib/CMakeLists.txt b/src/lib/CMakeLists.txt
new file mode 100644
index 0000000..0ca04ac
--- /dev/null
+++ b/src/lib/CMakeLists.txt
@@ -0,0 +1,45 @@
+
+
+set(GLFW_BUILD_DOCS OFF CACHE BOOL "" FORCE)
+set(GLFW_BUILD_TESTS OFF CACHE BOOL "" FORCE)
+set(GLFW_BUILD_EXAMPLES OFF CACHE BOOL "" FORCE)
+
+add_subdirectory(src/vendor/glad)
+add_subdirectory(src/vendor/glfw-3.3.8)
+
+# find_package(OpenGL REQUIRED)
+
+set(paradiso_srcs
+    src/shader.cpp
+    src/window.cpp
+    src/renderer.cpp
+    src/context.cpp
+    )
+
+set(paradiso_incs
+    include/paradiso/bitmap.hpp
+    include/paradiso/geometry.hpp
+    include/paradiso/sprite.hpp
+    include/paradiso/shader.hpp
+    include/paradiso/window.hpp
+    include/paradiso/renderer.hpp
+    include/paradiso/context.hpp
+    )
+
+add_library(paradiso_core
+    ${paradiso_incs}
+    ${paradiso_srcs}
+    )
+
+target_include_directories(
+    paradiso_core
+    PUBLIC
+    include
+)
+
+target_link_libraries(
+    paradiso_core
+    PRIVATE
+    glfw
+    glad
+    )
diff --git a/src/lib/bitmap.hpp b/src/lib/include/paradiso/bitmap.hpp
similarity index 100%
rename from src/lib/bitmap.hpp
rename to src/lib/include/paradiso/bitmap.hpp
diff --git a/src/lib/context.hpp b/src/lib/include/paradiso/context.hpp
similarity index 100%
rename from src/lib/context.hpp
rename to src/lib/include/paradiso/context.hpp
diff --git a/src/lib/geometry.hpp b/src/lib/include/paradiso/geometry.hpp
similarity index 100%
rename from src/lib/geometry.hpp
rename to src/lib/include/paradiso/geometry.hpp
diff --git a/src/lib/globals.hpp b/src/lib/include/paradiso/globals.hpp
similarity index 100%
rename from src/lib/globals.hpp
rename to src/lib/include/paradiso/globals.hpp
diff --git a/src/lib/matrix.hpp b/src/lib/include/paradiso/matrix.hpp
similarity index 100%
rename from src/lib/matrix.hpp
rename to src/lib/include/paradiso/matrix.hpp
diff --git a/src/lib/matrixbase.hpp b/src/lib/include/paradiso/matrixbase.hpp
similarity index 100%
rename from src/lib/matrixbase.hpp
rename to src/lib/include/paradiso/matrixbase.hpp
diff --git a/src/lib/renderer.hpp b/src/lib/include/paradiso/renderer.hpp
similarity index 84%
rename from src/lib/renderer.hpp
rename to src/lib/include/paradiso/renderer.hpp
index e7e7e41..d53150a 100644
--- a/src/lib/renderer.hpp
+++ b/src/lib/include/paradiso/renderer.hpp
@@ -5,7 +5,9 @@
 #include <memory>
 
 namespace paradiso {
+
 struct Sprite;
+struct Shader;
 
 /**
  * @brief a Renderer2D for sprites
@@ -16,7 +18,7 @@ struct Renderer final {
     ~Renderer();
     Renderer(const Renderer&) = delete;
 
-    bool draw(const Sprite& m);
+    bool draw(const Sprite& sprite, const Shader& shader);
 
     bool ready() const;
 
diff --git a/src/lib/rgba.hpp b/src/lib/include/paradiso/rgba.hpp
similarity index 100%
rename from src/lib/rgba.hpp
rename to src/lib/include/paradiso/rgba.hpp
diff --git a/src/lib/shader.hpp b/src/lib/include/paradiso/shader.hpp
similarity index 98%
rename from src/lib/shader.hpp
rename to src/lib/include/paradiso/shader.hpp
index aa28a62..dbf1ca0 100644
--- a/src/lib/shader.hpp
+++ b/src/lib/include/paradiso/shader.hpp
@@ -23,11 +23,13 @@ struct Shader final {
     void set_source(Type t, const std::string& c) { source_[t] = c; }
     std::string source(Type t) const { return source_.at(t); }
 
-    bool ready() const;
-
     bool build();
 
-    void use();
+    bool ready() const;
+
+    void use() const;
+
+
 
     Shader& set_uniform_at_location(int location,
                                     float v); //!< sets a float in a shader
diff --git a/src/lib/sprite.hpp b/src/lib/include/paradiso/sprite.hpp
similarity index 100%
rename from src/lib/sprite.hpp
rename to src/lib/include/paradiso/sprite.hpp
diff --git a/src/lib/vector.hpp b/src/lib/include/paradiso/vector.hpp
similarity index 100%
rename from src/lib/vector.hpp
rename to src/lib/include/paradiso/vector.hpp
diff --git a/src/lib/window.hpp b/src/lib/include/paradiso/window.hpp
similarity index 100%
rename from src/lib/window.hpp
rename to src/lib/include/paradiso/window.hpp
diff --git a/src/lib/shader.cpp b/src/lib/shader.cpp
deleted file mode 100644
index 7144518..0000000
--- a/src/lib/shader.cpp
+++ /dev/null
@@ -1,308 +0,0 @@
-#include "shader.hpp"
-
-#include "glad/glad.h"
-
-#include <iostream>
-
-namespace paradiso
-{
-
-    struct Shader::impl
-    {
-        std::reference_wrapper<Shader> _shader;
-
-        GLuint _shader_program;
-        std::vector<GLuint> _shader_stages;
-
-        impl(Shader &s)
-            : _shader(s)
-        {
-        }
-
-        ~impl()
-        {
-            destroy();
-        }
-
-        bool is_valid()
-        {
-            // we potentially haul in is_valid while no context is given
-            return glIsProgram != nullptr && glIsProgram(_shader_program);
-        }
-
-        bool build()
-        {
-            //        if (!is_valid()) return false;
-
-            for (const auto &[type, code] : _shader.get().source_)
-            {
-                GLuint shader_type = 0;
-                switch (type)
-                {
-                case Shader::Type::Vertex:
-                    shader_type = GL_VERTEX_SHADER;
-                    break;
-                case Shader::Type::Compute:
-                    shader_type = GL_COMPUTE_SHADER;
-                    break;
-                case Shader::Type::Geometry:
-                    shader_type = GL_GEOMETRY_SHADER;
-                    break;
-                case Shader::Type::Fragment:
-                    shader_type = GL_FRAGMENT_SHADER;
-                    break;
-                default:
-                    std::cerr << " unknown shader type";
-                }
-
-                GLuint shaderId = glCreateShader(shader_type);
-
-                char *src = const_cast<char *>(code.c_str());
-                GLint size = static_cast<GLint>(code.length());
-
-                glShaderSource(shaderId, 1, &src, &size);
-
-                glCompileShader(shaderId);
-
-                GLint is_compiled = GL_FALSE;
-                glGetShaderiv(shaderId, GL_COMPILE_STATUS, &is_compiled);
-                if (is_compiled == GL_FALSE)
-                {
-
-                    GLint log_length;
-
-                    glGetShaderiv(shaderId, GL_INFO_LOG_LENGTH, &log_length);
-
-                    std::vector<char> log_buffer(static_cast<size_t>(log_length));
-
-                    glGetShaderInfoLog(shaderId, log_length, &log_length, log_buffer.data());
-
-                    // TODO - handle errors!
-                    std::cerr << log_buffer.data();
-
-                    return false;
-                }
-
-                _shader_stages.push_back(shaderId);
-            }
-
-            _shader_program = glCreateProgram();
-
-            for (auto s : _shader_stages)
-                glAttachShader(_shader_program, s);
-
-            // TODO attribute binding ...
-
-            /* Bind attribute index 0 (coordinates) to in_Position and attribute index 1 (color) to in_Color */
-            /* Attribute locations must be setup before calling glLinkProgram. */
-            //		 glBindAttribLocation(shaderprogram, 0, "in_Position");
-            //		 glBindAttribLocation(shaderprogram, 1, "in_Color");
-
-            glLinkProgram(_shader_program);
-
-            GLint is_linked = 0;
-            glGetProgramiv(_shader_program, GL_LINK_STATUS, &is_linked);
-            if (is_linked == GL_FALSE)
-            {
-
-                GLint log_length;
-
-                /* Noticed that glGetProgramiv is used to get the length for a shader program, not glGetShaderiv. */
-                glGetProgramiv(_shader_program, GL_INFO_LOG_LENGTH, &log_length);
-
-                /* The maxLength includes the NULL character */
-                std::vector<char> info_log(static_cast<size_t>(log_length));
-
-                /* Notice that glGetProgramInfoLog, not glGetShaderInfoLog. */
-                glGetProgramInfoLog(_shader_program, log_length, &log_length, info_log.data());
-
-                std::cerr << info_log.data();
-
-                /* Handle the error in an appropriate way such as displaying a message or writing to a log file. */
-                /* In this simple program, we'll just leave */
-
-                return false;
-            }
-
-            return true;
-        }
-
-        void use()
-        {
-            glUseProgram(_shader_program);
-        }
-
-        void destroy()
-        {
-            // potentially the GL driver hasn't been loaded
-            if (is_valid())
-            {
-
-                // deleting and detaching should happen much earlier
-
-                for (auto s : _shader_stages)
-                {
-                    glDeleteShader(s);
-                }
-
-                // only program needs to be deleted
-
-                glDeleteProgram(_shader_program);
-            }
-        }
-
-        int uniform_location(std::string const &name) const
-        {
-            return glGetUniformLocation(_shader_program, name.c_str());
-        }
-
-        // void bind(int location,const matrix3x3f& m)
-        // {
-        // 	glUniformMatrix3fv(location,1,GL_FALSE,m.ptr());
-        // }
-
-        // void bind(int location,const matrix4x4f& m)
-        // {
-        // 	glUniformMatrix4fv(location,1,GL_FALSE,m.ptr());
-        // }
-
-        // void bind(int location,const vector4f& v)
-        // {
-        // 	glUniform4fv(location,1,v.ptr());
-        // }
-
-        void bind(int location, const float &v)
-        {
-            glUniform1f(location, v);
-        }
-
-        void bind(int location, const uint32_t &i)
-        {
-            glUniform1ui(location, i);
-        }
-
-        void bind(int location, const int32_t &i)
-        {
-            glUniform1i(location, i);
-        }
-
-        // void bind(int location,const texture& v)
-        // {
-        //     this->bind(location,(int)v.native_handle());
-
-        // }
-    };
-
-    Shader::Shader()
-    {
-        impl_ = std::make_unique<impl>(*this);
-    }
-
-    Shader::~Shader()
-    {
-    }
-
-    bool Shader::ready() const
-    {
-        return impl_->is_valid();
-    }
-
-    Shader &Shader::set_uniform_at_location(int location, float v)
-    {
-        impl_->bind(location, v);
-        return *this;
-    }
-
-    Shader &Shader::set_uniform_at_location(int location, uint32_t v)
-    {
-        impl_->bind(location, v);
-        return *this;
-    }
-
-    Shader &Shader::set_uniform_at_location(int location, int32_t v)
-    {
-        impl_->bind(location, v);
-        return *this;
-    }
-
-    // Shader &Shader::set_uniform_at_location(int location, vector4f const &v)
-    // {
-    //     impl_->bind(location, v);
-    //     return *this;
-    // }
-
-    // Shader &Shader::set_uniform_at_location(int location, matrix4x4f const &v)
-    // {
-    //     impl_->bind(location, v);
-    //     return *this;
-    // }
-
-    // Shader &Shader::set_uniform_at_location(int location, texture const &v)
-    // {
-    //     impl_->bind(location, v);
-    //     return *this;
-    // }
-
-    bool Shader::build()
-    {
-        return impl_->build();
-    }
-
-    void Shader::use()
-    {
-        impl_->use();
-    }
-
-    void Shader::set_uniforms(uniform_cache_t c)
-    {
-
-#if 0
-        // TODO rewrite in proper C++17
-
-        for (auto &u : c)
-        {
-            // get name
-            std::string name = std::get<0>(u);
-            // get location
-            GLint loc = std::get<2>(u);
-
-            // if lower 0 check for location
-            if (loc < 0)
-            {
-                loc = impl_->uniform_location(name);
-                std::get<2>(u) = loc; // cache location
-            }
-
-            auto var = std::get<1>(u);
-
-            std::visit([this, loc](auto &&arg)
-                       {
-
-            using T = std::decay_t<decltype(arg)>;
-
-            // TODO query the std::variant of uniform_t
-
-			if constexpr ((std::is_same_v<T, vector4f>) ||
-				(std::is_same_v<T, matrix4x4f>) ||
-				(std::is_same_v<T, float>) ) {
-                    set_uniform_at_location( loc, std::forward<T>(arg));
-			} else {
-                debug::e() << "unknown uniform type";
-			} },
-                       var);
-        }
-
-#endif
-    }
-
-    uint32_t Shader::native_handle() const
-    {
-        return impl_->_shader_program;
-    }
-
-    int Shader::uniform_location(const std::string &name) const
-    {
-        return impl_->uniform_location(name);
-    }
-
-}
diff --git a/src/lib/context.cpp b/src/lib/src/context.cpp
similarity index 96%
rename from src/lib/context.cpp
rename to src/lib/src/context.cpp
index f76b753..bf0fdfb 100644
--- a/src/lib/context.cpp
+++ b/src/lib/src/context.cpp
@@ -1,10 +1,9 @@
 
-#include "context.hpp"
+#include "paradiso/context.hpp"
+#include "paradiso/geometry.hpp"
 
 #include "glad/glad.h"
 
-#include "geometry.hpp"
-
 namespace paradiso {
 
 //
diff --git a/src/lib/renderer.cpp b/src/lib/src/renderer.cpp
similarity index 83%
rename from src/lib/renderer.cpp
rename to src/lib/src/renderer.cpp
index c1b7957..7277cc1 100644
--- a/src/lib/renderer.cpp
+++ b/src/lib/src/renderer.cpp
@@ -1,21 +1,22 @@
 
-#include "renderer.hpp"
-#include "bitmap.hpp"
-#include "sprite.hpp"
+#include "paradiso/renderer.hpp"
+#include "paradiso/bitmap.hpp"
+#include "paradiso/sprite.hpp"
+#include "paradiso/shader.hpp"
 
 #include "glad/glad.h"
 
 #include <algorithm>
 #include <array>
-#include <vector>
-#include <iostream>
 #include <iomanip>
+#include <iostream>
+#include <vector>
 
 namespace paradiso {
 
 struct Renderer::impl {
 
-    uint64_t change_count{ std::numeric_limits<uint64_t>::max() };
+    uint64_t change_count{std::numeric_limits<uint64_t>::max()};
 
     uint32_t vertex_array_obj{};
     uint32_t element_buffer_obj{};
@@ -52,8 +53,8 @@ struct Renderer::impl {
         // indices -> elements
         glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, element_buffer_obj);
         glBufferData(GL_ELEMENT_ARRAY_BUFFER,
-                     sprite.indices.size() * sizeof(uint32_t), sprite.indices.data(),
-                     GL_STATIC_DRAW);
+                     sprite.indices.size() * sizeof(uint32_t),
+                     sprite.indices.data(), GL_STATIC_DRAW);
 
         vertex_buffer_ob.resize(vertex_buffer_ob.size() + 1);
         glGenBuffers(1, &vertex_buffer_ob.back());
@@ -62,7 +63,8 @@ struct Renderer::impl {
         glBindBuffer(GL_ARRAY_BUFFER, vertex_buffer_ob.back());
         glVertexAttribPointer(vertex_buffer_ob.size() - 1, 3, GL_FLOAT,
                               GL_FALSE, 0, nullptr);
-        glBufferData(GL_ARRAY_BUFFER, sprite.vertices.size() * sizeof(float) * 3,
+        glBufferData(GL_ARRAY_BUFFER,
+                     sprite.vertices.size() * sizeof(float) * 3,
                      sprite.vertices.data(), GL_STATIC_DRAW);
         glEnableVertexAttribArray(vertex_buffer_ob.size() - 1);
 
@@ -92,9 +94,6 @@ struct Renderer::impl {
         // stop binding
         glBindVertexArray(0);
 
-
-
-
         change_count = sprite.change_count;
 
         return ready();
@@ -117,11 +116,11 @@ struct Renderer::impl {
             // setup new texture
             glTexImage2D(GL_TEXTURE_2D,     // target
                          0,                 // level
-                         GL_RGB8,           // internal format
+                         GL_RGB,            // internal format
                          image.size.width,  // width
                          image.size.height, // height
                          0,                 // border
-                         GL_RGB,            // format
+                         GL_RGBA,           // format
                          GL_UNSIGNED_BYTE,  // type
                          image.data.data()  // pointer to data
             );
@@ -145,7 +144,7 @@ struct Renderer::impl {
                             0,                  // y-offset
                             image.size.width,   // width
                             image.size.height,  // height
-                            GL_RGB,             // format
+                            GL_RGBA,            // format
                             GL_UNSIGNED_BYTE,   // type
                             image.data.data()); // pointer
         }
@@ -164,10 +163,10 @@ struct Renderer::impl {
         // glDeleteTextures(1, &texture_id);
     }
 
-    void just_draw(const Sprite& sprite) 
-    {
+    void just_draw(const Sprite& sprite) {
         glBindVertexArray(vertex_array_obj);
-        glDrawElements(GL_TRIANGLES, sprite.indices.size(), GL_UNSIGNED_INT, nullptr);
+        glDrawElements(GL_TRIANGLES, sprite.indices.size(), GL_UNSIGNED_INT,
+                       nullptr);
         glBindVertexArray(0);
     }
 
@@ -190,23 +189,24 @@ Renderer::~Renderer() {}
 
 bool Renderer::ready() const { return impl_->ready(); }
 
-bool Renderer::draw(const Sprite& m) 
-{  
-    if (!impl_->ready() || m.change_count != impl_->change_count) 
-    {
-        impl_->build(m);
+bool Renderer::draw(const Sprite& sprite, const Shader& shader) {
+
+    // if interna are not ready or sprite has been altered - rebuild
+    if (!impl_->ready() || sprite.change_count != impl_->change_count) {
+        impl_->build(sprite);
     }
 
+    // render the sprite with the shader
+    if (impl_->ready() && sprite.change_count == impl_->change_count) {
 
-    if (impl_->ready() && m.change_count == impl_->change_count) {
+        shader.use();
 
-        impl_->just_draw(m);
+        impl_->just_draw(sprite);
 
         return true;
     }
 
-    return false; 
-
+    return false;
 }
 
 } // namespace paradiso
diff --git a/src/lib/src/shader.cpp b/src/lib/src/shader.cpp
new file mode 100644
index 0000000..999da5a
--- /dev/null
+++ b/src/lib/src/shader.cpp
@@ -0,0 +1,261 @@
+#include "paradiso/shader.hpp"
+
+#include "glad/glad.h"
+
+#include <iostream>
+
+namespace paradiso {
+
+struct Shader::impl {
+    std::reference_wrapper<Shader> _shader;
+
+    GLuint _shader_program;
+    std::vector<GLuint> _shader_stages;
+
+    impl(Shader& s) : _shader(s) {}
+
+    ~impl() { destroy(); }
+
+    bool is_valid() {
+        // we potentially haul in is_valid while no context is given
+        return glIsProgram != nullptr && glIsProgram(_shader_program);
+    }
+
+    bool build() {
+        //        if (!is_valid()) return false;
+
+        for (const auto& [type, code] : _shader.get().source_) {
+            GLuint shader_type = 0;
+            switch (type) {
+            case Shader::Type::Vertex:
+                shader_type = GL_VERTEX_SHADER;
+                break;
+            case Shader::Type::Compute:
+                shader_type = GL_COMPUTE_SHADER;
+                break;
+            case Shader::Type::Geometry:
+                shader_type = GL_GEOMETRY_SHADER;
+                break;
+            case Shader::Type::Fragment:
+                shader_type = GL_FRAGMENT_SHADER;
+                break;
+            default:
+                std::cerr << " unknown shader type";
+            }
+
+            GLuint shaderId = glCreateShader(shader_type);
+
+            char* src = const_cast<char*>(code.c_str());
+            GLint size = static_cast<GLint>(code.length());
+
+            glShaderSource(shaderId, 1, &src, &size);
+
+            glCompileShader(shaderId);
+
+            GLint is_compiled = GL_FALSE;
+            glGetShaderiv(shaderId, GL_COMPILE_STATUS, &is_compiled);
+            if (is_compiled == GL_FALSE) {
+
+                GLint log_length;
+
+                glGetShaderiv(shaderId, GL_INFO_LOG_LENGTH, &log_length);
+
+                std::vector<char> log_buffer(static_cast<size_t>(log_length));
+
+                glGetShaderInfoLog(shaderId, log_length, &log_length,
+                                   log_buffer.data());
+
+                // TODO - handle errors!
+                std::cerr << log_buffer.data();
+
+                return false;
+            }
+
+            _shader_stages.push_back(shaderId);
+        }
+
+        _shader_program = glCreateProgram();
+
+        for (auto s : _shader_stages)
+            glAttachShader(_shader_program, s);
+
+        // TODO attribute binding ...
+
+        /* Bind attribute index 0 (coordinates) to in_Position and attribute
+         * index 1 (color) to in_Color */
+        /* Attribute locations must be setup before calling glLinkProgram. */
+        //		 glBindAttribLocation(shaderprogram, 0, "in_Position");
+        //		 glBindAttribLocation(shaderprogram, 1, "in_Color");
+
+        glLinkProgram(_shader_program);
+
+        GLint is_linked = 0;
+        glGetProgramiv(_shader_program, GL_LINK_STATUS, &is_linked);
+        if (is_linked == GL_FALSE) {
+
+            GLint log_length;
+
+            /* Noticed that glGetProgramiv is used to get the length for a
+             * shader program, not glGetShaderiv. */
+            glGetProgramiv(_shader_program, GL_INFO_LOG_LENGTH, &log_length);
+
+            /* The maxLength includes the NULL character */
+            std::vector<char> info_log(static_cast<size_t>(log_length));
+
+            /* Notice that glGetProgramInfoLog, not glGetShaderInfoLog. */
+            glGetProgramInfoLog(_shader_program, log_length, &log_length,
+                                info_log.data());
+
+            std::cerr << info_log.data();
+
+            /* Handle the error in an appropriate way such as displaying a
+             * message or writing to a log file. */
+            /* In this simple program, we'll just leave */
+
+            return false;
+        }
+
+        return true;
+    }
+
+    void use() const { glUseProgram(_shader_program); }
+
+    void destroy() {
+        // potentially the GL driver hasn't been loaded
+        if (is_valid()) {
+
+            // deleting and detaching should happen much earlier
+
+            for (auto s : _shader_stages) {
+                glDeleteShader(s);
+            }
+
+            // only program needs to be deleted
+
+            glDeleteProgram(_shader_program);
+        }
+    }
+
+    int uniform_location(std::string const& name) const {
+        return glGetUniformLocation(_shader_program, name.c_str());
+    }
+
+    // void bind(int location,const matrix3x3f& m)
+    // {
+    // 	glUniformMatrix3fv(location,1,GL_FALSE,m.ptr());
+    // }
+
+    // void bind(int location,const matrix4x4f& m)
+    // {
+    // 	glUniformMatrix4fv(location,1,GL_FALSE,m.ptr());
+    // }
+
+    // void bind(int location,const vector4f& v)
+    // {
+    // 	glUniform4fv(location,1,v.ptr());
+    // }
+
+    void bind(int location, const float& v) { glUniform1f(location, v); }
+
+    void bind(int location, const uint32_t& i) { glUniform1ui(location, i); }
+
+    void bind(int location, const int32_t& i) { glUniform1i(location, i); }
+
+    // void bind(int location,const texture& v)
+    // {
+    //     this->bind(location,(int)v.native_handle());
+
+    // }
+};
+
+Shader::Shader() { impl_ = std::make_unique<impl>(*this); }
+
+Shader::~Shader() {}
+
+bool Shader::ready() const { return impl_->is_valid(); }
+
+Shader& Shader::set_uniform_at_location(int location, float v) {
+    impl_->bind(location, v);
+    return *this;
+}
+
+Shader& Shader::set_uniform_at_location(int location, uint32_t v) {
+    impl_->bind(location, v);
+    return *this;
+}
+
+Shader& Shader::set_uniform_at_location(int location, int32_t v) {
+    impl_->bind(location, v);
+    return *this;
+}
+
+// Shader &Shader::set_uniform_at_location(int location, vector4f const &v)
+// {
+//     impl_->bind(location, v);
+//     return *this;
+// }
+
+// Shader &Shader::set_uniform_at_location(int location, matrix4x4f const &v)
+// {
+//     impl_->bind(location, v);
+//     return *this;
+// }
+
+// Shader &Shader::set_uniform_at_location(int location, texture const &v)
+// {
+//     impl_->bind(location, v);
+//     return *this;
+// }
+
+bool Shader::build() { return impl_->build(); }
+
+void Shader::use() const { impl_->use(); }
+
+void Shader::set_uniforms(uniform_cache_t c) {
+
+#if 0
+        // TODO rewrite in proper C++17
+
+        for (auto &u : c)
+        {
+            // get name
+            std::string name = std::get<0>(u);
+            // get location
+            GLint loc = std::get<2>(u);
+
+            // if lower 0 check for location
+            if (loc < 0)
+            {
+                loc = impl_->uniform_location(name);
+                std::get<2>(u) = loc; // cache location
+            }
+
+            auto var = std::get<1>(u);
+
+            std::visit([this, loc](auto &&arg)
+                       {
+
+            using T = std::decay_t<decltype(arg)>;
+
+            // TODO query the std::variant of uniform_t
+
+			if constexpr ((std::is_same_v<T, vector4f>) ||
+				(std::is_same_v<T, matrix4x4f>) ||
+				(std::is_same_v<T, float>) ) {
+                    set_uniform_at_location( loc, std::forward<T>(arg));
+			} else {
+                debug::e() << "unknown uniform type";
+			} },
+                       var);
+        }
+
+#endif
+}
+
+uint32_t Shader::native_handle() const { return impl_->_shader_program; }
+
+int Shader::uniform_location(const std::string& name) const {
+    return impl_->uniform_location(name);
+}
+
+} // namespace paradiso
diff --git a/src/vendor/glad/CMakeLists.txt b/src/lib/src/vendor/glad/CMakeLists.txt
similarity index 100%
rename from src/vendor/glad/CMakeLists.txt
rename to src/lib/src/vendor/glad/CMakeLists.txt
diff --git a/src/vendor/glad/include/KHR/khrplatform.h b/src/lib/src/vendor/glad/include/KHR/khrplatform.h
similarity index 100%
rename from src/vendor/glad/include/KHR/khrplatform.h
rename to src/lib/src/vendor/glad/include/KHR/khrplatform.h
diff --git a/src/vendor/glad/include/glad/glad.h b/src/lib/src/vendor/glad/include/glad/glad.h
similarity index 100%
rename from src/vendor/glad/include/glad/glad.h
rename to src/lib/src/vendor/glad/include/glad/glad.h
diff --git a/src/vendor/glad/src/CMakeLists.txt b/src/lib/src/vendor/glad/src/CMakeLists.txt
similarity index 100%
rename from src/vendor/glad/src/CMakeLists.txt
rename to src/lib/src/vendor/glad/src/CMakeLists.txt
diff --git a/src/vendor/glad/src/glad.c b/src/lib/src/vendor/glad/src/glad.c
similarity index 100%
rename from src/vendor/glad/src/glad.c
rename to src/lib/src/vendor/glad/src/glad.c
diff --git a/src/vendor/glfw-3.3.8/CMake/GenerateMappings.cmake b/src/lib/src/vendor/glfw-3.3.8/CMake/GenerateMappings.cmake
similarity index 100%
rename from src/vendor/glfw-3.3.8/CMake/GenerateMappings.cmake
rename to src/lib/src/vendor/glfw-3.3.8/CMake/GenerateMappings.cmake
diff --git a/src/vendor/glfw-3.3.8/CMake/MacOSXBundleInfo.plist.in b/src/lib/src/vendor/glfw-3.3.8/CMake/MacOSXBundleInfo.plist.in
similarity index 100%
rename from src/vendor/glfw-3.3.8/CMake/MacOSXBundleInfo.plist.in
rename to src/lib/src/vendor/glfw-3.3.8/CMake/MacOSXBundleInfo.plist.in
diff --git a/src/vendor/glfw-3.3.8/CMake/i686-w64-mingw32-clang.cmake b/src/lib/src/vendor/glfw-3.3.8/CMake/i686-w64-mingw32-clang.cmake
similarity index 100%
rename from src/vendor/glfw-3.3.8/CMake/i686-w64-mingw32-clang.cmake
rename to src/lib/src/vendor/glfw-3.3.8/CMake/i686-w64-mingw32-clang.cmake
diff --git a/src/vendor/glfw-3.3.8/CMake/i686-w64-mingw32.cmake b/src/lib/src/vendor/glfw-3.3.8/CMake/i686-w64-mingw32.cmake
similarity index 100%
rename from src/vendor/glfw-3.3.8/CMake/i686-w64-mingw32.cmake
rename to src/lib/src/vendor/glfw-3.3.8/CMake/i686-w64-mingw32.cmake
diff --git a/src/vendor/glfw-3.3.8/CMake/modules/FindEpollShim.cmake b/src/lib/src/vendor/glfw-3.3.8/CMake/modules/FindEpollShim.cmake
similarity index 100%
rename from src/vendor/glfw-3.3.8/CMake/modules/FindEpollShim.cmake
rename to src/lib/src/vendor/glfw-3.3.8/CMake/modules/FindEpollShim.cmake
diff --git a/src/vendor/glfw-3.3.8/CMake/modules/FindOSMesa.cmake b/src/lib/src/vendor/glfw-3.3.8/CMake/modules/FindOSMesa.cmake
similarity index 100%
rename from src/vendor/glfw-3.3.8/CMake/modules/FindOSMesa.cmake
rename to src/lib/src/vendor/glfw-3.3.8/CMake/modules/FindOSMesa.cmake
diff --git a/src/vendor/glfw-3.3.8/CMake/modules/FindWaylandProtocols.cmake b/src/lib/src/vendor/glfw-3.3.8/CMake/modules/FindWaylandProtocols.cmake
similarity index 100%
rename from src/vendor/glfw-3.3.8/CMake/modules/FindWaylandProtocols.cmake
rename to src/lib/src/vendor/glfw-3.3.8/CMake/modules/FindWaylandProtocols.cmake
diff --git a/src/vendor/glfw-3.3.8/CMake/modules/FindXKBCommon.cmake b/src/lib/src/vendor/glfw-3.3.8/CMake/modules/FindXKBCommon.cmake
similarity index 100%
rename from src/vendor/glfw-3.3.8/CMake/modules/FindXKBCommon.cmake
rename to src/lib/src/vendor/glfw-3.3.8/CMake/modules/FindXKBCommon.cmake
diff --git a/src/vendor/glfw-3.3.8/CMake/x86_64-w64-mingw32-clang.cmake b/src/lib/src/vendor/glfw-3.3.8/CMake/x86_64-w64-mingw32-clang.cmake
similarity index 100%
rename from src/vendor/glfw-3.3.8/CMake/x86_64-w64-mingw32-clang.cmake
rename to src/lib/src/vendor/glfw-3.3.8/CMake/x86_64-w64-mingw32-clang.cmake
diff --git a/src/vendor/glfw-3.3.8/CMake/x86_64-w64-mingw32.cmake b/src/lib/src/vendor/glfw-3.3.8/CMake/x86_64-w64-mingw32.cmake
similarity index 100%
rename from src/vendor/glfw-3.3.8/CMake/x86_64-w64-mingw32.cmake
rename to src/lib/src/vendor/glfw-3.3.8/CMake/x86_64-w64-mingw32.cmake
diff --git a/src/vendor/glfw-3.3.8/CMakeLists.txt b/src/lib/src/vendor/glfw-3.3.8/CMakeLists.txt
similarity index 100%
rename from src/vendor/glfw-3.3.8/CMakeLists.txt
rename to src/lib/src/vendor/glfw-3.3.8/CMakeLists.txt
diff --git a/src/vendor/glfw-3.3.8/CONTRIBUTORS.md b/src/lib/src/vendor/glfw-3.3.8/CONTRIBUTORS.md
similarity index 100%
rename from src/vendor/glfw-3.3.8/CONTRIBUTORS.md
rename to src/lib/src/vendor/glfw-3.3.8/CONTRIBUTORS.md
diff --git a/src/vendor/glfw-3.3.8/LICENSE.md b/src/lib/src/vendor/glfw-3.3.8/LICENSE.md
similarity index 100%
rename from src/vendor/glfw-3.3.8/LICENSE.md
rename to src/lib/src/vendor/glfw-3.3.8/LICENSE.md
diff --git a/src/vendor/glfw-3.3.8/README.md b/src/lib/src/vendor/glfw-3.3.8/README.md
similarity index 100%
rename from src/vendor/glfw-3.3.8/README.md
rename to src/lib/src/vendor/glfw-3.3.8/README.md
diff --git a/src/vendor/glfw-3.3.8/cmake_uninstall.cmake.in b/src/lib/src/vendor/glfw-3.3.8/cmake_uninstall.cmake.in
similarity index 100%
rename from src/vendor/glfw-3.3.8/cmake_uninstall.cmake.in
rename to src/lib/src/vendor/glfw-3.3.8/cmake_uninstall.cmake.in
diff --git a/src/vendor/glfw-3.3.8/deps/getopt.c b/src/lib/src/vendor/glfw-3.3.8/deps/getopt.c
similarity index 100%
rename from src/vendor/glfw-3.3.8/deps/getopt.c
rename to src/lib/src/vendor/glfw-3.3.8/deps/getopt.c
diff --git a/src/vendor/glfw-3.3.8/deps/getopt.h b/src/lib/src/vendor/glfw-3.3.8/deps/getopt.h
similarity index 100%
rename from src/vendor/glfw-3.3.8/deps/getopt.h
rename to src/lib/src/vendor/glfw-3.3.8/deps/getopt.h
diff --git a/src/vendor/glfw-3.3.8/deps/glad/gl.h b/src/lib/src/vendor/glfw-3.3.8/deps/glad/gl.h
similarity index 100%
rename from src/vendor/glfw-3.3.8/deps/glad/gl.h
rename to src/lib/src/vendor/glfw-3.3.8/deps/glad/gl.h
diff --git a/src/vendor/glfw-3.3.8/deps/glad/khrplatform.h b/src/lib/src/vendor/glfw-3.3.8/deps/glad/khrplatform.h
similarity index 100%
rename from src/vendor/glfw-3.3.8/deps/glad/khrplatform.h
rename to src/lib/src/vendor/glfw-3.3.8/deps/glad/khrplatform.h
diff --git a/src/vendor/glfw-3.3.8/deps/glad/vk_platform.h b/src/lib/src/vendor/glfw-3.3.8/deps/glad/vk_platform.h
similarity index 100%
rename from src/vendor/glfw-3.3.8/deps/glad/vk_platform.h
rename to src/lib/src/vendor/glfw-3.3.8/deps/glad/vk_platform.h
diff --git a/src/vendor/glfw-3.3.8/deps/glad/vulkan.h b/src/lib/src/vendor/glfw-3.3.8/deps/glad/vulkan.h
similarity index 100%
rename from src/vendor/glfw-3.3.8/deps/glad/vulkan.h
rename to src/lib/src/vendor/glfw-3.3.8/deps/glad/vulkan.h
diff --git a/src/vendor/glfw-3.3.8/deps/glad_gl.c b/src/lib/src/vendor/glfw-3.3.8/deps/glad_gl.c
similarity index 100%
rename from src/vendor/glfw-3.3.8/deps/glad_gl.c
rename to src/lib/src/vendor/glfw-3.3.8/deps/glad_gl.c
diff --git a/src/vendor/glfw-3.3.8/deps/glad_vulkan.c b/src/lib/src/vendor/glfw-3.3.8/deps/glad_vulkan.c
similarity index 100%
rename from src/vendor/glfw-3.3.8/deps/glad_vulkan.c
rename to src/lib/src/vendor/glfw-3.3.8/deps/glad_vulkan.c
diff --git a/src/vendor/glfw-3.3.8/deps/linmath.h b/src/lib/src/vendor/glfw-3.3.8/deps/linmath.h
similarity index 100%
rename from src/vendor/glfw-3.3.8/deps/linmath.h
rename to src/lib/src/vendor/glfw-3.3.8/deps/linmath.h
diff --git a/src/vendor/glfw-3.3.8/deps/mingw/_mingw_dxhelper.h b/src/lib/src/vendor/glfw-3.3.8/deps/mingw/_mingw_dxhelper.h
similarity index 100%
rename from src/vendor/glfw-3.3.8/deps/mingw/_mingw_dxhelper.h
rename to src/lib/src/vendor/glfw-3.3.8/deps/mingw/_mingw_dxhelper.h
diff --git a/src/vendor/glfw-3.3.8/deps/mingw/dinput.h b/src/lib/src/vendor/glfw-3.3.8/deps/mingw/dinput.h
similarity index 100%
rename from src/vendor/glfw-3.3.8/deps/mingw/dinput.h
rename to src/lib/src/vendor/glfw-3.3.8/deps/mingw/dinput.h
diff --git a/src/vendor/glfw-3.3.8/deps/mingw/xinput.h b/src/lib/src/vendor/glfw-3.3.8/deps/mingw/xinput.h
similarity index 100%
rename from src/vendor/glfw-3.3.8/deps/mingw/xinput.h
rename to src/lib/src/vendor/glfw-3.3.8/deps/mingw/xinput.h
diff --git a/src/vendor/glfw-3.3.8/deps/nuklear.h b/src/lib/src/vendor/glfw-3.3.8/deps/nuklear.h
similarity index 100%
rename from src/vendor/glfw-3.3.8/deps/nuklear.h
rename to src/lib/src/vendor/glfw-3.3.8/deps/nuklear.h
diff --git a/src/vendor/glfw-3.3.8/deps/nuklear_glfw_gl2.h b/src/lib/src/vendor/glfw-3.3.8/deps/nuklear_glfw_gl2.h
similarity index 100%
rename from src/vendor/glfw-3.3.8/deps/nuklear_glfw_gl2.h
rename to src/lib/src/vendor/glfw-3.3.8/deps/nuklear_glfw_gl2.h
diff --git a/src/vendor/glfw-3.3.8/deps/stb_image_write.h b/src/lib/src/vendor/glfw-3.3.8/deps/stb_image_write.h
similarity index 100%
rename from src/vendor/glfw-3.3.8/deps/stb_image_write.h
rename to src/lib/src/vendor/glfw-3.3.8/deps/stb_image_write.h
diff --git a/src/vendor/glfw-3.3.8/deps/tinycthread.c b/src/lib/src/vendor/glfw-3.3.8/deps/tinycthread.c
similarity index 100%
rename from src/vendor/glfw-3.3.8/deps/tinycthread.c
rename to src/lib/src/vendor/glfw-3.3.8/deps/tinycthread.c
diff --git a/src/vendor/glfw-3.3.8/deps/tinycthread.h b/src/lib/src/vendor/glfw-3.3.8/deps/tinycthread.h
similarity index 100%
rename from src/vendor/glfw-3.3.8/deps/tinycthread.h
rename to src/lib/src/vendor/glfw-3.3.8/deps/tinycthread.h
diff --git a/src/vendor/glfw-3.3.8/deps/vs2008/stdint.h b/src/lib/src/vendor/glfw-3.3.8/deps/vs2008/stdint.h
similarity index 100%
rename from src/vendor/glfw-3.3.8/deps/vs2008/stdint.h
rename to src/lib/src/vendor/glfw-3.3.8/deps/vs2008/stdint.h
diff --git a/src/vendor/glfw-3.3.8/docs/CMakeLists.txt b/src/lib/src/vendor/glfw-3.3.8/docs/CMakeLists.txt
similarity index 100%
rename from src/vendor/glfw-3.3.8/docs/CMakeLists.txt
rename to src/lib/src/vendor/glfw-3.3.8/docs/CMakeLists.txt
diff --git a/src/vendor/glfw-3.3.8/docs/CONTRIBUTING.md b/src/lib/src/vendor/glfw-3.3.8/docs/CONTRIBUTING.md
similarity index 100%
rename from src/vendor/glfw-3.3.8/docs/CONTRIBUTING.md
rename to src/lib/src/vendor/glfw-3.3.8/docs/CONTRIBUTING.md
diff --git a/src/vendor/glfw-3.3.8/docs/Doxyfile.in b/src/lib/src/vendor/glfw-3.3.8/docs/Doxyfile.in
similarity index 100%
rename from src/vendor/glfw-3.3.8/docs/Doxyfile.in
rename to src/lib/src/vendor/glfw-3.3.8/docs/Doxyfile.in
diff --git a/src/vendor/glfw-3.3.8/docs/DoxygenLayout.xml b/src/lib/src/vendor/glfw-3.3.8/docs/DoxygenLayout.xml
similarity index 100%
rename from src/vendor/glfw-3.3.8/docs/DoxygenLayout.xml
rename to src/lib/src/vendor/glfw-3.3.8/docs/DoxygenLayout.xml
diff --git a/src/vendor/glfw-3.3.8/docs/SUPPORT.md b/src/lib/src/vendor/glfw-3.3.8/docs/SUPPORT.md
similarity index 100%
rename from src/vendor/glfw-3.3.8/docs/SUPPORT.md
rename to src/lib/src/vendor/glfw-3.3.8/docs/SUPPORT.md
diff --git a/src/vendor/glfw-3.3.8/docs/build.dox b/src/lib/src/vendor/glfw-3.3.8/docs/build.dox
similarity index 100%
rename from src/vendor/glfw-3.3.8/docs/build.dox
rename to src/lib/src/vendor/glfw-3.3.8/docs/build.dox
diff --git a/src/vendor/glfw-3.3.8/docs/compat.dox b/src/lib/src/vendor/glfw-3.3.8/docs/compat.dox
similarity index 100%
rename from src/vendor/glfw-3.3.8/docs/compat.dox
rename to src/lib/src/vendor/glfw-3.3.8/docs/compat.dox
diff --git a/src/vendor/glfw-3.3.8/docs/compile.dox b/src/lib/src/vendor/glfw-3.3.8/docs/compile.dox
similarity index 100%
rename from src/vendor/glfw-3.3.8/docs/compile.dox
rename to src/lib/src/vendor/glfw-3.3.8/docs/compile.dox
diff --git a/src/vendor/glfw-3.3.8/docs/context.dox b/src/lib/src/vendor/glfw-3.3.8/docs/context.dox
similarity index 100%
rename from src/vendor/glfw-3.3.8/docs/context.dox
rename to src/lib/src/vendor/glfw-3.3.8/docs/context.dox
diff --git a/src/vendor/glfw-3.3.8/docs/extra.css b/src/lib/src/vendor/glfw-3.3.8/docs/extra.css
similarity index 100%
rename from src/vendor/glfw-3.3.8/docs/extra.css
rename to src/lib/src/vendor/glfw-3.3.8/docs/extra.css
diff --git a/src/vendor/glfw-3.3.8/docs/extra.css.map b/src/lib/src/vendor/glfw-3.3.8/docs/extra.css.map
similarity index 100%
rename from src/vendor/glfw-3.3.8/docs/extra.css.map
rename to src/lib/src/vendor/glfw-3.3.8/docs/extra.css.map
diff --git a/src/vendor/glfw-3.3.8/docs/extra.scss b/src/lib/src/vendor/glfw-3.3.8/docs/extra.scss
similarity index 100%
rename from src/vendor/glfw-3.3.8/docs/extra.scss
rename to src/lib/src/vendor/glfw-3.3.8/docs/extra.scss
diff --git a/src/vendor/glfw-3.3.8/docs/footer.html b/src/lib/src/vendor/glfw-3.3.8/docs/footer.html
similarity index 100%
rename from src/vendor/glfw-3.3.8/docs/footer.html
rename to src/lib/src/vendor/glfw-3.3.8/docs/footer.html
diff --git a/src/vendor/glfw-3.3.8/docs/header.html b/src/lib/src/vendor/glfw-3.3.8/docs/header.html
similarity index 100%
rename from src/vendor/glfw-3.3.8/docs/header.html
rename to src/lib/src/vendor/glfw-3.3.8/docs/header.html
diff --git a/src/vendor/glfw-3.3.8/docs/html/bc_s.png b/src/lib/src/vendor/glfw-3.3.8/docs/html/bc_s.png
similarity index 100%
rename from src/vendor/glfw-3.3.8/docs/html/bc_s.png
rename to src/lib/src/vendor/glfw-3.3.8/docs/html/bc_s.png
diff --git a/src/vendor/glfw-3.3.8/docs/html/bdwn.png b/src/lib/src/vendor/glfw-3.3.8/docs/html/bdwn.png
similarity index 100%
rename from src/vendor/glfw-3.3.8/docs/html/bdwn.png
rename to src/lib/src/vendor/glfw-3.3.8/docs/html/bdwn.png
diff --git a/src/vendor/glfw-3.3.8/docs/html/build_8dox.html b/src/lib/src/vendor/glfw-3.3.8/docs/html/build_8dox.html
similarity index 100%
rename from src/vendor/glfw-3.3.8/docs/html/build_8dox.html
rename to src/lib/src/vendor/glfw-3.3.8/docs/html/build_8dox.html
diff --git a/src/vendor/glfw-3.3.8/docs/html/build_guide.html b/src/lib/src/vendor/glfw-3.3.8/docs/html/build_guide.html
similarity index 100%
rename from src/vendor/glfw-3.3.8/docs/html/build_guide.html
rename to src/lib/src/vendor/glfw-3.3.8/docs/html/build_guide.html
diff --git a/src/vendor/glfw-3.3.8/docs/html/closed.png b/src/lib/src/vendor/glfw-3.3.8/docs/html/closed.png
similarity index 100%
rename from src/vendor/glfw-3.3.8/docs/html/closed.png
rename to src/lib/src/vendor/glfw-3.3.8/docs/html/closed.png
diff --git a/src/vendor/glfw-3.3.8/docs/html/compat_8dox.html b/src/lib/src/vendor/glfw-3.3.8/docs/html/compat_8dox.html
similarity index 100%
rename from src/vendor/glfw-3.3.8/docs/html/compat_8dox.html
rename to src/lib/src/vendor/glfw-3.3.8/docs/html/compat_8dox.html
diff --git a/src/vendor/glfw-3.3.8/docs/html/compat_guide.html b/src/lib/src/vendor/glfw-3.3.8/docs/html/compat_guide.html
similarity index 100%
rename from src/vendor/glfw-3.3.8/docs/html/compat_guide.html
rename to src/lib/src/vendor/glfw-3.3.8/docs/html/compat_guide.html
diff --git a/src/vendor/glfw-3.3.8/docs/html/compile_8dox.html b/src/lib/src/vendor/glfw-3.3.8/docs/html/compile_8dox.html
similarity index 100%
rename from src/vendor/glfw-3.3.8/docs/html/compile_8dox.html
rename to src/lib/src/vendor/glfw-3.3.8/docs/html/compile_8dox.html
diff --git a/src/vendor/glfw-3.3.8/docs/html/compile_guide.html b/src/lib/src/vendor/glfw-3.3.8/docs/html/compile_guide.html
similarity index 100%
rename from src/vendor/glfw-3.3.8/docs/html/compile_guide.html
rename to src/lib/src/vendor/glfw-3.3.8/docs/html/compile_guide.html
diff --git a/src/vendor/glfw-3.3.8/docs/html/context_8dox.html b/src/lib/src/vendor/glfw-3.3.8/docs/html/context_8dox.html
similarity index 100%
rename from src/vendor/glfw-3.3.8/docs/html/context_8dox.html
rename to src/lib/src/vendor/glfw-3.3.8/docs/html/context_8dox.html
diff --git a/src/vendor/glfw-3.3.8/docs/html/context_guide.html b/src/lib/src/vendor/glfw-3.3.8/docs/html/context_guide.html
similarity index 100%
rename from src/vendor/glfw-3.3.8/docs/html/context_guide.html
rename to src/lib/src/vendor/glfw-3.3.8/docs/html/context_guide.html
diff --git a/src/vendor/glfw-3.3.8/docs/html/deprecated.html b/src/lib/src/vendor/glfw-3.3.8/docs/html/deprecated.html
similarity index 100%
rename from src/vendor/glfw-3.3.8/docs/html/deprecated.html
rename to src/lib/src/vendor/glfw-3.3.8/docs/html/deprecated.html
diff --git a/src/vendor/glfw-3.3.8/docs/html/dir_1dfd43b3952c5bc1ba15d15b12afff7b.html b/src/lib/src/vendor/glfw-3.3.8/docs/html/dir_1dfd43b3952c5bc1ba15d15b12afff7b.html
similarity index 100%
rename from src/vendor/glfw-3.3.8/docs/html/dir_1dfd43b3952c5bc1ba15d15b12afff7b.html
rename to src/lib/src/vendor/glfw-3.3.8/docs/html/dir_1dfd43b3952c5bc1ba15d15b12afff7b.html
diff --git a/src/vendor/glfw-3.3.8/docs/html/dir_4351554941a2744586042c1cf3cf139a.html b/src/lib/src/vendor/glfw-3.3.8/docs/html/dir_4351554941a2744586042c1cf3cf139a.html
similarity index 100%
rename from src/vendor/glfw-3.3.8/docs/html/dir_4351554941a2744586042c1cf3cf139a.html
rename to src/lib/src/vendor/glfw-3.3.8/docs/html/dir_4351554941a2744586042c1cf3cf139a.html
diff --git a/src/vendor/glfw-3.3.8/docs/html/dir_f6ba4c3dca55a8d4e7d63c8235e0ad43.html b/src/lib/src/vendor/glfw-3.3.8/docs/html/dir_f6ba4c3dca55a8d4e7d63c8235e0ad43.html
similarity index 100%
rename from src/vendor/glfw-3.3.8/docs/html/dir_f6ba4c3dca55a8d4e7d63c8235e0ad43.html
rename to src/lib/src/vendor/glfw-3.3.8/docs/html/dir_f6ba4c3dca55a8d4e7d63c8235e0ad43.html
diff --git a/src/vendor/glfw-3.3.8/docs/html/dir_fda32cf7bec00275262cb8799a618f76.html b/src/lib/src/vendor/glfw-3.3.8/docs/html/dir_fda32cf7bec00275262cb8799a618f76.html
similarity index 100%
rename from src/vendor/glfw-3.3.8/docs/html/dir_fda32cf7bec00275262cb8799a618f76.html
rename to src/lib/src/vendor/glfw-3.3.8/docs/html/dir_fda32cf7bec00275262cb8799a618f76.html
diff --git a/src/vendor/glfw-3.3.8/docs/html/doc.png b/src/lib/src/vendor/glfw-3.3.8/docs/html/doc.png
similarity index 100%
rename from src/vendor/glfw-3.3.8/docs/html/doc.png
rename to src/lib/src/vendor/glfw-3.3.8/docs/html/doc.png
diff --git a/src/vendor/glfw-3.3.8/docs/html/doxygen.css b/src/lib/src/vendor/glfw-3.3.8/docs/html/doxygen.css
similarity index 100%
rename from src/vendor/glfw-3.3.8/docs/html/doxygen.css
rename to src/lib/src/vendor/glfw-3.3.8/docs/html/doxygen.css
diff --git a/src/vendor/glfw-3.3.8/docs/html/doxygen.svg b/src/lib/src/vendor/glfw-3.3.8/docs/html/doxygen.svg
similarity index 100%
rename from src/vendor/glfw-3.3.8/docs/html/doxygen.svg
rename to src/lib/src/vendor/glfw-3.3.8/docs/html/doxygen.svg
diff --git a/src/vendor/glfw-3.3.8/docs/html/dynsections.js b/src/lib/src/vendor/glfw-3.3.8/docs/html/dynsections.js
similarity index 100%
rename from src/vendor/glfw-3.3.8/docs/html/dynsections.js
rename to src/lib/src/vendor/glfw-3.3.8/docs/html/dynsections.js
diff --git a/src/vendor/glfw-3.3.8/docs/html/extra.css b/src/lib/src/vendor/glfw-3.3.8/docs/html/extra.css
similarity index 100%
rename from src/vendor/glfw-3.3.8/docs/html/extra.css
rename to src/lib/src/vendor/glfw-3.3.8/docs/html/extra.css
diff --git a/src/vendor/glfw-3.3.8/docs/html/files.html b/src/lib/src/vendor/glfw-3.3.8/docs/html/files.html
similarity index 100%
rename from src/vendor/glfw-3.3.8/docs/html/files.html
rename to src/lib/src/vendor/glfw-3.3.8/docs/html/files.html
diff --git a/src/vendor/glfw-3.3.8/docs/html/folderclosed.png b/src/lib/src/vendor/glfw-3.3.8/docs/html/folderclosed.png
similarity index 100%
rename from src/vendor/glfw-3.3.8/docs/html/folderclosed.png
rename to src/lib/src/vendor/glfw-3.3.8/docs/html/folderclosed.png
diff --git a/src/vendor/glfw-3.3.8/docs/html/folderopen.png b/src/lib/src/vendor/glfw-3.3.8/docs/html/folderopen.png
similarity index 100%
rename from src/vendor/glfw-3.3.8/docs/html/folderopen.png
rename to src/lib/src/vendor/glfw-3.3.8/docs/html/folderopen.png
diff --git a/src/vendor/glfw-3.3.8/docs/html/glfw3_8h.html b/src/lib/src/vendor/glfw-3.3.8/docs/html/glfw3_8h.html
similarity index 100%
rename from src/vendor/glfw-3.3.8/docs/html/glfw3_8h.html
rename to src/lib/src/vendor/glfw-3.3.8/docs/html/glfw3_8h.html
diff --git a/src/vendor/glfw-3.3.8/docs/html/glfw3_8h_source.html b/src/lib/src/vendor/glfw-3.3.8/docs/html/glfw3_8h_source.html
similarity index 100%
rename from src/vendor/glfw-3.3.8/docs/html/glfw3_8h_source.html
rename to src/lib/src/vendor/glfw-3.3.8/docs/html/glfw3_8h_source.html
diff --git a/src/vendor/glfw-3.3.8/docs/html/glfw3native_8h.html b/src/lib/src/vendor/glfw-3.3.8/docs/html/glfw3native_8h.html
similarity index 100%
rename from src/vendor/glfw-3.3.8/docs/html/glfw3native_8h.html
rename to src/lib/src/vendor/glfw-3.3.8/docs/html/glfw3native_8h.html
diff --git a/src/vendor/glfw-3.3.8/docs/html/glfw3native_8h_source.html b/src/lib/src/vendor/glfw-3.3.8/docs/html/glfw3native_8h_source.html
similarity index 100%
rename from src/vendor/glfw-3.3.8/docs/html/glfw3native_8h_source.html
rename to src/lib/src/vendor/glfw-3.3.8/docs/html/glfw3native_8h_source.html
diff --git a/src/vendor/glfw-3.3.8/docs/html/group__buttons.html b/src/lib/src/vendor/glfw-3.3.8/docs/html/group__buttons.html
similarity index 100%
rename from src/vendor/glfw-3.3.8/docs/html/group__buttons.html
rename to src/lib/src/vendor/glfw-3.3.8/docs/html/group__buttons.html
diff --git a/src/vendor/glfw-3.3.8/docs/html/group__context.html b/src/lib/src/vendor/glfw-3.3.8/docs/html/group__context.html
similarity index 100%
rename from src/vendor/glfw-3.3.8/docs/html/group__context.html
rename to src/lib/src/vendor/glfw-3.3.8/docs/html/group__context.html
diff --git a/src/vendor/glfw-3.3.8/docs/html/group__errors.html b/src/lib/src/vendor/glfw-3.3.8/docs/html/group__errors.html
similarity index 100%
rename from src/vendor/glfw-3.3.8/docs/html/group__errors.html
rename to src/lib/src/vendor/glfw-3.3.8/docs/html/group__errors.html
diff --git a/src/vendor/glfw-3.3.8/docs/html/group__gamepad__axes.html b/src/lib/src/vendor/glfw-3.3.8/docs/html/group__gamepad__axes.html
similarity index 100%
rename from src/vendor/glfw-3.3.8/docs/html/group__gamepad__axes.html
rename to src/lib/src/vendor/glfw-3.3.8/docs/html/group__gamepad__axes.html
diff --git a/src/vendor/glfw-3.3.8/docs/html/group__gamepad__buttons.html b/src/lib/src/vendor/glfw-3.3.8/docs/html/group__gamepad__buttons.html
similarity index 100%
rename from src/vendor/glfw-3.3.8/docs/html/group__gamepad__buttons.html
rename to src/lib/src/vendor/glfw-3.3.8/docs/html/group__gamepad__buttons.html
diff --git a/src/vendor/glfw-3.3.8/docs/html/group__hat__state.html b/src/lib/src/vendor/glfw-3.3.8/docs/html/group__hat__state.html
similarity index 100%
rename from src/vendor/glfw-3.3.8/docs/html/group__hat__state.html
rename to src/lib/src/vendor/glfw-3.3.8/docs/html/group__hat__state.html
diff --git a/src/vendor/glfw-3.3.8/docs/html/group__init.html b/src/lib/src/vendor/glfw-3.3.8/docs/html/group__init.html
similarity index 100%
rename from src/vendor/glfw-3.3.8/docs/html/group__init.html
rename to src/lib/src/vendor/glfw-3.3.8/docs/html/group__init.html
diff --git a/src/vendor/glfw-3.3.8/docs/html/group__input.html b/src/lib/src/vendor/glfw-3.3.8/docs/html/group__input.html
similarity index 100%
rename from src/vendor/glfw-3.3.8/docs/html/group__input.html
rename to src/lib/src/vendor/glfw-3.3.8/docs/html/group__input.html
diff --git a/src/vendor/glfw-3.3.8/docs/html/group__joysticks.html b/src/lib/src/vendor/glfw-3.3.8/docs/html/group__joysticks.html
similarity index 100%
rename from src/vendor/glfw-3.3.8/docs/html/group__joysticks.html
rename to src/lib/src/vendor/glfw-3.3.8/docs/html/group__joysticks.html
diff --git a/src/vendor/glfw-3.3.8/docs/html/group__keys.html b/src/lib/src/vendor/glfw-3.3.8/docs/html/group__keys.html
similarity index 100%
rename from src/vendor/glfw-3.3.8/docs/html/group__keys.html
rename to src/lib/src/vendor/glfw-3.3.8/docs/html/group__keys.html
diff --git a/src/vendor/glfw-3.3.8/docs/html/group__mods.html b/src/lib/src/vendor/glfw-3.3.8/docs/html/group__mods.html
similarity index 100%
rename from src/vendor/glfw-3.3.8/docs/html/group__mods.html
rename to src/lib/src/vendor/glfw-3.3.8/docs/html/group__mods.html
diff --git a/src/vendor/glfw-3.3.8/docs/html/group__monitor.html b/src/lib/src/vendor/glfw-3.3.8/docs/html/group__monitor.html
similarity index 100%
rename from src/vendor/glfw-3.3.8/docs/html/group__monitor.html
rename to src/lib/src/vendor/glfw-3.3.8/docs/html/group__monitor.html
diff --git a/src/vendor/glfw-3.3.8/docs/html/group__native.html b/src/lib/src/vendor/glfw-3.3.8/docs/html/group__native.html
similarity index 100%
rename from src/vendor/glfw-3.3.8/docs/html/group__native.html
rename to src/lib/src/vendor/glfw-3.3.8/docs/html/group__native.html
diff --git a/src/vendor/glfw-3.3.8/docs/html/group__shapes.html b/src/lib/src/vendor/glfw-3.3.8/docs/html/group__shapes.html
similarity index 100%
rename from src/vendor/glfw-3.3.8/docs/html/group__shapes.html
rename to src/lib/src/vendor/glfw-3.3.8/docs/html/group__shapes.html
diff --git a/src/vendor/glfw-3.3.8/docs/html/group__vulkan.html b/src/lib/src/vendor/glfw-3.3.8/docs/html/group__vulkan.html
similarity index 100%
rename from src/vendor/glfw-3.3.8/docs/html/group__vulkan.html
rename to src/lib/src/vendor/glfw-3.3.8/docs/html/group__vulkan.html
diff --git a/src/vendor/glfw-3.3.8/docs/html/group__window.html b/src/lib/src/vendor/glfw-3.3.8/docs/html/group__window.html
similarity index 100%
rename from src/vendor/glfw-3.3.8/docs/html/group__window.html
rename to src/lib/src/vendor/glfw-3.3.8/docs/html/group__window.html
diff --git a/src/vendor/glfw-3.3.8/docs/html/index.html b/src/lib/src/vendor/glfw-3.3.8/docs/html/index.html
similarity index 100%
rename from src/vendor/glfw-3.3.8/docs/html/index.html
rename to src/lib/src/vendor/glfw-3.3.8/docs/html/index.html
diff --git a/src/vendor/glfw-3.3.8/docs/html/input_8dox.html b/src/lib/src/vendor/glfw-3.3.8/docs/html/input_8dox.html
similarity index 100%
rename from src/vendor/glfw-3.3.8/docs/html/input_8dox.html
rename to src/lib/src/vendor/glfw-3.3.8/docs/html/input_8dox.html
diff --git a/src/vendor/glfw-3.3.8/docs/html/input_guide.html b/src/lib/src/vendor/glfw-3.3.8/docs/html/input_guide.html
similarity index 100%
rename from src/vendor/glfw-3.3.8/docs/html/input_guide.html
rename to src/lib/src/vendor/glfw-3.3.8/docs/html/input_guide.html
diff --git a/src/vendor/glfw-3.3.8/docs/html/internal_8dox.html b/src/lib/src/vendor/glfw-3.3.8/docs/html/internal_8dox.html
similarity index 100%
rename from src/vendor/glfw-3.3.8/docs/html/internal_8dox.html
rename to src/lib/src/vendor/glfw-3.3.8/docs/html/internal_8dox.html
diff --git a/src/vendor/glfw-3.3.8/docs/html/internals_guide.html b/src/lib/src/vendor/glfw-3.3.8/docs/html/internals_guide.html
similarity index 100%
rename from src/vendor/glfw-3.3.8/docs/html/internals_guide.html
rename to src/lib/src/vendor/glfw-3.3.8/docs/html/internals_guide.html
diff --git a/src/vendor/glfw-3.3.8/docs/html/intro_8dox.html b/src/lib/src/vendor/glfw-3.3.8/docs/html/intro_8dox.html
similarity index 100%
rename from src/vendor/glfw-3.3.8/docs/html/intro_8dox.html
rename to src/lib/src/vendor/glfw-3.3.8/docs/html/intro_8dox.html
diff --git a/src/vendor/glfw-3.3.8/docs/html/intro_guide.html b/src/lib/src/vendor/glfw-3.3.8/docs/html/intro_guide.html
similarity index 100%
rename from src/vendor/glfw-3.3.8/docs/html/intro_guide.html
rename to src/lib/src/vendor/glfw-3.3.8/docs/html/intro_guide.html
diff --git a/src/vendor/glfw-3.3.8/docs/html/jquery.js b/src/lib/src/vendor/glfw-3.3.8/docs/html/jquery.js
similarity index 100%
rename from src/vendor/glfw-3.3.8/docs/html/jquery.js
rename to src/lib/src/vendor/glfw-3.3.8/docs/html/jquery.js
diff --git a/src/vendor/glfw-3.3.8/docs/html/main_8dox.html b/src/lib/src/vendor/glfw-3.3.8/docs/html/main_8dox.html
similarity index 100%
rename from src/vendor/glfw-3.3.8/docs/html/main_8dox.html
rename to src/lib/src/vendor/glfw-3.3.8/docs/html/main_8dox.html
diff --git a/src/vendor/glfw-3.3.8/docs/html/menu.js b/src/lib/src/vendor/glfw-3.3.8/docs/html/menu.js
similarity index 100%
rename from src/vendor/glfw-3.3.8/docs/html/menu.js
rename to src/lib/src/vendor/glfw-3.3.8/docs/html/menu.js
diff --git a/src/vendor/glfw-3.3.8/docs/html/menudata.js b/src/lib/src/vendor/glfw-3.3.8/docs/html/menudata.js
similarity index 100%
rename from src/vendor/glfw-3.3.8/docs/html/menudata.js
rename to src/lib/src/vendor/glfw-3.3.8/docs/html/menudata.js
diff --git a/src/vendor/glfw-3.3.8/docs/html/modules.html b/src/lib/src/vendor/glfw-3.3.8/docs/html/modules.html
similarity index 100%
rename from src/vendor/glfw-3.3.8/docs/html/modules.html
rename to src/lib/src/vendor/glfw-3.3.8/docs/html/modules.html
diff --git a/src/vendor/glfw-3.3.8/docs/html/monitor_8dox.html b/src/lib/src/vendor/glfw-3.3.8/docs/html/monitor_8dox.html
similarity index 100%
rename from src/vendor/glfw-3.3.8/docs/html/monitor_8dox.html
rename to src/lib/src/vendor/glfw-3.3.8/docs/html/monitor_8dox.html
diff --git a/src/vendor/glfw-3.3.8/docs/html/monitor_guide.html b/src/lib/src/vendor/glfw-3.3.8/docs/html/monitor_guide.html
similarity index 100%
rename from src/vendor/glfw-3.3.8/docs/html/monitor_guide.html
rename to src/lib/src/vendor/glfw-3.3.8/docs/html/monitor_guide.html
diff --git a/src/vendor/glfw-3.3.8/docs/html/moving_8dox.html b/src/lib/src/vendor/glfw-3.3.8/docs/html/moving_8dox.html
similarity index 100%
rename from src/vendor/glfw-3.3.8/docs/html/moving_8dox.html
rename to src/lib/src/vendor/glfw-3.3.8/docs/html/moving_8dox.html
diff --git a/src/vendor/glfw-3.3.8/docs/html/moving_guide.html b/src/lib/src/vendor/glfw-3.3.8/docs/html/moving_guide.html
similarity index 100%
rename from src/vendor/glfw-3.3.8/docs/html/moving_guide.html
rename to src/lib/src/vendor/glfw-3.3.8/docs/html/moving_guide.html
diff --git a/src/vendor/glfw-3.3.8/docs/html/nav_f.png b/src/lib/src/vendor/glfw-3.3.8/docs/html/nav_f.png
similarity index 100%
rename from src/vendor/glfw-3.3.8/docs/html/nav_f.png
rename to src/lib/src/vendor/glfw-3.3.8/docs/html/nav_f.png
diff --git a/src/vendor/glfw-3.3.8/docs/html/nav_g.png b/src/lib/src/vendor/glfw-3.3.8/docs/html/nav_g.png
similarity index 100%
rename from src/vendor/glfw-3.3.8/docs/html/nav_g.png
rename to src/lib/src/vendor/glfw-3.3.8/docs/html/nav_g.png
diff --git a/src/vendor/glfw-3.3.8/docs/html/nav_h.png b/src/lib/src/vendor/glfw-3.3.8/docs/html/nav_h.png
similarity index 100%
rename from src/vendor/glfw-3.3.8/docs/html/nav_h.png
rename to src/lib/src/vendor/glfw-3.3.8/docs/html/nav_h.png
diff --git a/src/vendor/glfw-3.3.8/docs/html/news.html b/src/lib/src/vendor/glfw-3.3.8/docs/html/news.html
similarity index 100%
rename from src/vendor/glfw-3.3.8/docs/html/news.html
rename to src/lib/src/vendor/glfw-3.3.8/docs/html/news.html
diff --git a/src/vendor/glfw-3.3.8/docs/html/news_8dox.html b/src/lib/src/vendor/glfw-3.3.8/docs/html/news_8dox.html
similarity index 100%
rename from src/vendor/glfw-3.3.8/docs/html/news_8dox.html
rename to src/lib/src/vendor/glfw-3.3.8/docs/html/news_8dox.html
diff --git a/src/vendor/glfw-3.3.8/docs/html/open.png b/src/lib/src/vendor/glfw-3.3.8/docs/html/open.png
similarity index 100%
rename from src/vendor/glfw-3.3.8/docs/html/open.png
rename to src/lib/src/vendor/glfw-3.3.8/docs/html/open.png
diff --git a/src/vendor/glfw-3.3.8/docs/html/pages.html b/src/lib/src/vendor/glfw-3.3.8/docs/html/pages.html
similarity index 100%
rename from src/vendor/glfw-3.3.8/docs/html/pages.html
rename to src/lib/src/vendor/glfw-3.3.8/docs/html/pages.html
diff --git a/src/vendor/glfw-3.3.8/docs/html/quick_8dox.html b/src/lib/src/vendor/glfw-3.3.8/docs/html/quick_8dox.html
similarity index 100%
rename from src/vendor/glfw-3.3.8/docs/html/quick_8dox.html
rename to src/lib/src/vendor/glfw-3.3.8/docs/html/quick_8dox.html
diff --git a/src/vendor/glfw-3.3.8/docs/html/quick_guide.html b/src/lib/src/vendor/glfw-3.3.8/docs/html/quick_guide.html
similarity index 100%
rename from src/vendor/glfw-3.3.8/docs/html/quick_guide.html
rename to src/lib/src/vendor/glfw-3.3.8/docs/html/quick_guide.html
diff --git a/src/vendor/glfw-3.3.8/docs/html/search/all_0.html b/src/lib/src/vendor/glfw-3.3.8/docs/html/search/all_0.html
similarity index 100%
rename from src/vendor/glfw-3.3.8/docs/html/search/all_0.html
rename to src/lib/src/vendor/glfw-3.3.8/docs/html/search/all_0.html
diff --git a/src/vendor/glfw-3.3.8/docs/html/search/all_0.js b/src/lib/src/vendor/glfw-3.3.8/docs/html/search/all_0.js
similarity index 100%
rename from src/vendor/glfw-3.3.8/docs/html/search/all_0.js
rename to src/lib/src/vendor/glfw-3.3.8/docs/html/search/all_0.js
diff --git a/src/vendor/glfw-3.3.8/docs/html/search/all_1.html b/src/lib/src/vendor/glfw-3.3.8/docs/html/search/all_1.html
similarity index 100%
rename from src/vendor/glfw-3.3.8/docs/html/search/all_1.html
rename to src/lib/src/vendor/glfw-3.3.8/docs/html/search/all_1.html
diff --git a/src/vendor/glfw-3.3.8/docs/html/search/all_1.js b/src/lib/src/vendor/glfw-3.3.8/docs/html/search/all_1.js
similarity index 100%
rename from src/vendor/glfw-3.3.8/docs/html/search/all_1.js
rename to src/lib/src/vendor/glfw-3.3.8/docs/html/search/all_1.js
diff --git a/src/vendor/glfw-3.3.8/docs/html/search/all_10.html b/src/lib/src/vendor/glfw-3.3.8/docs/html/search/all_10.html
similarity index 100%
rename from src/vendor/glfw-3.3.8/docs/html/search/all_10.html
rename to src/lib/src/vendor/glfw-3.3.8/docs/html/search/all_10.html
diff --git a/src/vendor/glfw-3.3.8/docs/html/search/all_10.js b/src/lib/src/vendor/glfw-3.3.8/docs/html/search/all_10.js
similarity index 100%
rename from src/vendor/glfw-3.3.8/docs/html/search/all_10.js
rename to src/lib/src/vendor/glfw-3.3.8/docs/html/search/all_10.js
diff --git a/src/vendor/glfw-3.3.8/docs/html/search/all_11.html b/src/lib/src/vendor/glfw-3.3.8/docs/html/search/all_11.html
similarity index 100%
rename from src/vendor/glfw-3.3.8/docs/html/search/all_11.html
rename to src/lib/src/vendor/glfw-3.3.8/docs/html/search/all_11.html
diff --git a/src/vendor/glfw-3.3.8/docs/html/search/all_11.js b/src/lib/src/vendor/glfw-3.3.8/docs/html/search/all_11.js
similarity index 100%
rename from src/vendor/glfw-3.3.8/docs/html/search/all_11.js
rename to src/lib/src/vendor/glfw-3.3.8/docs/html/search/all_11.js
diff --git a/src/vendor/glfw-3.3.8/docs/html/search/all_2.html b/src/lib/src/vendor/glfw-3.3.8/docs/html/search/all_2.html
similarity index 100%
rename from src/vendor/glfw-3.3.8/docs/html/search/all_2.html
rename to src/lib/src/vendor/glfw-3.3.8/docs/html/search/all_2.html
diff --git a/src/vendor/glfw-3.3.8/docs/html/search/all_2.js b/src/lib/src/vendor/glfw-3.3.8/docs/html/search/all_2.js
similarity index 100%
rename from src/vendor/glfw-3.3.8/docs/html/search/all_2.js
rename to src/lib/src/vendor/glfw-3.3.8/docs/html/search/all_2.js
diff --git a/src/vendor/glfw-3.3.8/docs/html/search/all_3.html b/src/lib/src/vendor/glfw-3.3.8/docs/html/search/all_3.html
similarity index 100%
rename from src/vendor/glfw-3.3.8/docs/html/search/all_3.html
rename to src/lib/src/vendor/glfw-3.3.8/docs/html/search/all_3.html
diff --git a/src/vendor/glfw-3.3.8/docs/html/search/all_3.js b/src/lib/src/vendor/glfw-3.3.8/docs/html/search/all_3.js
similarity index 100%
rename from src/vendor/glfw-3.3.8/docs/html/search/all_3.js
rename to src/lib/src/vendor/glfw-3.3.8/docs/html/search/all_3.js
diff --git a/src/vendor/glfw-3.3.8/docs/html/search/all_4.html b/src/lib/src/vendor/glfw-3.3.8/docs/html/search/all_4.html
similarity index 100%
rename from src/vendor/glfw-3.3.8/docs/html/search/all_4.html
rename to src/lib/src/vendor/glfw-3.3.8/docs/html/search/all_4.html
diff --git a/src/vendor/glfw-3.3.8/docs/html/search/all_4.js b/src/lib/src/vendor/glfw-3.3.8/docs/html/search/all_4.js
similarity index 100%
rename from src/vendor/glfw-3.3.8/docs/html/search/all_4.js
rename to src/lib/src/vendor/glfw-3.3.8/docs/html/search/all_4.js
diff --git a/src/vendor/glfw-3.3.8/docs/html/search/all_5.html b/src/lib/src/vendor/glfw-3.3.8/docs/html/search/all_5.html
similarity index 100%
rename from src/vendor/glfw-3.3.8/docs/html/search/all_5.html
rename to src/lib/src/vendor/glfw-3.3.8/docs/html/search/all_5.html
diff --git a/src/vendor/glfw-3.3.8/docs/html/search/all_5.js b/src/lib/src/vendor/glfw-3.3.8/docs/html/search/all_5.js
similarity index 100%
rename from src/vendor/glfw-3.3.8/docs/html/search/all_5.js
rename to src/lib/src/vendor/glfw-3.3.8/docs/html/search/all_5.js
diff --git a/src/vendor/glfw-3.3.8/docs/html/search/all_6.html b/src/lib/src/vendor/glfw-3.3.8/docs/html/search/all_6.html
similarity index 100%
rename from src/vendor/glfw-3.3.8/docs/html/search/all_6.html
rename to src/lib/src/vendor/glfw-3.3.8/docs/html/search/all_6.html
diff --git a/src/vendor/glfw-3.3.8/docs/html/search/all_6.js b/src/lib/src/vendor/glfw-3.3.8/docs/html/search/all_6.js
similarity index 100%
rename from src/vendor/glfw-3.3.8/docs/html/search/all_6.js
rename to src/lib/src/vendor/glfw-3.3.8/docs/html/search/all_6.js
diff --git a/src/vendor/glfw-3.3.8/docs/html/search/all_7.html b/src/lib/src/vendor/glfw-3.3.8/docs/html/search/all_7.html
similarity index 100%
rename from src/vendor/glfw-3.3.8/docs/html/search/all_7.html
rename to src/lib/src/vendor/glfw-3.3.8/docs/html/search/all_7.html
diff --git a/src/vendor/glfw-3.3.8/docs/html/search/all_7.js b/src/lib/src/vendor/glfw-3.3.8/docs/html/search/all_7.js
similarity index 100%
rename from src/vendor/glfw-3.3.8/docs/html/search/all_7.js
rename to src/lib/src/vendor/glfw-3.3.8/docs/html/search/all_7.js
diff --git a/src/vendor/glfw-3.3.8/docs/html/search/all_8.html b/src/lib/src/vendor/glfw-3.3.8/docs/html/search/all_8.html
similarity index 100%
rename from src/vendor/glfw-3.3.8/docs/html/search/all_8.html
rename to src/lib/src/vendor/glfw-3.3.8/docs/html/search/all_8.html
diff --git a/src/vendor/glfw-3.3.8/docs/html/search/all_8.js b/src/lib/src/vendor/glfw-3.3.8/docs/html/search/all_8.js
similarity index 100%
rename from src/vendor/glfw-3.3.8/docs/html/search/all_8.js
rename to src/lib/src/vendor/glfw-3.3.8/docs/html/search/all_8.js
diff --git a/src/vendor/glfw-3.3.8/docs/html/search/all_9.html b/src/lib/src/vendor/glfw-3.3.8/docs/html/search/all_9.html
similarity index 100%
rename from src/vendor/glfw-3.3.8/docs/html/search/all_9.html
rename to src/lib/src/vendor/glfw-3.3.8/docs/html/search/all_9.html
diff --git a/src/vendor/glfw-3.3.8/docs/html/search/all_9.js b/src/lib/src/vendor/glfw-3.3.8/docs/html/search/all_9.js
similarity index 100%
rename from src/vendor/glfw-3.3.8/docs/html/search/all_9.js
rename to src/lib/src/vendor/glfw-3.3.8/docs/html/search/all_9.js
diff --git a/src/vendor/glfw-3.3.8/docs/html/search/all_a.html b/src/lib/src/vendor/glfw-3.3.8/docs/html/search/all_a.html
similarity index 100%
rename from src/vendor/glfw-3.3.8/docs/html/search/all_a.html
rename to src/lib/src/vendor/glfw-3.3.8/docs/html/search/all_a.html
diff --git a/src/vendor/glfw-3.3.8/docs/html/search/all_a.js b/src/lib/src/vendor/glfw-3.3.8/docs/html/search/all_a.js
similarity index 100%
rename from src/vendor/glfw-3.3.8/docs/html/search/all_a.js
rename to src/lib/src/vendor/glfw-3.3.8/docs/html/search/all_a.js
diff --git a/src/vendor/glfw-3.3.8/docs/html/search/all_b.html b/src/lib/src/vendor/glfw-3.3.8/docs/html/search/all_b.html
similarity index 100%
rename from src/vendor/glfw-3.3.8/docs/html/search/all_b.html
rename to src/lib/src/vendor/glfw-3.3.8/docs/html/search/all_b.html
diff --git a/src/vendor/glfw-3.3.8/docs/html/search/all_b.js b/src/lib/src/vendor/glfw-3.3.8/docs/html/search/all_b.js
similarity index 100%
rename from src/vendor/glfw-3.3.8/docs/html/search/all_b.js
rename to src/lib/src/vendor/glfw-3.3.8/docs/html/search/all_b.js
diff --git a/src/vendor/glfw-3.3.8/docs/html/search/all_c.html b/src/lib/src/vendor/glfw-3.3.8/docs/html/search/all_c.html
similarity index 100%
rename from src/vendor/glfw-3.3.8/docs/html/search/all_c.html
rename to src/lib/src/vendor/glfw-3.3.8/docs/html/search/all_c.html
diff --git a/src/vendor/glfw-3.3.8/docs/html/search/all_c.js b/src/lib/src/vendor/glfw-3.3.8/docs/html/search/all_c.js
similarity index 100%
rename from src/vendor/glfw-3.3.8/docs/html/search/all_c.js
rename to src/lib/src/vendor/glfw-3.3.8/docs/html/search/all_c.js
diff --git a/src/vendor/glfw-3.3.8/docs/html/search/all_d.html b/src/lib/src/vendor/glfw-3.3.8/docs/html/search/all_d.html
similarity index 100%
rename from src/vendor/glfw-3.3.8/docs/html/search/all_d.html
rename to src/lib/src/vendor/glfw-3.3.8/docs/html/search/all_d.html
diff --git a/src/vendor/glfw-3.3.8/docs/html/search/all_d.js b/src/lib/src/vendor/glfw-3.3.8/docs/html/search/all_d.js
similarity index 100%
rename from src/vendor/glfw-3.3.8/docs/html/search/all_d.js
rename to src/lib/src/vendor/glfw-3.3.8/docs/html/search/all_d.js
diff --git a/src/vendor/glfw-3.3.8/docs/html/search/all_e.html b/src/lib/src/vendor/glfw-3.3.8/docs/html/search/all_e.html
similarity index 100%
rename from src/vendor/glfw-3.3.8/docs/html/search/all_e.html
rename to src/lib/src/vendor/glfw-3.3.8/docs/html/search/all_e.html
diff --git a/src/vendor/glfw-3.3.8/docs/html/search/all_e.js b/src/lib/src/vendor/glfw-3.3.8/docs/html/search/all_e.js
similarity index 100%
rename from src/vendor/glfw-3.3.8/docs/html/search/all_e.js
rename to src/lib/src/vendor/glfw-3.3.8/docs/html/search/all_e.js
diff --git a/src/vendor/glfw-3.3.8/docs/html/search/all_f.html b/src/lib/src/vendor/glfw-3.3.8/docs/html/search/all_f.html
similarity index 100%
rename from src/vendor/glfw-3.3.8/docs/html/search/all_f.html
rename to src/lib/src/vendor/glfw-3.3.8/docs/html/search/all_f.html
diff --git a/src/vendor/glfw-3.3.8/docs/html/search/all_f.js b/src/lib/src/vendor/glfw-3.3.8/docs/html/search/all_f.js
similarity index 100%
rename from src/vendor/glfw-3.3.8/docs/html/search/all_f.js
rename to src/lib/src/vendor/glfw-3.3.8/docs/html/search/all_f.js
diff --git a/src/vendor/glfw-3.3.8/docs/html/search/classes_0.html b/src/lib/src/vendor/glfw-3.3.8/docs/html/search/classes_0.html
similarity index 100%
rename from src/vendor/glfw-3.3.8/docs/html/search/classes_0.html
rename to src/lib/src/vendor/glfw-3.3.8/docs/html/search/classes_0.html
diff --git a/src/vendor/glfw-3.3.8/docs/html/search/classes_0.js b/src/lib/src/vendor/glfw-3.3.8/docs/html/search/classes_0.js
similarity index 100%
rename from src/vendor/glfw-3.3.8/docs/html/search/classes_0.js
rename to src/lib/src/vendor/glfw-3.3.8/docs/html/search/classes_0.js
diff --git a/src/vendor/glfw-3.3.8/docs/html/search/close.svg b/src/lib/src/vendor/glfw-3.3.8/docs/html/search/close.svg
similarity index 100%
rename from src/vendor/glfw-3.3.8/docs/html/search/close.svg
rename to src/lib/src/vendor/glfw-3.3.8/docs/html/search/close.svg
diff --git a/src/vendor/glfw-3.3.8/docs/html/search/defines_0.html b/src/lib/src/vendor/glfw-3.3.8/docs/html/search/defines_0.html
similarity index 100%
rename from src/vendor/glfw-3.3.8/docs/html/search/defines_0.html
rename to src/lib/src/vendor/glfw-3.3.8/docs/html/search/defines_0.html
diff --git a/src/vendor/glfw-3.3.8/docs/html/search/defines_0.js b/src/lib/src/vendor/glfw-3.3.8/docs/html/search/defines_0.js
similarity index 100%
rename from src/vendor/glfw-3.3.8/docs/html/search/defines_0.js
rename to src/lib/src/vendor/glfw-3.3.8/docs/html/search/defines_0.js
diff --git a/src/vendor/glfw-3.3.8/docs/html/search/files_0.html b/src/lib/src/vendor/glfw-3.3.8/docs/html/search/files_0.html
similarity index 100%
rename from src/vendor/glfw-3.3.8/docs/html/search/files_0.html
rename to src/lib/src/vendor/glfw-3.3.8/docs/html/search/files_0.html
diff --git a/src/vendor/glfw-3.3.8/docs/html/search/files_0.js b/src/lib/src/vendor/glfw-3.3.8/docs/html/search/files_0.js
similarity index 100%
rename from src/vendor/glfw-3.3.8/docs/html/search/files_0.js
rename to src/lib/src/vendor/glfw-3.3.8/docs/html/search/files_0.js
diff --git a/src/vendor/glfw-3.3.8/docs/html/search/files_1.html b/src/lib/src/vendor/glfw-3.3.8/docs/html/search/files_1.html
similarity index 100%
rename from src/vendor/glfw-3.3.8/docs/html/search/files_1.html
rename to src/lib/src/vendor/glfw-3.3.8/docs/html/search/files_1.html
diff --git a/src/vendor/glfw-3.3.8/docs/html/search/files_1.js b/src/lib/src/vendor/glfw-3.3.8/docs/html/search/files_1.js
similarity index 100%
rename from src/vendor/glfw-3.3.8/docs/html/search/files_1.js
rename to src/lib/src/vendor/glfw-3.3.8/docs/html/search/files_1.js
diff --git a/src/vendor/glfw-3.3.8/docs/html/search/files_2.html b/src/lib/src/vendor/glfw-3.3.8/docs/html/search/files_2.html
similarity index 100%
rename from src/vendor/glfw-3.3.8/docs/html/search/files_2.html
rename to src/lib/src/vendor/glfw-3.3.8/docs/html/search/files_2.html
diff --git a/src/vendor/glfw-3.3.8/docs/html/search/files_2.js b/src/lib/src/vendor/glfw-3.3.8/docs/html/search/files_2.js
similarity index 100%
rename from src/vendor/glfw-3.3.8/docs/html/search/files_2.js
rename to src/lib/src/vendor/glfw-3.3.8/docs/html/search/files_2.js
diff --git a/src/vendor/glfw-3.3.8/docs/html/search/files_3.html b/src/lib/src/vendor/glfw-3.3.8/docs/html/search/files_3.html
similarity index 100%
rename from src/vendor/glfw-3.3.8/docs/html/search/files_3.html
rename to src/lib/src/vendor/glfw-3.3.8/docs/html/search/files_3.html
diff --git a/src/vendor/glfw-3.3.8/docs/html/search/files_3.js b/src/lib/src/vendor/glfw-3.3.8/docs/html/search/files_3.js
similarity index 100%
rename from src/vendor/glfw-3.3.8/docs/html/search/files_3.js
rename to src/lib/src/vendor/glfw-3.3.8/docs/html/search/files_3.js
diff --git a/src/vendor/glfw-3.3.8/docs/html/search/files_4.html b/src/lib/src/vendor/glfw-3.3.8/docs/html/search/files_4.html
similarity index 100%
rename from src/vendor/glfw-3.3.8/docs/html/search/files_4.html
rename to src/lib/src/vendor/glfw-3.3.8/docs/html/search/files_4.html
diff --git a/src/vendor/glfw-3.3.8/docs/html/search/files_4.js b/src/lib/src/vendor/glfw-3.3.8/docs/html/search/files_4.js
similarity index 100%
rename from src/vendor/glfw-3.3.8/docs/html/search/files_4.js
rename to src/lib/src/vendor/glfw-3.3.8/docs/html/search/files_4.js
diff --git a/src/vendor/glfw-3.3.8/docs/html/search/files_5.html b/src/lib/src/vendor/glfw-3.3.8/docs/html/search/files_5.html
similarity index 100%
rename from src/vendor/glfw-3.3.8/docs/html/search/files_5.html
rename to src/lib/src/vendor/glfw-3.3.8/docs/html/search/files_5.html
diff --git a/src/vendor/glfw-3.3.8/docs/html/search/files_5.js b/src/lib/src/vendor/glfw-3.3.8/docs/html/search/files_5.js
similarity index 100%
rename from src/vendor/glfw-3.3.8/docs/html/search/files_5.js
rename to src/lib/src/vendor/glfw-3.3.8/docs/html/search/files_5.js
diff --git a/src/vendor/glfw-3.3.8/docs/html/search/files_6.html b/src/lib/src/vendor/glfw-3.3.8/docs/html/search/files_6.html
similarity index 100%
rename from src/vendor/glfw-3.3.8/docs/html/search/files_6.html
rename to src/lib/src/vendor/glfw-3.3.8/docs/html/search/files_6.html
diff --git a/src/vendor/glfw-3.3.8/docs/html/search/files_6.js b/src/lib/src/vendor/glfw-3.3.8/docs/html/search/files_6.js
similarity index 100%
rename from src/vendor/glfw-3.3.8/docs/html/search/files_6.js
rename to src/lib/src/vendor/glfw-3.3.8/docs/html/search/files_6.js
diff --git a/src/vendor/glfw-3.3.8/docs/html/search/files_7.html b/src/lib/src/vendor/glfw-3.3.8/docs/html/search/files_7.html
similarity index 100%
rename from src/vendor/glfw-3.3.8/docs/html/search/files_7.html
rename to src/lib/src/vendor/glfw-3.3.8/docs/html/search/files_7.html
diff --git a/src/vendor/glfw-3.3.8/docs/html/search/files_7.js b/src/lib/src/vendor/glfw-3.3.8/docs/html/search/files_7.js
similarity index 100%
rename from src/vendor/glfw-3.3.8/docs/html/search/files_7.js
rename to src/lib/src/vendor/glfw-3.3.8/docs/html/search/files_7.js
diff --git a/src/vendor/glfw-3.3.8/docs/html/search/files_8.html b/src/lib/src/vendor/glfw-3.3.8/docs/html/search/files_8.html
similarity index 100%
rename from src/vendor/glfw-3.3.8/docs/html/search/files_8.html
rename to src/lib/src/vendor/glfw-3.3.8/docs/html/search/files_8.html
diff --git a/src/vendor/glfw-3.3.8/docs/html/search/files_8.js b/src/lib/src/vendor/glfw-3.3.8/docs/html/search/files_8.js
similarity index 100%
rename from src/vendor/glfw-3.3.8/docs/html/search/files_8.js
rename to src/lib/src/vendor/glfw-3.3.8/docs/html/search/files_8.js
diff --git a/src/vendor/glfw-3.3.8/docs/html/search/functions_0.html b/src/lib/src/vendor/glfw-3.3.8/docs/html/search/functions_0.html
similarity index 100%
rename from src/vendor/glfw-3.3.8/docs/html/search/functions_0.html
rename to src/lib/src/vendor/glfw-3.3.8/docs/html/search/functions_0.html
diff --git a/src/vendor/glfw-3.3.8/docs/html/search/functions_0.js b/src/lib/src/vendor/glfw-3.3.8/docs/html/search/functions_0.js
similarity index 100%
rename from src/vendor/glfw-3.3.8/docs/html/search/functions_0.js
rename to src/lib/src/vendor/glfw-3.3.8/docs/html/search/functions_0.js
diff --git a/src/vendor/glfw-3.3.8/docs/html/search/groups_0.html b/src/lib/src/vendor/glfw-3.3.8/docs/html/search/groups_0.html
similarity index 100%
rename from src/vendor/glfw-3.3.8/docs/html/search/groups_0.html
rename to src/lib/src/vendor/glfw-3.3.8/docs/html/search/groups_0.html
diff --git a/src/vendor/glfw-3.3.8/docs/html/search/groups_0.js b/src/lib/src/vendor/glfw-3.3.8/docs/html/search/groups_0.js
similarity index 100%
rename from src/vendor/glfw-3.3.8/docs/html/search/groups_0.js
rename to src/lib/src/vendor/glfw-3.3.8/docs/html/search/groups_0.js
diff --git a/src/vendor/glfw-3.3.8/docs/html/search/groups_1.html b/src/lib/src/vendor/glfw-3.3.8/docs/html/search/groups_1.html
similarity index 100%
rename from src/vendor/glfw-3.3.8/docs/html/search/groups_1.html
rename to src/lib/src/vendor/glfw-3.3.8/docs/html/search/groups_1.html
diff --git a/src/vendor/glfw-3.3.8/docs/html/search/groups_1.js b/src/lib/src/vendor/glfw-3.3.8/docs/html/search/groups_1.js
similarity index 100%
rename from src/vendor/glfw-3.3.8/docs/html/search/groups_1.js
rename to src/lib/src/vendor/glfw-3.3.8/docs/html/search/groups_1.js
diff --git a/src/vendor/glfw-3.3.8/docs/html/search/groups_2.html b/src/lib/src/vendor/glfw-3.3.8/docs/html/search/groups_2.html
similarity index 100%
rename from src/vendor/glfw-3.3.8/docs/html/search/groups_2.html
rename to src/lib/src/vendor/glfw-3.3.8/docs/html/search/groups_2.html
diff --git a/src/vendor/glfw-3.3.8/docs/html/search/groups_2.js b/src/lib/src/vendor/glfw-3.3.8/docs/html/search/groups_2.js
similarity index 100%
rename from src/vendor/glfw-3.3.8/docs/html/search/groups_2.js
rename to src/lib/src/vendor/glfw-3.3.8/docs/html/search/groups_2.js
diff --git a/src/vendor/glfw-3.3.8/docs/html/search/groups_3.html b/src/lib/src/vendor/glfw-3.3.8/docs/html/search/groups_3.html
similarity index 100%
rename from src/vendor/glfw-3.3.8/docs/html/search/groups_3.html
rename to src/lib/src/vendor/glfw-3.3.8/docs/html/search/groups_3.html
diff --git a/src/vendor/glfw-3.3.8/docs/html/search/groups_3.js b/src/lib/src/vendor/glfw-3.3.8/docs/html/search/groups_3.js
similarity index 100%
rename from src/vendor/glfw-3.3.8/docs/html/search/groups_3.js
rename to src/lib/src/vendor/glfw-3.3.8/docs/html/search/groups_3.js
diff --git a/src/vendor/glfw-3.3.8/docs/html/search/groups_4.html b/src/lib/src/vendor/glfw-3.3.8/docs/html/search/groups_4.html
similarity index 100%
rename from src/vendor/glfw-3.3.8/docs/html/search/groups_4.html
rename to src/lib/src/vendor/glfw-3.3.8/docs/html/search/groups_4.html
diff --git a/src/vendor/glfw-3.3.8/docs/html/search/groups_4.js b/src/lib/src/vendor/glfw-3.3.8/docs/html/search/groups_4.js
similarity index 100%
rename from src/vendor/glfw-3.3.8/docs/html/search/groups_4.js
rename to src/lib/src/vendor/glfw-3.3.8/docs/html/search/groups_4.js
diff --git a/src/vendor/glfw-3.3.8/docs/html/search/groups_5.html b/src/lib/src/vendor/glfw-3.3.8/docs/html/search/groups_5.html
similarity index 100%
rename from src/vendor/glfw-3.3.8/docs/html/search/groups_5.html
rename to src/lib/src/vendor/glfw-3.3.8/docs/html/search/groups_5.html
diff --git a/src/vendor/glfw-3.3.8/docs/html/search/groups_5.js b/src/lib/src/vendor/glfw-3.3.8/docs/html/search/groups_5.js
similarity index 100%
rename from src/vendor/glfw-3.3.8/docs/html/search/groups_5.js
rename to src/lib/src/vendor/glfw-3.3.8/docs/html/search/groups_5.js
diff --git a/src/vendor/glfw-3.3.8/docs/html/search/groups_6.html b/src/lib/src/vendor/glfw-3.3.8/docs/html/search/groups_6.html
similarity index 100%
rename from src/vendor/glfw-3.3.8/docs/html/search/groups_6.html
rename to src/lib/src/vendor/glfw-3.3.8/docs/html/search/groups_6.html
diff --git a/src/vendor/glfw-3.3.8/docs/html/search/groups_6.js b/src/lib/src/vendor/glfw-3.3.8/docs/html/search/groups_6.js
similarity index 100%
rename from src/vendor/glfw-3.3.8/docs/html/search/groups_6.js
rename to src/lib/src/vendor/glfw-3.3.8/docs/html/search/groups_6.js
diff --git a/src/vendor/glfw-3.3.8/docs/html/search/groups_7.html b/src/lib/src/vendor/glfw-3.3.8/docs/html/search/groups_7.html
similarity index 100%
rename from src/vendor/glfw-3.3.8/docs/html/search/groups_7.html
rename to src/lib/src/vendor/glfw-3.3.8/docs/html/search/groups_7.html
diff --git a/src/vendor/glfw-3.3.8/docs/html/search/groups_7.js b/src/lib/src/vendor/glfw-3.3.8/docs/html/search/groups_7.js
similarity index 100%
rename from src/vendor/glfw-3.3.8/docs/html/search/groups_7.js
rename to src/lib/src/vendor/glfw-3.3.8/docs/html/search/groups_7.js
diff --git a/src/vendor/glfw-3.3.8/docs/html/search/groups_8.html b/src/lib/src/vendor/glfw-3.3.8/docs/html/search/groups_8.html
similarity index 100%
rename from src/vendor/glfw-3.3.8/docs/html/search/groups_8.html
rename to src/lib/src/vendor/glfw-3.3.8/docs/html/search/groups_8.html
diff --git a/src/vendor/glfw-3.3.8/docs/html/search/groups_8.js b/src/lib/src/vendor/glfw-3.3.8/docs/html/search/groups_8.js
similarity index 100%
rename from src/vendor/glfw-3.3.8/docs/html/search/groups_8.js
rename to src/lib/src/vendor/glfw-3.3.8/docs/html/search/groups_8.js
diff --git a/src/vendor/glfw-3.3.8/docs/html/search/groups_9.html b/src/lib/src/vendor/glfw-3.3.8/docs/html/search/groups_9.html
similarity index 100%
rename from src/vendor/glfw-3.3.8/docs/html/search/groups_9.html
rename to src/lib/src/vendor/glfw-3.3.8/docs/html/search/groups_9.html
diff --git a/src/vendor/glfw-3.3.8/docs/html/search/groups_9.js b/src/lib/src/vendor/glfw-3.3.8/docs/html/search/groups_9.js
similarity index 100%
rename from src/vendor/glfw-3.3.8/docs/html/search/groups_9.js
rename to src/lib/src/vendor/glfw-3.3.8/docs/html/search/groups_9.js
diff --git a/src/vendor/glfw-3.3.8/docs/html/search/groups_a.html b/src/lib/src/vendor/glfw-3.3.8/docs/html/search/groups_a.html
similarity index 100%
rename from src/vendor/glfw-3.3.8/docs/html/search/groups_a.html
rename to src/lib/src/vendor/glfw-3.3.8/docs/html/search/groups_a.html
diff --git a/src/vendor/glfw-3.3.8/docs/html/search/groups_a.js b/src/lib/src/vendor/glfw-3.3.8/docs/html/search/groups_a.js
similarity index 100%
rename from src/vendor/glfw-3.3.8/docs/html/search/groups_a.js
rename to src/lib/src/vendor/glfw-3.3.8/docs/html/search/groups_a.js
diff --git a/src/vendor/glfw-3.3.8/docs/html/search/mag_sel.svg b/src/lib/src/vendor/glfw-3.3.8/docs/html/search/mag_sel.svg
similarity index 100%
rename from src/vendor/glfw-3.3.8/docs/html/search/mag_sel.svg
rename to src/lib/src/vendor/glfw-3.3.8/docs/html/search/mag_sel.svg
diff --git a/src/vendor/glfw-3.3.8/docs/html/search/nomatches.html b/src/lib/src/vendor/glfw-3.3.8/docs/html/search/nomatches.html
similarity index 100%
rename from src/vendor/glfw-3.3.8/docs/html/search/nomatches.html
rename to src/lib/src/vendor/glfw-3.3.8/docs/html/search/nomatches.html
diff --git a/src/vendor/glfw-3.3.8/docs/html/search/pages_0.html b/src/lib/src/vendor/glfw-3.3.8/docs/html/search/pages_0.html
similarity index 100%
rename from src/vendor/glfw-3.3.8/docs/html/search/pages_0.html
rename to src/lib/src/vendor/glfw-3.3.8/docs/html/search/pages_0.html
diff --git a/src/vendor/glfw-3.3.8/docs/html/search/pages_0.js b/src/lib/src/vendor/glfw-3.3.8/docs/html/search/pages_0.js
similarity index 100%
rename from src/vendor/glfw-3.3.8/docs/html/search/pages_0.js
rename to src/lib/src/vendor/glfw-3.3.8/docs/html/search/pages_0.js
diff --git a/src/vendor/glfw-3.3.8/docs/html/search/pages_1.html b/src/lib/src/vendor/glfw-3.3.8/docs/html/search/pages_1.html
similarity index 100%
rename from src/vendor/glfw-3.3.8/docs/html/search/pages_1.html
rename to src/lib/src/vendor/glfw-3.3.8/docs/html/search/pages_1.html
diff --git a/src/vendor/glfw-3.3.8/docs/html/search/pages_1.js b/src/lib/src/vendor/glfw-3.3.8/docs/html/search/pages_1.js
similarity index 100%
rename from src/vendor/glfw-3.3.8/docs/html/search/pages_1.js
rename to src/lib/src/vendor/glfw-3.3.8/docs/html/search/pages_1.js
diff --git a/src/vendor/glfw-3.3.8/docs/html/search/pages_2.html b/src/lib/src/vendor/glfw-3.3.8/docs/html/search/pages_2.html
similarity index 100%
rename from src/vendor/glfw-3.3.8/docs/html/search/pages_2.html
rename to src/lib/src/vendor/glfw-3.3.8/docs/html/search/pages_2.html
diff --git a/src/vendor/glfw-3.3.8/docs/html/search/pages_2.js b/src/lib/src/vendor/glfw-3.3.8/docs/html/search/pages_2.js
similarity index 100%
rename from src/vendor/glfw-3.3.8/docs/html/search/pages_2.js
rename to src/lib/src/vendor/glfw-3.3.8/docs/html/search/pages_2.js
diff --git a/src/vendor/glfw-3.3.8/docs/html/search/pages_3.html b/src/lib/src/vendor/glfw-3.3.8/docs/html/search/pages_3.html
similarity index 100%
rename from src/vendor/glfw-3.3.8/docs/html/search/pages_3.html
rename to src/lib/src/vendor/glfw-3.3.8/docs/html/search/pages_3.html
diff --git a/src/vendor/glfw-3.3.8/docs/html/search/pages_3.js b/src/lib/src/vendor/glfw-3.3.8/docs/html/search/pages_3.js
similarity index 100%
rename from src/vendor/glfw-3.3.8/docs/html/search/pages_3.js
rename to src/lib/src/vendor/glfw-3.3.8/docs/html/search/pages_3.js
diff --git a/src/vendor/glfw-3.3.8/docs/html/search/pages_4.html b/src/lib/src/vendor/glfw-3.3.8/docs/html/search/pages_4.html
similarity index 100%
rename from src/vendor/glfw-3.3.8/docs/html/search/pages_4.html
rename to src/lib/src/vendor/glfw-3.3.8/docs/html/search/pages_4.html
diff --git a/src/vendor/glfw-3.3.8/docs/html/search/pages_4.js b/src/lib/src/vendor/glfw-3.3.8/docs/html/search/pages_4.js
similarity index 100%
rename from src/vendor/glfw-3.3.8/docs/html/search/pages_4.js
rename to src/lib/src/vendor/glfw-3.3.8/docs/html/search/pages_4.js
diff --git a/src/vendor/glfw-3.3.8/docs/html/search/pages_5.html b/src/lib/src/vendor/glfw-3.3.8/docs/html/search/pages_5.html
similarity index 100%
rename from src/vendor/glfw-3.3.8/docs/html/search/pages_5.html
rename to src/lib/src/vendor/glfw-3.3.8/docs/html/search/pages_5.html
diff --git a/src/vendor/glfw-3.3.8/docs/html/search/pages_5.js b/src/lib/src/vendor/glfw-3.3.8/docs/html/search/pages_5.js
similarity index 100%
rename from src/vendor/glfw-3.3.8/docs/html/search/pages_5.js
rename to src/lib/src/vendor/glfw-3.3.8/docs/html/search/pages_5.js
diff --git a/src/vendor/glfw-3.3.8/docs/html/search/pages_6.html b/src/lib/src/vendor/glfw-3.3.8/docs/html/search/pages_6.html
similarity index 100%
rename from src/vendor/glfw-3.3.8/docs/html/search/pages_6.html
rename to src/lib/src/vendor/glfw-3.3.8/docs/html/search/pages_6.html
diff --git a/src/vendor/glfw-3.3.8/docs/html/search/pages_6.js b/src/lib/src/vendor/glfw-3.3.8/docs/html/search/pages_6.js
similarity index 100%
rename from src/vendor/glfw-3.3.8/docs/html/search/pages_6.js
rename to src/lib/src/vendor/glfw-3.3.8/docs/html/search/pages_6.js
diff --git a/src/vendor/glfw-3.3.8/docs/html/search/pages_7.html b/src/lib/src/vendor/glfw-3.3.8/docs/html/search/pages_7.html
similarity index 100%
rename from src/vendor/glfw-3.3.8/docs/html/search/pages_7.html
rename to src/lib/src/vendor/glfw-3.3.8/docs/html/search/pages_7.html
diff --git a/src/vendor/glfw-3.3.8/docs/html/search/pages_7.js b/src/lib/src/vendor/glfw-3.3.8/docs/html/search/pages_7.js
similarity index 100%
rename from src/vendor/glfw-3.3.8/docs/html/search/pages_7.js
rename to src/lib/src/vendor/glfw-3.3.8/docs/html/search/pages_7.js
diff --git a/src/vendor/glfw-3.3.8/docs/html/search/pages_8.html b/src/lib/src/vendor/glfw-3.3.8/docs/html/search/pages_8.html
similarity index 100%
rename from src/vendor/glfw-3.3.8/docs/html/search/pages_8.html
rename to src/lib/src/vendor/glfw-3.3.8/docs/html/search/pages_8.html
diff --git a/src/vendor/glfw-3.3.8/docs/html/search/pages_8.js b/src/lib/src/vendor/glfw-3.3.8/docs/html/search/pages_8.js
similarity index 100%
rename from src/vendor/glfw-3.3.8/docs/html/search/pages_8.js
rename to src/lib/src/vendor/glfw-3.3.8/docs/html/search/pages_8.js
diff --git a/src/vendor/glfw-3.3.8/docs/html/search/pages_9.html b/src/lib/src/vendor/glfw-3.3.8/docs/html/search/pages_9.html
similarity index 100%
rename from src/vendor/glfw-3.3.8/docs/html/search/pages_9.html
rename to src/lib/src/vendor/glfw-3.3.8/docs/html/search/pages_9.html
diff --git a/src/vendor/glfw-3.3.8/docs/html/search/pages_9.js b/src/lib/src/vendor/glfw-3.3.8/docs/html/search/pages_9.js
similarity index 100%
rename from src/vendor/glfw-3.3.8/docs/html/search/pages_9.js
rename to src/lib/src/vendor/glfw-3.3.8/docs/html/search/pages_9.js
diff --git a/src/vendor/glfw-3.3.8/docs/html/search/pages_a.html b/src/lib/src/vendor/glfw-3.3.8/docs/html/search/pages_a.html
similarity index 100%
rename from src/vendor/glfw-3.3.8/docs/html/search/pages_a.html
rename to src/lib/src/vendor/glfw-3.3.8/docs/html/search/pages_a.html
diff --git a/src/vendor/glfw-3.3.8/docs/html/search/pages_a.js b/src/lib/src/vendor/glfw-3.3.8/docs/html/search/pages_a.js
similarity index 100%
rename from src/vendor/glfw-3.3.8/docs/html/search/pages_a.js
rename to src/lib/src/vendor/glfw-3.3.8/docs/html/search/pages_a.js
diff --git a/src/vendor/glfw-3.3.8/docs/html/search/search.css b/src/lib/src/vendor/glfw-3.3.8/docs/html/search/search.css
similarity index 100%
rename from src/vendor/glfw-3.3.8/docs/html/search/search.css
rename to src/lib/src/vendor/glfw-3.3.8/docs/html/search/search.css
diff --git a/src/vendor/glfw-3.3.8/docs/html/search/search.js b/src/lib/src/vendor/glfw-3.3.8/docs/html/search/search.js
similarity index 100%
rename from src/vendor/glfw-3.3.8/docs/html/search/search.js
rename to src/lib/src/vendor/glfw-3.3.8/docs/html/search/search.js
diff --git a/src/vendor/glfw-3.3.8/docs/html/search/search_l.png b/src/lib/src/vendor/glfw-3.3.8/docs/html/search/search_l.png
similarity index 100%
rename from src/vendor/glfw-3.3.8/docs/html/search/search_l.png
rename to src/lib/src/vendor/glfw-3.3.8/docs/html/search/search_l.png
diff --git a/src/vendor/glfw-3.3.8/docs/html/search/search_m.png b/src/lib/src/vendor/glfw-3.3.8/docs/html/search/search_m.png
similarity index 100%
rename from src/vendor/glfw-3.3.8/docs/html/search/search_m.png
rename to src/lib/src/vendor/glfw-3.3.8/docs/html/search/search_m.png
diff --git a/src/vendor/glfw-3.3.8/docs/html/search/search_r.png b/src/lib/src/vendor/glfw-3.3.8/docs/html/search/search_r.png
similarity index 100%
rename from src/vendor/glfw-3.3.8/docs/html/search/search_r.png
rename to src/lib/src/vendor/glfw-3.3.8/docs/html/search/search_r.png
diff --git a/src/vendor/glfw-3.3.8/docs/html/search/searchdata.js b/src/lib/src/vendor/glfw-3.3.8/docs/html/search/searchdata.js
similarity index 100%
rename from src/vendor/glfw-3.3.8/docs/html/search/searchdata.js
rename to src/lib/src/vendor/glfw-3.3.8/docs/html/search/searchdata.js
diff --git a/src/vendor/glfw-3.3.8/docs/html/search/typedefs_0.html b/src/lib/src/vendor/glfw-3.3.8/docs/html/search/typedefs_0.html
similarity index 100%
rename from src/vendor/glfw-3.3.8/docs/html/search/typedefs_0.html
rename to src/lib/src/vendor/glfw-3.3.8/docs/html/search/typedefs_0.html
diff --git a/src/vendor/glfw-3.3.8/docs/html/search/typedefs_0.js b/src/lib/src/vendor/glfw-3.3.8/docs/html/search/typedefs_0.js
similarity index 100%
rename from src/vendor/glfw-3.3.8/docs/html/search/typedefs_0.js
rename to src/lib/src/vendor/glfw-3.3.8/docs/html/search/typedefs_0.js
diff --git a/src/vendor/glfw-3.3.8/docs/html/search/variables_0.html b/src/lib/src/vendor/glfw-3.3.8/docs/html/search/variables_0.html
similarity index 100%
rename from src/vendor/glfw-3.3.8/docs/html/search/variables_0.html
rename to src/lib/src/vendor/glfw-3.3.8/docs/html/search/variables_0.html
diff --git a/src/vendor/glfw-3.3.8/docs/html/search/variables_0.js b/src/lib/src/vendor/glfw-3.3.8/docs/html/search/variables_0.js
similarity index 100%
rename from src/vendor/glfw-3.3.8/docs/html/search/variables_0.js
rename to src/lib/src/vendor/glfw-3.3.8/docs/html/search/variables_0.js
diff --git a/src/vendor/glfw-3.3.8/docs/html/search/variables_1.html b/src/lib/src/vendor/glfw-3.3.8/docs/html/search/variables_1.html
similarity index 100%
rename from src/vendor/glfw-3.3.8/docs/html/search/variables_1.html
rename to src/lib/src/vendor/glfw-3.3.8/docs/html/search/variables_1.html
diff --git a/src/vendor/glfw-3.3.8/docs/html/search/variables_1.js b/src/lib/src/vendor/glfw-3.3.8/docs/html/search/variables_1.js
similarity index 100%
rename from src/vendor/glfw-3.3.8/docs/html/search/variables_1.js
rename to src/lib/src/vendor/glfw-3.3.8/docs/html/search/variables_1.js
diff --git a/src/vendor/glfw-3.3.8/docs/html/search/variables_2.html b/src/lib/src/vendor/glfw-3.3.8/docs/html/search/variables_2.html
similarity index 100%
rename from src/vendor/glfw-3.3.8/docs/html/search/variables_2.html
rename to src/lib/src/vendor/glfw-3.3.8/docs/html/search/variables_2.html
diff --git a/src/vendor/glfw-3.3.8/docs/html/search/variables_2.js b/src/lib/src/vendor/glfw-3.3.8/docs/html/search/variables_2.js
similarity index 100%
rename from src/vendor/glfw-3.3.8/docs/html/search/variables_2.js
rename to src/lib/src/vendor/glfw-3.3.8/docs/html/search/variables_2.js
diff --git a/src/vendor/glfw-3.3.8/docs/html/search/variables_3.html b/src/lib/src/vendor/glfw-3.3.8/docs/html/search/variables_3.html
similarity index 100%
rename from src/vendor/glfw-3.3.8/docs/html/search/variables_3.html
rename to src/lib/src/vendor/glfw-3.3.8/docs/html/search/variables_3.html
diff --git a/src/vendor/glfw-3.3.8/docs/html/search/variables_3.js b/src/lib/src/vendor/glfw-3.3.8/docs/html/search/variables_3.js
similarity index 100%
rename from src/vendor/glfw-3.3.8/docs/html/search/variables_3.js
rename to src/lib/src/vendor/glfw-3.3.8/docs/html/search/variables_3.js
diff --git a/src/vendor/glfw-3.3.8/docs/html/search/variables_4.html b/src/lib/src/vendor/glfw-3.3.8/docs/html/search/variables_4.html
similarity index 100%
rename from src/vendor/glfw-3.3.8/docs/html/search/variables_4.html
rename to src/lib/src/vendor/glfw-3.3.8/docs/html/search/variables_4.html
diff --git a/src/vendor/glfw-3.3.8/docs/html/search/variables_4.js b/src/lib/src/vendor/glfw-3.3.8/docs/html/search/variables_4.js
similarity index 100%
rename from src/vendor/glfw-3.3.8/docs/html/search/variables_4.js
rename to src/lib/src/vendor/glfw-3.3.8/docs/html/search/variables_4.js
diff --git a/src/vendor/glfw-3.3.8/docs/html/search/variables_5.html b/src/lib/src/vendor/glfw-3.3.8/docs/html/search/variables_5.html
similarity index 100%
rename from src/vendor/glfw-3.3.8/docs/html/search/variables_5.html
rename to src/lib/src/vendor/glfw-3.3.8/docs/html/search/variables_5.html
diff --git a/src/vendor/glfw-3.3.8/docs/html/search/variables_5.js b/src/lib/src/vendor/glfw-3.3.8/docs/html/search/variables_5.js
similarity index 100%
rename from src/vendor/glfw-3.3.8/docs/html/search/variables_5.js
rename to src/lib/src/vendor/glfw-3.3.8/docs/html/search/variables_5.js
diff --git a/src/vendor/glfw-3.3.8/docs/html/search/variables_6.html b/src/lib/src/vendor/glfw-3.3.8/docs/html/search/variables_6.html
similarity index 100%
rename from src/vendor/glfw-3.3.8/docs/html/search/variables_6.html
rename to src/lib/src/vendor/glfw-3.3.8/docs/html/search/variables_6.html
diff --git a/src/vendor/glfw-3.3.8/docs/html/search/variables_6.js b/src/lib/src/vendor/glfw-3.3.8/docs/html/search/variables_6.js
similarity index 100%
rename from src/vendor/glfw-3.3.8/docs/html/search/variables_6.js
rename to src/lib/src/vendor/glfw-3.3.8/docs/html/search/variables_6.js
diff --git a/src/vendor/glfw-3.3.8/docs/html/search/variables_7.html b/src/lib/src/vendor/glfw-3.3.8/docs/html/search/variables_7.html
similarity index 100%
rename from src/vendor/glfw-3.3.8/docs/html/search/variables_7.html
rename to src/lib/src/vendor/glfw-3.3.8/docs/html/search/variables_7.html
diff --git a/src/vendor/glfw-3.3.8/docs/html/search/variables_7.js b/src/lib/src/vendor/glfw-3.3.8/docs/html/search/variables_7.js
similarity index 100%
rename from src/vendor/glfw-3.3.8/docs/html/search/variables_7.js
rename to src/lib/src/vendor/glfw-3.3.8/docs/html/search/variables_7.js
diff --git a/src/vendor/glfw-3.3.8/docs/html/spaces.svg b/src/lib/src/vendor/glfw-3.3.8/docs/html/spaces.svg
similarity index 100%
rename from src/vendor/glfw-3.3.8/docs/html/spaces.svg
rename to src/lib/src/vendor/glfw-3.3.8/docs/html/spaces.svg
diff --git a/src/vendor/glfw-3.3.8/docs/html/splitbar.png b/src/lib/src/vendor/glfw-3.3.8/docs/html/splitbar.png
similarity index 100%
rename from src/vendor/glfw-3.3.8/docs/html/splitbar.png
rename to src/lib/src/vendor/glfw-3.3.8/docs/html/splitbar.png
diff --git a/src/vendor/glfw-3.3.8/docs/html/structGLFWgamepadstate.html b/src/lib/src/vendor/glfw-3.3.8/docs/html/structGLFWgamepadstate.html
similarity index 100%
rename from src/vendor/glfw-3.3.8/docs/html/structGLFWgamepadstate.html
rename to src/lib/src/vendor/glfw-3.3.8/docs/html/structGLFWgamepadstate.html
diff --git a/src/vendor/glfw-3.3.8/docs/html/structGLFWgammaramp.html b/src/lib/src/vendor/glfw-3.3.8/docs/html/structGLFWgammaramp.html
similarity index 100%
rename from src/vendor/glfw-3.3.8/docs/html/structGLFWgammaramp.html
rename to src/lib/src/vendor/glfw-3.3.8/docs/html/structGLFWgammaramp.html
diff --git a/src/vendor/glfw-3.3.8/docs/html/structGLFWimage.html b/src/lib/src/vendor/glfw-3.3.8/docs/html/structGLFWimage.html
similarity index 100%
rename from src/vendor/glfw-3.3.8/docs/html/structGLFWimage.html
rename to src/lib/src/vendor/glfw-3.3.8/docs/html/structGLFWimage.html
diff --git a/src/vendor/glfw-3.3.8/docs/html/structGLFWvidmode.html b/src/lib/src/vendor/glfw-3.3.8/docs/html/structGLFWvidmode.html
similarity index 100%
rename from src/vendor/glfw-3.3.8/docs/html/structGLFWvidmode.html
rename to src/lib/src/vendor/glfw-3.3.8/docs/html/structGLFWvidmode.html
diff --git a/src/vendor/glfw-3.3.8/docs/html/sync_off.png b/src/lib/src/vendor/glfw-3.3.8/docs/html/sync_off.png
similarity index 100%
rename from src/vendor/glfw-3.3.8/docs/html/sync_off.png
rename to src/lib/src/vendor/glfw-3.3.8/docs/html/sync_off.png
diff --git a/src/vendor/glfw-3.3.8/docs/html/sync_on.png b/src/lib/src/vendor/glfw-3.3.8/docs/html/sync_on.png
similarity index 100%
rename from src/vendor/glfw-3.3.8/docs/html/sync_on.png
rename to src/lib/src/vendor/glfw-3.3.8/docs/html/sync_on.png
diff --git a/src/vendor/glfw-3.3.8/docs/html/tab_a.png b/src/lib/src/vendor/glfw-3.3.8/docs/html/tab_a.png
similarity index 100%
rename from src/vendor/glfw-3.3.8/docs/html/tab_a.png
rename to src/lib/src/vendor/glfw-3.3.8/docs/html/tab_a.png
diff --git a/src/vendor/glfw-3.3.8/docs/html/tab_b.png b/src/lib/src/vendor/glfw-3.3.8/docs/html/tab_b.png
similarity index 100%
rename from src/vendor/glfw-3.3.8/docs/html/tab_b.png
rename to src/lib/src/vendor/glfw-3.3.8/docs/html/tab_b.png
diff --git a/src/vendor/glfw-3.3.8/docs/html/tab_h.png b/src/lib/src/vendor/glfw-3.3.8/docs/html/tab_h.png
similarity index 100%
rename from src/vendor/glfw-3.3.8/docs/html/tab_h.png
rename to src/lib/src/vendor/glfw-3.3.8/docs/html/tab_h.png
diff --git a/src/vendor/glfw-3.3.8/docs/html/tab_s.png b/src/lib/src/vendor/glfw-3.3.8/docs/html/tab_s.png
similarity index 100%
rename from src/vendor/glfw-3.3.8/docs/html/tab_s.png
rename to src/lib/src/vendor/glfw-3.3.8/docs/html/tab_s.png
diff --git a/src/vendor/glfw-3.3.8/docs/html/tabs.css b/src/lib/src/vendor/glfw-3.3.8/docs/html/tabs.css
similarity index 100%
rename from src/vendor/glfw-3.3.8/docs/html/tabs.css
rename to src/lib/src/vendor/glfw-3.3.8/docs/html/tabs.css
diff --git a/src/vendor/glfw-3.3.8/docs/html/vulkan_8dox.html b/src/lib/src/vendor/glfw-3.3.8/docs/html/vulkan_8dox.html
similarity index 100%
rename from src/vendor/glfw-3.3.8/docs/html/vulkan_8dox.html
rename to src/lib/src/vendor/glfw-3.3.8/docs/html/vulkan_8dox.html
diff --git a/src/vendor/glfw-3.3.8/docs/html/vulkan_guide.html b/src/lib/src/vendor/glfw-3.3.8/docs/html/vulkan_guide.html
similarity index 100%
rename from src/vendor/glfw-3.3.8/docs/html/vulkan_guide.html
rename to src/lib/src/vendor/glfw-3.3.8/docs/html/vulkan_guide.html
diff --git a/src/vendor/glfw-3.3.8/docs/html/window_8dox.html b/src/lib/src/vendor/glfw-3.3.8/docs/html/window_8dox.html
similarity index 100%
rename from src/vendor/glfw-3.3.8/docs/html/window_8dox.html
rename to src/lib/src/vendor/glfw-3.3.8/docs/html/window_8dox.html
diff --git a/src/vendor/glfw-3.3.8/docs/html/window_guide.html b/src/lib/src/vendor/glfw-3.3.8/docs/html/window_guide.html
similarity index 100%
rename from src/vendor/glfw-3.3.8/docs/html/window_guide.html
rename to src/lib/src/vendor/glfw-3.3.8/docs/html/window_guide.html
diff --git a/src/vendor/glfw-3.3.8/docs/input.dox b/src/lib/src/vendor/glfw-3.3.8/docs/input.dox
similarity index 100%
rename from src/vendor/glfw-3.3.8/docs/input.dox
rename to src/lib/src/vendor/glfw-3.3.8/docs/input.dox
diff --git a/src/vendor/glfw-3.3.8/docs/internal.dox b/src/lib/src/vendor/glfw-3.3.8/docs/internal.dox
similarity index 100%
rename from src/vendor/glfw-3.3.8/docs/internal.dox
rename to src/lib/src/vendor/glfw-3.3.8/docs/internal.dox
diff --git a/src/vendor/glfw-3.3.8/docs/intro.dox b/src/lib/src/vendor/glfw-3.3.8/docs/intro.dox
similarity index 100%
rename from src/vendor/glfw-3.3.8/docs/intro.dox
rename to src/lib/src/vendor/glfw-3.3.8/docs/intro.dox
diff --git a/src/vendor/glfw-3.3.8/docs/main.dox b/src/lib/src/vendor/glfw-3.3.8/docs/main.dox
similarity index 100%
rename from src/vendor/glfw-3.3.8/docs/main.dox
rename to src/lib/src/vendor/glfw-3.3.8/docs/main.dox
diff --git a/src/vendor/glfw-3.3.8/docs/monitor.dox b/src/lib/src/vendor/glfw-3.3.8/docs/monitor.dox
similarity index 100%
rename from src/vendor/glfw-3.3.8/docs/monitor.dox
rename to src/lib/src/vendor/glfw-3.3.8/docs/monitor.dox
diff --git a/src/vendor/glfw-3.3.8/docs/moving.dox b/src/lib/src/vendor/glfw-3.3.8/docs/moving.dox
similarity index 100%
rename from src/vendor/glfw-3.3.8/docs/moving.dox
rename to src/lib/src/vendor/glfw-3.3.8/docs/moving.dox
diff --git a/src/vendor/glfw-3.3.8/docs/news.dox b/src/lib/src/vendor/glfw-3.3.8/docs/news.dox
similarity index 100%
rename from src/vendor/glfw-3.3.8/docs/news.dox
rename to src/lib/src/vendor/glfw-3.3.8/docs/news.dox
diff --git a/src/vendor/glfw-3.3.8/docs/quick.dox b/src/lib/src/vendor/glfw-3.3.8/docs/quick.dox
similarity index 100%
rename from src/vendor/glfw-3.3.8/docs/quick.dox
rename to src/lib/src/vendor/glfw-3.3.8/docs/quick.dox
diff --git a/src/vendor/glfw-3.3.8/docs/spaces.svg b/src/lib/src/vendor/glfw-3.3.8/docs/spaces.svg
similarity index 100%
rename from src/vendor/glfw-3.3.8/docs/spaces.svg
rename to src/lib/src/vendor/glfw-3.3.8/docs/spaces.svg
diff --git a/src/vendor/glfw-3.3.8/docs/vulkan.dox b/src/lib/src/vendor/glfw-3.3.8/docs/vulkan.dox
similarity index 100%
rename from src/vendor/glfw-3.3.8/docs/vulkan.dox
rename to src/lib/src/vendor/glfw-3.3.8/docs/vulkan.dox
diff --git a/src/vendor/glfw-3.3.8/docs/window.dox b/src/lib/src/vendor/glfw-3.3.8/docs/window.dox
similarity index 100%
rename from src/vendor/glfw-3.3.8/docs/window.dox
rename to src/lib/src/vendor/glfw-3.3.8/docs/window.dox
diff --git a/src/vendor/glfw-3.3.8/examples/CMakeLists.txt b/src/lib/src/vendor/glfw-3.3.8/examples/CMakeLists.txt
similarity index 100%
rename from src/vendor/glfw-3.3.8/examples/CMakeLists.txt
rename to src/lib/src/vendor/glfw-3.3.8/examples/CMakeLists.txt
diff --git a/src/vendor/glfw-3.3.8/examples/boing.c b/src/lib/src/vendor/glfw-3.3.8/examples/boing.c
similarity index 100%
rename from src/vendor/glfw-3.3.8/examples/boing.c
rename to src/lib/src/vendor/glfw-3.3.8/examples/boing.c
diff --git a/src/vendor/glfw-3.3.8/examples/gears.c b/src/lib/src/vendor/glfw-3.3.8/examples/gears.c
similarity index 100%
rename from src/vendor/glfw-3.3.8/examples/gears.c
rename to src/lib/src/vendor/glfw-3.3.8/examples/gears.c
diff --git a/src/vendor/glfw-3.3.8/examples/glfw.icns b/src/lib/src/vendor/glfw-3.3.8/examples/glfw.icns
similarity index 100%
rename from src/vendor/glfw-3.3.8/examples/glfw.icns
rename to src/lib/src/vendor/glfw-3.3.8/examples/glfw.icns
diff --git a/src/vendor/glfw-3.3.8/examples/glfw.ico b/src/lib/src/vendor/glfw-3.3.8/examples/glfw.ico
similarity index 100%
rename from src/vendor/glfw-3.3.8/examples/glfw.ico
rename to src/lib/src/vendor/glfw-3.3.8/examples/glfw.ico
diff --git a/src/vendor/glfw-3.3.8/examples/glfw.rc b/src/lib/src/vendor/glfw-3.3.8/examples/glfw.rc
similarity index 100%
rename from src/vendor/glfw-3.3.8/examples/glfw.rc
rename to src/lib/src/vendor/glfw-3.3.8/examples/glfw.rc
diff --git a/src/vendor/glfw-3.3.8/examples/heightmap.c b/src/lib/src/vendor/glfw-3.3.8/examples/heightmap.c
similarity index 100%
rename from src/vendor/glfw-3.3.8/examples/heightmap.c
rename to src/lib/src/vendor/glfw-3.3.8/examples/heightmap.c
diff --git a/src/vendor/glfw-3.3.8/examples/offscreen.c b/src/lib/src/vendor/glfw-3.3.8/examples/offscreen.c
similarity index 100%
rename from src/vendor/glfw-3.3.8/examples/offscreen.c
rename to src/lib/src/vendor/glfw-3.3.8/examples/offscreen.c
diff --git a/src/vendor/glfw-3.3.8/examples/particles.c b/src/lib/src/vendor/glfw-3.3.8/examples/particles.c
similarity index 100%
rename from src/vendor/glfw-3.3.8/examples/particles.c
rename to src/lib/src/vendor/glfw-3.3.8/examples/particles.c
diff --git a/src/vendor/glfw-3.3.8/examples/sharing.c b/src/lib/src/vendor/glfw-3.3.8/examples/sharing.c
similarity index 100%
rename from src/vendor/glfw-3.3.8/examples/sharing.c
rename to src/lib/src/vendor/glfw-3.3.8/examples/sharing.c
diff --git a/src/vendor/glfw-3.3.8/examples/simple.c b/src/lib/src/vendor/glfw-3.3.8/examples/simple.c
similarity index 100%
rename from src/vendor/glfw-3.3.8/examples/simple.c
rename to src/lib/src/vendor/glfw-3.3.8/examples/simple.c
diff --git a/src/vendor/glfw-3.3.8/examples/splitview.c b/src/lib/src/vendor/glfw-3.3.8/examples/splitview.c
similarity index 100%
rename from src/vendor/glfw-3.3.8/examples/splitview.c
rename to src/lib/src/vendor/glfw-3.3.8/examples/splitview.c
diff --git a/src/vendor/glfw-3.3.8/examples/wave.c b/src/lib/src/vendor/glfw-3.3.8/examples/wave.c
similarity index 100%
rename from src/vendor/glfw-3.3.8/examples/wave.c
rename to src/lib/src/vendor/glfw-3.3.8/examples/wave.c
diff --git a/src/vendor/glfw-3.3.8/include/GLFW/glfw3.h b/src/lib/src/vendor/glfw-3.3.8/include/GLFW/glfw3.h
similarity index 100%
rename from src/vendor/glfw-3.3.8/include/GLFW/glfw3.h
rename to src/lib/src/vendor/glfw-3.3.8/include/GLFW/glfw3.h
diff --git a/src/vendor/glfw-3.3.8/include/GLFW/glfw3native.h b/src/lib/src/vendor/glfw-3.3.8/include/GLFW/glfw3native.h
similarity index 100%
rename from src/vendor/glfw-3.3.8/include/GLFW/glfw3native.h
rename to src/lib/src/vendor/glfw-3.3.8/include/GLFW/glfw3native.h
diff --git a/src/vendor/glfw-3.3.8/src/CMakeLists.txt b/src/lib/src/vendor/glfw-3.3.8/src/CMakeLists.txt
similarity index 100%
rename from src/vendor/glfw-3.3.8/src/CMakeLists.txt
rename to src/lib/src/vendor/glfw-3.3.8/src/CMakeLists.txt
diff --git a/src/vendor/glfw-3.3.8/src/cocoa_init.m b/src/lib/src/vendor/glfw-3.3.8/src/cocoa_init.m
similarity index 100%
rename from src/vendor/glfw-3.3.8/src/cocoa_init.m
rename to src/lib/src/vendor/glfw-3.3.8/src/cocoa_init.m
diff --git a/src/vendor/glfw-3.3.8/src/cocoa_joystick.h b/src/lib/src/vendor/glfw-3.3.8/src/cocoa_joystick.h
similarity index 100%
rename from src/vendor/glfw-3.3.8/src/cocoa_joystick.h
rename to src/lib/src/vendor/glfw-3.3.8/src/cocoa_joystick.h
diff --git a/src/vendor/glfw-3.3.8/src/cocoa_joystick.m b/src/lib/src/vendor/glfw-3.3.8/src/cocoa_joystick.m
similarity index 100%
rename from src/vendor/glfw-3.3.8/src/cocoa_joystick.m
rename to src/lib/src/vendor/glfw-3.3.8/src/cocoa_joystick.m
diff --git a/src/vendor/glfw-3.3.8/src/cocoa_monitor.m b/src/lib/src/vendor/glfw-3.3.8/src/cocoa_monitor.m
similarity index 100%
rename from src/vendor/glfw-3.3.8/src/cocoa_monitor.m
rename to src/lib/src/vendor/glfw-3.3.8/src/cocoa_monitor.m
diff --git a/src/vendor/glfw-3.3.8/src/cocoa_platform.h b/src/lib/src/vendor/glfw-3.3.8/src/cocoa_platform.h
similarity index 100%
rename from src/vendor/glfw-3.3.8/src/cocoa_platform.h
rename to src/lib/src/vendor/glfw-3.3.8/src/cocoa_platform.h
diff --git a/src/vendor/glfw-3.3.8/src/cocoa_time.c b/src/lib/src/vendor/glfw-3.3.8/src/cocoa_time.c
similarity index 100%
rename from src/vendor/glfw-3.3.8/src/cocoa_time.c
rename to src/lib/src/vendor/glfw-3.3.8/src/cocoa_time.c
diff --git a/src/vendor/glfw-3.3.8/src/cocoa_window.m b/src/lib/src/vendor/glfw-3.3.8/src/cocoa_window.m
similarity index 100%
rename from src/vendor/glfw-3.3.8/src/cocoa_window.m
rename to src/lib/src/vendor/glfw-3.3.8/src/cocoa_window.m
diff --git a/src/vendor/glfw-3.3.8/src/context.c b/src/lib/src/vendor/glfw-3.3.8/src/context.c
similarity index 100%
rename from src/vendor/glfw-3.3.8/src/context.c
rename to src/lib/src/vendor/glfw-3.3.8/src/context.c
diff --git a/src/vendor/glfw-3.3.8/src/egl_context.c b/src/lib/src/vendor/glfw-3.3.8/src/egl_context.c
similarity index 100%
rename from src/vendor/glfw-3.3.8/src/egl_context.c
rename to src/lib/src/vendor/glfw-3.3.8/src/egl_context.c
diff --git a/src/vendor/glfw-3.3.8/src/egl_context.h b/src/lib/src/vendor/glfw-3.3.8/src/egl_context.h
similarity index 100%
rename from src/vendor/glfw-3.3.8/src/egl_context.h
rename to src/lib/src/vendor/glfw-3.3.8/src/egl_context.h
diff --git a/src/vendor/glfw-3.3.8/src/glfw3.pc.in b/src/lib/src/vendor/glfw-3.3.8/src/glfw3.pc.in
similarity index 100%
rename from src/vendor/glfw-3.3.8/src/glfw3.pc.in
rename to src/lib/src/vendor/glfw-3.3.8/src/glfw3.pc.in
diff --git a/src/vendor/glfw-3.3.8/src/glfw3Config.cmake.in b/src/lib/src/vendor/glfw-3.3.8/src/glfw3Config.cmake.in
similarity index 100%
rename from src/vendor/glfw-3.3.8/src/glfw3Config.cmake.in
rename to src/lib/src/vendor/glfw-3.3.8/src/glfw3Config.cmake.in
diff --git a/src/vendor/glfw-3.3.8/src/glfw_config.h.in b/src/lib/src/vendor/glfw-3.3.8/src/glfw_config.h.in
similarity index 100%
rename from src/vendor/glfw-3.3.8/src/glfw_config.h.in
rename to src/lib/src/vendor/glfw-3.3.8/src/glfw_config.h.in
diff --git a/src/vendor/glfw-3.3.8/src/glx_context.c b/src/lib/src/vendor/glfw-3.3.8/src/glx_context.c
similarity index 100%
rename from src/vendor/glfw-3.3.8/src/glx_context.c
rename to src/lib/src/vendor/glfw-3.3.8/src/glx_context.c
diff --git a/src/vendor/glfw-3.3.8/src/glx_context.h b/src/lib/src/vendor/glfw-3.3.8/src/glx_context.h
similarity index 100%
rename from src/vendor/glfw-3.3.8/src/glx_context.h
rename to src/lib/src/vendor/glfw-3.3.8/src/glx_context.h
diff --git a/src/vendor/glfw-3.3.8/src/init.c b/src/lib/src/vendor/glfw-3.3.8/src/init.c
similarity index 100%
rename from src/vendor/glfw-3.3.8/src/init.c
rename to src/lib/src/vendor/glfw-3.3.8/src/init.c
diff --git a/src/vendor/glfw-3.3.8/src/input.c b/src/lib/src/vendor/glfw-3.3.8/src/input.c
similarity index 100%
rename from src/vendor/glfw-3.3.8/src/input.c
rename to src/lib/src/vendor/glfw-3.3.8/src/input.c
diff --git a/src/vendor/glfw-3.3.8/src/internal.h b/src/lib/src/vendor/glfw-3.3.8/src/internal.h
similarity index 100%
rename from src/vendor/glfw-3.3.8/src/internal.h
rename to src/lib/src/vendor/glfw-3.3.8/src/internal.h
diff --git a/src/vendor/glfw-3.3.8/src/linux_joystick.c b/src/lib/src/vendor/glfw-3.3.8/src/linux_joystick.c
similarity index 100%
rename from src/vendor/glfw-3.3.8/src/linux_joystick.c
rename to src/lib/src/vendor/glfw-3.3.8/src/linux_joystick.c
diff --git a/src/vendor/glfw-3.3.8/src/linux_joystick.h b/src/lib/src/vendor/glfw-3.3.8/src/linux_joystick.h
similarity index 100%
rename from src/vendor/glfw-3.3.8/src/linux_joystick.h
rename to src/lib/src/vendor/glfw-3.3.8/src/linux_joystick.h
diff --git a/src/vendor/glfw-3.3.8/src/mappings.h b/src/lib/src/vendor/glfw-3.3.8/src/mappings.h
similarity index 100%
rename from src/vendor/glfw-3.3.8/src/mappings.h
rename to src/lib/src/vendor/glfw-3.3.8/src/mappings.h
diff --git a/src/vendor/glfw-3.3.8/src/mappings.h.in b/src/lib/src/vendor/glfw-3.3.8/src/mappings.h.in
similarity index 100%
rename from src/vendor/glfw-3.3.8/src/mappings.h.in
rename to src/lib/src/vendor/glfw-3.3.8/src/mappings.h.in
diff --git a/src/vendor/glfw-3.3.8/src/monitor.c b/src/lib/src/vendor/glfw-3.3.8/src/monitor.c
similarity index 100%
rename from src/vendor/glfw-3.3.8/src/monitor.c
rename to src/lib/src/vendor/glfw-3.3.8/src/monitor.c
diff --git a/src/vendor/glfw-3.3.8/src/nsgl_context.h b/src/lib/src/vendor/glfw-3.3.8/src/nsgl_context.h
similarity index 100%
rename from src/vendor/glfw-3.3.8/src/nsgl_context.h
rename to src/lib/src/vendor/glfw-3.3.8/src/nsgl_context.h
diff --git a/src/vendor/glfw-3.3.8/src/nsgl_context.m b/src/lib/src/vendor/glfw-3.3.8/src/nsgl_context.m
similarity index 100%
rename from src/vendor/glfw-3.3.8/src/nsgl_context.m
rename to src/lib/src/vendor/glfw-3.3.8/src/nsgl_context.m
diff --git a/src/vendor/glfw-3.3.8/src/null_init.c b/src/lib/src/vendor/glfw-3.3.8/src/null_init.c
similarity index 100%
rename from src/vendor/glfw-3.3.8/src/null_init.c
rename to src/lib/src/vendor/glfw-3.3.8/src/null_init.c
diff --git a/src/vendor/glfw-3.3.8/src/null_joystick.c b/src/lib/src/vendor/glfw-3.3.8/src/null_joystick.c
similarity index 100%
rename from src/vendor/glfw-3.3.8/src/null_joystick.c
rename to src/lib/src/vendor/glfw-3.3.8/src/null_joystick.c
diff --git a/src/vendor/glfw-3.3.8/src/null_joystick.h b/src/lib/src/vendor/glfw-3.3.8/src/null_joystick.h
similarity index 100%
rename from src/vendor/glfw-3.3.8/src/null_joystick.h
rename to src/lib/src/vendor/glfw-3.3.8/src/null_joystick.h
diff --git a/src/vendor/glfw-3.3.8/src/null_monitor.c b/src/lib/src/vendor/glfw-3.3.8/src/null_monitor.c
similarity index 100%
rename from src/vendor/glfw-3.3.8/src/null_monitor.c
rename to src/lib/src/vendor/glfw-3.3.8/src/null_monitor.c
diff --git a/src/vendor/glfw-3.3.8/src/null_platform.h b/src/lib/src/vendor/glfw-3.3.8/src/null_platform.h
similarity index 100%
rename from src/vendor/glfw-3.3.8/src/null_platform.h
rename to src/lib/src/vendor/glfw-3.3.8/src/null_platform.h
diff --git a/src/vendor/glfw-3.3.8/src/null_window.c b/src/lib/src/vendor/glfw-3.3.8/src/null_window.c
similarity index 100%
rename from src/vendor/glfw-3.3.8/src/null_window.c
rename to src/lib/src/vendor/glfw-3.3.8/src/null_window.c
diff --git a/src/vendor/glfw-3.3.8/src/osmesa_context.c b/src/lib/src/vendor/glfw-3.3.8/src/osmesa_context.c
similarity index 100%
rename from src/vendor/glfw-3.3.8/src/osmesa_context.c
rename to src/lib/src/vendor/glfw-3.3.8/src/osmesa_context.c
diff --git a/src/vendor/glfw-3.3.8/src/osmesa_context.h b/src/lib/src/vendor/glfw-3.3.8/src/osmesa_context.h
similarity index 100%
rename from src/vendor/glfw-3.3.8/src/osmesa_context.h
rename to src/lib/src/vendor/glfw-3.3.8/src/osmesa_context.h
diff --git a/src/vendor/glfw-3.3.8/src/posix_thread.c b/src/lib/src/vendor/glfw-3.3.8/src/posix_thread.c
similarity index 100%
rename from src/vendor/glfw-3.3.8/src/posix_thread.c
rename to src/lib/src/vendor/glfw-3.3.8/src/posix_thread.c
diff --git a/src/vendor/glfw-3.3.8/src/posix_thread.h b/src/lib/src/vendor/glfw-3.3.8/src/posix_thread.h
similarity index 100%
rename from src/vendor/glfw-3.3.8/src/posix_thread.h
rename to src/lib/src/vendor/glfw-3.3.8/src/posix_thread.h
diff --git a/src/vendor/glfw-3.3.8/src/posix_time.c b/src/lib/src/vendor/glfw-3.3.8/src/posix_time.c
similarity index 100%
rename from src/vendor/glfw-3.3.8/src/posix_time.c
rename to src/lib/src/vendor/glfw-3.3.8/src/posix_time.c
diff --git a/src/vendor/glfw-3.3.8/src/posix_time.h b/src/lib/src/vendor/glfw-3.3.8/src/posix_time.h
similarity index 100%
rename from src/vendor/glfw-3.3.8/src/posix_time.h
rename to src/lib/src/vendor/glfw-3.3.8/src/posix_time.h
diff --git a/src/vendor/glfw-3.3.8/src/vulkan.c b/src/lib/src/vendor/glfw-3.3.8/src/vulkan.c
similarity index 100%
rename from src/vendor/glfw-3.3.8/src/vulkan.c
rename to src/lib/src/vendor/glfw-3.3.8/src/vulkan.c
diff --git a/src/vendor/glfw-3.3.8/src/wgl_context.c b/src/lib/src/vendor/glfw-3.3.8/src/wgl_context.c
similarity index 100%
rename from src/vendor/glfw-3.3.8/src/wgl_context.c
rename to src/lib/src/vendor/glfw-3.3.8/src/wgl_context.c
diff --git a/src/vendor/glfw-3.3.8/src/wgl_context.h b/src/lib/src/vendor/glfw-3.3.8/src/wgl_context.h
similarity index 100%
rename from src/vendor/glfw-3.3.8/src/wgl_context.h
rename to src/lib/src/vendor/glfw-3.3.8/src/wgl_context.h
diff --git a/src/vendor/glfw-3.3.8/src/win32_init.c b/src/lib/src/vendor/glfw-3.3.8/src/win32_init.c
similarity index 100%
rename from src/vendor/glfw-3.3.8/src/win32_init.c
rename to src/lib/src/vendor/glfw-3.3.8/src/win32_init.c
diff --git a/src/vendor/glfw-3.3.8/src/win32_joystick.c b/src/lib/src/vendor/glfw-3.3.8/src/win32_joystick.c
similarity index 100%
rename from src/vendor/glfw-3.3.8/src/win32_joystick.c
rename to src/lib/src/vendor/glfw-3.3.8/src/win32_joystick.c
diff --git a/src/vendor/glfw-3.3.8/src/win32_joystick.h b/src/lib/src/vendor/glfw-3.3.8/src/win32_joystick.h
similarity index 100%
rename from src/vendor/glfw-3.3.8/src/win32_joystick.h
rename to src/lib/src/vendor/glfw-3.3.8/src/win32_joystick.h
diff --git a/src/vendor/glfw-3.3.8/src/win32_monitor.c b/src/lib/src/vendor/glfw-3.3.8/src/win32_monitor.c
similarity index 100%
rename from src/vendor/glfw-3.3.8/src/win32_monitor.c
rename to src/lib/src/vendor/glfw-3.3.8/src/win32_monitor.c
diff --git a/src/vendor/glfw-3.3.8/src/win32_platform.h b/src/lib/src/vendor/glfw-3.3.8/src/win32_platform.h
similarity index 100%
rename from src/vendor/glfw-3.3.8/src/win32_platform.h
rename to src/lib/src/vendor/glfw-3.3.8/src/win32_platform.h
diff --git a/src/vendor/glfw-3.3.8/src/win32_thread.c b/src/lib/src/vendor/glfw-3.3.8/src/win32_thread.c
similarity index 100%
rename from src/vendor/glfw-3.3.8/src/win32_thread.c
rename to src/lib/src/vendor/glfw-3.3.8/src/win32_thread.c
diff --git a/src/vendor/glfw-3.3.8/src/win32_time.c b/src/lib/src/vendor/glfw-3.3.8/src/win32_time.c
similarity index 100%
rename from src/vendor/glfw-3.3.8/src/win32_time.c
rename to src/lib/src/vendor/glfw-3.3.8/src/win32_time.c
diff --git a/src/vendor/glfw-3.3.8/src/win32_window.c b/src/lib/src/vendor/glfw-3.3.8/src/win32_window.c
similarity index 100%
rename from src/vendor/glfw-3.3.8/src/win32_window.c
rename to src/lib/src/vendor/glfw-3.3.8/src/win32_window.c
diff --git a/src/vendor/glfw-3.3.8/src/window.c b/src/lib/src/vendor/glfw-3.3.8/src/window.c
similarity index 100%
rename from src/vendor/glfw-3.3.8/src/window.c
rename to src/lib/src/vendor/glfw-3.3.8/src/window.c
diff --git a/src/vendor/glfw-3.3.8/src/wl_init.c b/src/lib/src/vendor/glfw-3.3.8/src/wl_init.c
similarity index 100%
rename from src/vendor/glfw-3.3.8/src/wl_init.c
rename to src/lib/src/vendor/glfw-3.3.8/src/wl_init.c
diff --git a/src/vendor/glfw-3.3.8/src/wl_monitor.c b/src/lib/src/vendor/glfw-3.3.8/src/wl_monitor.c
similarity index 100%
rename from src/vendor/glfw-3.3.8/src/wl_monitor.c
rename to src/lib/src/vendor/glfw-3.3.8/src/wl_monitor.c
diff --git a/src/vendor/glfw-3.3.8/src/wl_platform.h b/src/lib/src/vendor/glfw-3.3.8/src/wl_platform.h
similarity index 100%
rename from src/vendor/glfw-3.3.8/src/wl_platform.h
rename to src/lib/src/vendor/glfw-3.3.8/src/wl_platform.h
diff --git a/src/vendor/glfw-3.3.8/src/wl_window.c b/src/lib/src/vendor/glfw-3.3.8/src/wl_window.c
similarity index 100%
rename from src/vendor/glfw-3.3.8/src/wl_window.c
rename to src/lib/src/vendor/glfw-3.3.8/src/wl_window.c
diff --git a/src/vendor/glfw-3.3.8/src/x11_init.c b/src/lib/src/vendor/glfw-3.3.8/src/x11_init.c
similarity index 100%
rename from src/vendor/glfw-3.3.8/src/x11_init.c
rename to src/lib/src/vendor/glfw-3.3.8/src/x11_init.c
diff --git a/src/vendor/glfw-3.3.8/src/x11_monitor.c b/src/lib/src/vendor/glfw-3.3.8/src/x11_monitor.c
similarity index 100%
rename from src/vendor/glfw-3.3.8/src/x11_monitor.c
rename to src/lib/src/vendor/glfw-3.3.8/src/x11_monitor.c
diff --git a/src/vendor/glfw-3.3.8/src/x11_platform.h b/src/lib/src/vendor/glfw-3.3.8/src/x11_platform.h
similarity index 100%
rename from src/vendor/glfw-3.3.8/src/x11_platform.h
rename to src/lib/src/vendor/glfw-3.3.8/src/x11_platform.h
diff --git a/src/vendor/glfw-3.3.8/src/x11_window.c b/src/lib/src/vendor/glfw-3.3.8/src/x11_window.c
similarity index 100%
rename from src/vendor/glfw-3.3.8/src/x11_window.c
rename to src/lib/src/vendor/glfw-3.3.8/src/x11_window.c
diff --git a/src/vendor/glfw-3.3.8/src/xkb_unicode.c b/src/lib/src/vendor/glfw-3.3.8/src/xkb_unicode.c
similarity index 100%
rename from src/vendor/glfw-3.3.8/src/xkb_unicode.c
rename to src/lib/src/vendor/glfw-3.3.8/src/xkb_unicode.c
diff --git a/src/vendor/glfw-3.3.8/src/xkb_unicode.h b/src/lib/src/vendor/glfw-3.3.8/src/xkb_unicode.h
similarity index 100%
rename from src/vendor/glfw-3.3.8/src/xkb_unicode.h
rename to src/lib/src/vendor/glfw-3.3.8/src/xkb_unicode.h
diff --git a/src/vendor/glfw-3.3.8/tests/CMakeLists.txt b/src/lib/src/vendor/glfw-3.3.8/tests/CMakeLists.txt
similarity index 100%
rename from src/vendor/glfw-3.3.8/tests/CMakeLists.txt
rename to src/lib/src/vendor/glfw-3.3.8/tests/CMakeLists.txt
diff --git a/src/vendor/glfw-3.3.8/tests/clipboard.c b/src/lib/src/vendor/glfw-3.3.8/tests/clipboard.c
similarity index 100%
rename from src/vendor/glfw-3.3.8/tests/clipboard.c
rename to src/lib/src/vendor/glfw-3.3.8/tests/clipboard.c
diff --git a/src/vendor/glfw-3.3.8/tests/cursor.c b/src/lib/src/vendor/glfw-3.3.8/tests/cursor.c
similarity index 100%
rename from src/vendor/glfw-3.3.8/tests/cursor.c
rename to src/lib/src/vendor/glfw-3.3.8/tests/cursor.c
diff --git a/src/vendor/glfw-3.3.8/tests/empty.c b/src/lib/src/vendor/glfw-3.3.8/tests/empty.c
similarity index 100%
rename from src/vendor/glfw-3.3.8/tests/empty.c
rename to src/lib/src/vendor/glfw-3.3.8/tests/empty.c
diff --git a/src/vendor/glfw-3.3.8/tests/events.c b/src/lib/src/vendor/glfw-3.3.8/tests/events.c
similarity index 100%
rename from src/vendor/glfw-3.3.8/tests/events.c
rename to src/lib/src/vendor/glfw-3.3.8/tests/events.c
diff --git a/src/vendor/glfw-3.3.8/tests/gamma.c b/src/lib/src/vendor/glfw-3.3.8/tests/gamma.c
similarity index 100%
rename from src/vendor/glfw-3.3.8/tests/gamma.c
rename to src/lib/src/vendor/glfw-3.3.8/tests/gamma.c
diff --git a/src/vendor/glfw-3.3.8/tests/glfwinfo.c b/src/lib/src/vendor/glfw-3.3.8/tests/glfwinfo.c
similarity index 100%
rename from src/vendor/glfw-3.3.8/tests/glfwinfo.c
rename to src/lib/src/vendor/glfw-3.3.8/tests/glfwinfo.c
diff --git a/src/vendor/glfw-3.3.8/tests/icon.c b/src/lib/src/vendor/glfw-3.3.8/tests/icon.c
similarity index 100%
rename from src/vendor/glfw-3.3.8/tests/icon.c
rename to src/lib/src/vendor/glfw-3.3.8/tests/icon.c
diff --git a/src/vendor/glfw-3.3.8/tests/iconify.c b/src/lib/src/vendor/glfw-3.3.8/tests/iconify.c
similarity index 100%
rename from src/vendor/glfw-3.3.8/tests/iconify.c
rename to src/lib/src/vendor/glfw-3.3.8/tests/iconify.c
diff --git a/src/vendor/glfw-3.3.8/tests/inputlag.c b/src/lib/src/vendor/glfw-3.3.8/tests/inputlag.c
similarity index 100%
rename from src/vendor/glfw-3.3.8/tests/inputlag.c
rename to src/lib/src/vendor/glfw-3.3.8/tests/inputlag.c
diff --git a/src/vendor/glfw-3.3.8/tests/joysticks.c b/src/lib/src/vendor/glfw-3.3.8/tests/joysticks.c
similarity index 100%
rename from src/vendor/glfw-3.3.8/tests/joysticks.c
rename to src/lib/src/vendor/glfw-3.3.8/tests/joysticks.c
diff --git a/src/vendor/glfw-3.3.8/tests/monitors.c b/src/lib/src/vendor/glfw-3.3.8/tests/monitors.c
similarity index 100%
rename from src/vendor/glfw-3.3.8/tests/monitors.c
rename to src/lib/src/vendor/glfw-3.3.8/tests/monitors.c
diff --git a/src/vendor/glfw-3.3.8/tests/msaa.c b/src/lib/src/vendor/glfw-3.3.8/tests/msaa.c
similarity index 100%
rename from src/vendor/glfw-3.3.8/tests/msaa.c
rename to src/lib/src/vendor/glfw-3.3.8/tests/msaa.c
diff --git a/src/vendor/glfw-3.3.8/tests/opacity.c b/src/lib/src/vendor/glfw-3.3.8/tests/opacity.c
similarity index 100%
rename from src/vendor/glfw-3.3.8/tests/opacity.c
rename to src/lib/src/vendor/glfw-3.3.8/tests/opacity.c
diff --git a/src/vendor/glfw-3.3.8/tests/reopen.c b/src/lib/src/vendor/glfw-3.3.8/tests/reopen.c
similarity index 100%
rename from src/vendor/glfw-3.3.8/tests/reopen.c
rename to src/lib/src/vendor/glfw-3.3.8/tests/reopen.c
diff --git a/src/vendor/glfw-3.3.8/tests/tearing.c b/src/lib/src/vendor/glfw-3.3.8/tests/tearing.c
similarity index 100%
rename from src/vendor/glfw-3.3.8/tests/tearing.c
rename to src/lib/src/vendor/glfw-3.3.8/tests/tearing.c
diff --git a/src/vendor/glfw-3.3.8/tests/threads.c b/src/lib/src/vendor/glfw-3.3.8/tests/threads.c
similarity index 100%
rename from src/vendor/glfw-3.3.8/tests/threads.c
rename to src/lib/src/vendor/glfw-3.3.8/tests/threads.c
diff --git a/src/vendor/glfw-3.3.8/tests/timeout.c b/src/lib/src/vendor/glfw-3.3.8/tests/timeout.c
similarity index 100%
rename from src/vendor/glfw-3.3.8/tests/timeout.c
rename to src/lib/src/vendor/glfw-3.3.8/tests/timeout.c
diff --git a/src/vendor/glfw-3.3.8/tests/title.c b/src/lib/src/vendor/glfw-3.3.8/tests/title.c
similarity index 100%
rename from src/vendor/glfw-3.3.8/tests/title.c
rename to src/lib/src/vendor/glfw-3.3.8/tests/title.c
diff --git a/src/vendor/glfw-3.3.8/tests/triangle-vulkan.c b/src/lib/src/vendor/glfw-3.3.8/tests/triangle-vulkan.c
similarity index 100%
rename from src/vendor/glfw-3.3.8/tests/triangle-vulkan.c
rename to src/lib/src/vendor/glfw-3.3.8/tests/triangle-vulkan.c
diff --git a/src/vendor/glfw-3.3.8/tests/windows.c b/src/lib/src/vendor/glfw-3.3.8/tests/windows.c
similarity index 100%
rename from src/vendor/glfw-3.3.8/tests/windows.c
rename to src/lib/src/vendor/glfw-3.3.8/tests/windows.c
diff --git a/src/lib/window.cpp b/src/lib/src/window.cpp
similarity index 98%
rename from src/lib/window.cpp
rename to src/lib/src/window.cpp
index 8b2bf12..948496e 100644
--- a/src/lib/window.cpp
+++ b/src/lib/src/window.cpp
@@ -1,4 +1,4 @@
-#include "window.hpp"
+#include "paradiso/window.hpp"
 
 #include "glad/glad.h"
 #include "GLFW/glfw3.h"
@@ -157,7 +157,7 @@ struct Window::impl {
 
     bool update(Window::on_updatecallback_t cb) {
         if (window_ && !glfwWindowShouldClose(window_)) {
-            // TODO lock an unlock the current input system to allow for late
+            // TODO lock and unlock the current input system to allow for late
             // events coming in
             //            input::get().reset();
 
diff --git a/src/main.cpp b/src/main.cpp
index 895b80f..a93995c 100644
--- a/src/main.cpp
+++ b/src/main.cpp
@@ -5,13 +5,13 @@
  *
  */
 
-#include "bitmap.hpp"
-#include "context.hpp"
-#include "geometry.hpp"
-#include "renderer.hpp"
-#include "shader.hpp"
-#include "sprite.hpp"
-#include "window.hpp"
+#include <paradiso/bitmap.hpp>
+#include <paradiso/context.hpp>
+#include <paradiso/geometry.hpp>
+#include <paradiso/renderer.hpp>
+#include <paradiso/shader.hpp>
+#include <paradiso/sprite.hpp>
+#include <paradiso/window.hpp>
 
 #include <iomanip>
 #include <iostream>
@@ -107,12 +107,7 @@ auto main() -> int {
         });
         ctx.clear();
 
-
-        shader.use();
-        
-        renderer.draw(sprite);
-
-        // if (frame_counter-- == 0) want_close = true;
+        renderer.draw(sprite, shader);
 
         return !want_close;
     })) {