diff --git a/fggl/debug/CMakeLists.txt b/fggl/debug/CMakeLists.txt
index 3cb822eae5e67e1615a43b1cfe189f7bc8fb337f..10fb3421bb6f13ab353af3acdbe881373a1abee6 100644
--- a/fggl/debug/CMakeLists.txt
+++ b/fggl/debug/CMakeLists.txt
@@ -2,17 +2,10 @@ target_sources(fggl
     PRIVATE
 		debug.cpp
 		debug_draw.cpp
-	
-	# imgui
-	imgui/imgui.cpp
-	imgui/imgui_demo.cpp
-	imgui/imgui_draw.cpp
-	imgui/imgui_tables.cpp
-	imgui/imgui_widgets.cpp
-	imgui/imgui_impl_glfw.cpp
-	imgui/imgui_impl_opengl3.cpp
 )
 
 # spdlog for cleaner logging
 find_package(spdlog)
 target_link_libraries(fggl PRIVATE spdlog::spdlog)
+
+add_subdirectory(imgui)
\ No newline at end of file
diff --git a/fggl/debug/debug.cpp b/fggl/debug/debug.cpp
index 0d0e24c190f63c6c1284c04840da46a9ee9056e8..0a336321b0dae2673ed1d539da50ec176a182254 100644
--- a/fggl/debug/debug.cpp
+++ b/fggl/debug/debug.cpp
@@ -15,8 +15,8 @@
 #include <fggl/debug/debug.h>
 
 #include <imgui.h>
-#include <imgui_impl_glfw.h>
-#include <imgui_impl_opengl3.h>
+#include "imgui/include/imgui_impl_glfw.h"
+#include "imgui/include/imgui_impl_opengl3.h"
 
 using fggl::gfx::Window;
 using fggl::debug::DebugUI;
diff --git a/fggl/debug/imgui/CMakeLists.txt b/fggl/debug/imgui/CMakeLists.txt
new file mode 100644
index 0000000000000000000000000000000000000000..9b8e3804d0b8d9209983267d984bf3b27ab9aa07
--- /dev/null
+++ b/fggl/debug/imgui/CMakeLists.txt
@@ -0,0 +1,15 @@
+target_sources( fggl
+    PRIVATE
+        imgui.cpp
+        imgui_demo.cpp
+        imgui_draw.cpp
+        imgui_tables.cpp
+        imgui_widgets.cpp
+        imgui_impl_glfw.cpp
+        imgui_impl_opengl3.cpp
+)
+
+target_include_directories( fggl
+    PRIVATE
+        include/
+)
\ No newline at end of file
diff --git a/fggl/debug/imgui/imgui_impl_glfw.cpp b/fggl/debug/imgui/imgui_impl_glfw.cpp
index 868625833f237d6d33259e0bcf633efd5dd64720..072b66a3c62eb61941e93ff4f687e5a9617a5f41 100644
--- a/fggl/debug/imgui/imgui_impl_glfw.cpp
+++ b/fggl/debug/imgui/imgui_impl_glfw.cpp
@@ -38,7 +38,7 @@
 //  2016-10-15: Misc: Added a void* user_data parameter to Clipboard function handlers.
 
 #include "imgui.h"
-#include "imgui_impl_glfw.h"
+#include "include/imgui_impl_glfw.h"
 
 // GLFW
 #include <GLFW/glfw3.h>
diff --git a/fggl/debug/imgui/imgui_impl_opengl3.cpp b/fggl/debug/imgui/imgui_impl_opengl3.cpp
index b61d89a6ab8e48a971c167589be80f59b5565c97..790c2087c91fd26f0ce853497417466e6dcccee7 100644
--- a/fggl/debug/imgui/imgui_impl_opengl3.cpp
+++ b/fggl/debug/imgui/imgui_impl_opengl3.cpp
@@ -83,7 +83,7 @@
 #endif
 
 #include "imgui.h"
-#include "imgui_impl_opengl3.h"
+#include "include/imgui_impl_opengl3.h"
 #include <stdio.h>
 #if defined(_MSC_VER) && _MSC_VER <= 1500 // MSVC 2008 or earlier
 #include <stddef.h>     // intptr_t
diff --git a/include/imgui_impl_glfw.h b/fggl/debug/imgui/include/imgui_impl_glfw.h
similarity index 100%
rename from include/imgui_impl_glfw.h
rename to fggl/debug/imgui/include/imgui_impl_glfw.h
diff --git a/include/imgui_impl_opengl3.h b/fggl/debug/imgui/include/imgui_impl_opengl3.h
similarity index 100%
rename from include/imgui_impl_opengl3.h
rename to fggl/debug/imgui/include/imgui_impl_opengl3.h
diff --git a/include/imconfig.h b/include/imconfig.h
index ce60ddf48fc853615488de7216a4cbeb64ceb433..9309ff995547aeae255b84a35e667bae55e5ebf1 100644
--- a/include/imconfig.h
+++ b/include/imconfig.h
@@ -27,7 +27,7 @@
 //#define IMGUI_API __declspec( dllimport )
 
 //---- Don't define obsolete functions/enums/behaviors. Consider enabling from time to time after updating to avoid using soon-to-be obsolete function/names.
-//#define IMGUI_DISABLE_OBSOLETE_FUNCTIONS
+#define IMGUI_DISABLE_OBSOLETE_FUNCTIONS
 
 //---- Disable all of Dear ImGui or don't implement standard windows.
 // It is very strongly recommended to NOT disable the demo windows during development. Please read comments in imgui_demo.cpp.
@@ -110,7 +110,7 @@
 //#define IMGUI_DEBUG_TOOL_ITEM_PICKER_EX
 
 //---- Debug Tools: Enable slower asserts
-//#define IMGUI_DEBUG_PARANOID
+// #define IMGUI_DEBUG_PARANOID
 
 //---- Tip: You can add extra functions within the ImGui:: namespace, here or in your own headers files.
 /*