diff --git a/.idea/vcs.xml b/.idea/vcs.xml
index adc159a8..013b5d8f 100644
--- a/.idea/vcs.xml
+++ b/.idea/vcs.xml
@@ -3,5 +3,6 @@
+
\ No newline at end of file
diff --git a/include/omath/3d_primitives/box.hpp b/include/omath/3d_primitives/box.hpp
index 49cc4751..3abb9a44 100644
--- a/include/omath/3d_primitives/box.hpp
+++ b/include/omath/3d_primitives/box.hpp
@@ -3,10 +3,9 @@
//
#pragma once
-#include
+#include "omath/linear_algebra/vector3.hpp"
#include "omath/triangle.hpp"
-#include "omath/vector3.hpp"
-
+#include
namespace omath::primitives
{
diff --git a/include/omath/3d_primitives/plane.hpp b/include/omath/3d_primitives/plane.hpp
index 62ff9939..39c0f2c4 100644
--- a/include/omath/3d_primitives/plane.hpp
+++ b/include/omath/3d_primitives/plane.hpp
@@ -3,8 +3,8 @@
//
#pragma once
+#include "omath/linear_algebra/vector3.hpp"
#include "omath/triangle.hpp"
-#include "omath/vector3.hpp"
#include
namespace omath::primitives
diff --git a/include/omath/collision/line_tracer.hpp b/include/omath/collision/line_tracer.hpp
index a79a3cf5..f2c16275 100644
--- a/include/omath/collision/line_tracer.hpp
+++ b/include/omath/collision/line_tracer.hpp
@@ -3,8 +3,8 @@
//
#pragma once
+#include "omath/linear_algebra/vector3.hpp"
#include "omath/triangle.hpp"
-#include "omath/vector3.hpp"
namespace omath::collision
{
diff --git a/include/omath/color.hpp b/include/omath/color.hpp
index ba28d084..69e554fc 100644
--- a/include/omath/color.hpp
+++ b/include/omath/color.hpp
@@ -4,8 +4,7 @@
#pragma once
-#include "omath/vector3.hpp"
-#include "omath/vector4.hpp"
+#include "linear_algebra/vector4.hpp"
#include
namespace omath
diff --git a/include/omath/engines/iw_engine/constants.hpp b/include/omath/engines/iw_engine/constants.hpp
index 48e29c19..63d1177d 100644
--- a/include/omath/engines/iw_engine/constants.hpp
+++ b/include/omath/engines/iw_engine/constants.hpp
@@ -3,9 +3,9 @@
//
#pragma once
+#include "omath/linear_algebra/mat.hpp"
+#include "omath/linear_algebra/vector3.hpp"
#include
-#include
-#include
#include
namespace omath::iw_engine
diff --git a/include/omath/engines/opengl_engine/constants.hpp b/include/omath/engines/opengl_engine/constants.hpp
index ff62f46e..4f5a955a 100644
--- a/include/omath/engines/opengl_engine/constants.hpp
+++ b/include/omath/engines/opengl_engine/constants.hpp
@@ -3,9 +3,9 @@
//
#pragma once
+#include "omath/linear_algebra/mat.hpp"
+#include "omath/linear_algebra/vector3.hpp"
#include
-#include
-#include
#include
namespace omath::opengl_engine
diff --git a/include/omath/engines/source_engine/constants.hpp b/include/omath/engines/source_engine/constants.hpp
index e081df50..33df18ba 100644
--- a/include/omath/engines/source_engine/constants.hpp
+++ b/include/omath/engines/source_engine/constants.hpp
@@ -3,9 +3,9 @@
//
#pragma once
+#include "omath/linear_algebra/mat.hpp"
+#include "omath/linear_algebra/vector3.hpp"
#include
-#include
-#include
#include
namespace omath::source_engine
diff --git a/include/omath/engines/unity_engine/constants.hpp b/include/omath/engines/unity_engine/constants.hpp
index d1308efe..81151bc6 100644
--- a/include/omath/engines/unity_engine/constants.hpp
+++ b/include/omath/engines/unity_engine/constants.hpp
@@ -4,9 +4,9 @@
#pragma once
+#include "omath/linear_algebra/mat.hpp"
+#include "omath/linear_algebra/vector3.hpp"
#include
-#include
-#include
#include
namespace omath::unity_engine
diff --git a/include/omath/engines/unreal_engine/constants.hpp b/include/omath/engines/unreal_engine/constants.hpp
index 16f93f73..e2e0eb7e 100644
--- a/include/omath/engines/unreal_engine/constants.hpp
+++ b/include/omath/engines/unreal_engine/constants.hpp
@@ -4,9 +4,9 @@
#pragma once
+#include "omath/linear_algebra/mat.hpp"
+#include "omath/linear_algebra/vector3.hpp"
#include
-#include
-#include
#include
namespace omath::unreal_engine
diff --git a/include/omath/mat.hpp b/include/omath/linear_algebra/mat.hpp
similarity index 99%
rename from include/omath/mat.hpp
rename to include/omath/linear_algebra/mat.hpp
index 1f1f0864..95276dcc 100644
--- a/include/omath/mat.hpp
+++ b/include/omath/linear_algebra/mat.hpp
@@ -2,7 +2,7 @@
// Created by vlad on 9/29/2024.
//
#pragma once
-#include "omath/vector3.hpp"
+#include "vector3.hpp"
#include
#include
#include
diff --git a/include/omath/matrix.hpp b/include/omath/linear_algebra/matrix.hpp
similarity index 77%
rename from include/omath/matrix.hpp
rename to include/omath/linear_algebra/matrix.hpp
index a8dc520f..32e9a87f 100644
--- a/include/omath/matrix.hpp
+++ b/include/omath/linear_algebra/matrix.hpp
@@ -1,7 +1,22 @@
#pragma once
-#ifdef OMATH_ENABLE_LEGACY
+/*
+THIS CODE IS DEPRECATED NEVER EVER USE Matrix CLASS
+AND VERY SLOW USE Mat INSTEAD!!!!!!!!!!!
+⠛⠛⣿⣿⣿⣿⣿⡷⢶⣦⣶⣶⣤⣤⣤⣀⠀⠀⠀
+⠀⠀⠀⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣷⡀⠀
+⠀⠀⠀⠉⠉⠉⠙⠻⣿⣿⠿⠿⠛⠛⠛⠻⣿⣿⣇⠀
+⠀⠀⢤⣀⣀⣀⠀⠀⢸⣷⡄⠀⣁⣀⣤⣴⣿⣿⣿⣆
+⠀⠀⠀⠀⠹⠏⠀⠀⠀⣿⣧⠀⠹⣿⣿⣿⣿⣿⡿⣿
+⠀⠀⠀⠀⠀⠀⠀⠀⠀⠛⠿⠇⢀⣼⣿⣿⠛⢯⡿⡟
+⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠦⠴⢿⢿⣿⡿⠷⠀⣿⠀
+⠀⠀⠀⠀⠀⠀⠀⠙⣷⣶⣶⣤⣤⣤⣤⣤⣶⣦⠃⠀
+⠀⠀⠀⠀⠀⠀⠀⢐⣿⣾⣿⣿⣿⣿⣿⣿⣿⣿⠀⠀
+⠀⠀⠀⠀⠀⠀⠀⠈⣿⣿⣿⣿⣿⣿⣿⣿⣿⡇⠀⠀
+⠀⠀⠀⠀⠀⠀⠀⠀⠀⠙⠻⢿⣿⣿⣿⣿⠟⠁
+*/
+#ifdef OMATH_ENABLE_LEGACY
#include "omath/vector3.hpp"
#include
#include
diff --git a/include/omath/vector2.hpp b/include/omath/linear_algebra/vector2.hpp
similarity index 100%
rename from include/omath/vector2.hpp
rename to include/omath/linear_algebra/vector2.hpp
diff --git a/include/omath/vector3.hpp b/include/omath/linear_algebra/vector3.hpp
similarity index 99%
rename from include/omath/vector3.hpp
rename to include/omath/linear_algebra/vector3.hpp
index 3c37b877..e5f4fdaf 100644
--- a/include/omath/vector3.hpp
+++ b/include/omath/linear_algebra/vector3.hpp
@@ -5,7 +5,7 @@
#pragma once
#include "omath/angle.hpp"
-#include "omath/vector2.hpp"
+#include "omath/linear_algebra/vector2.hpp"
#include
#include
#include
diff --git a/include/omath/vector4.hpp b/include/omath/linear_algebra/vector4.hpp
similarity index 99%
rename from include/omath/vector4.hpp
rename to include/omath/linear_algebra/vector4.hpp
index 2b5d8a02..95c095f6 100644
--- a/include/omath/vector4.hpp
+++ b/include/omath/linear_algebra/vector4.hpp
@@ -4,7 +4,7 @@
#pragma once
#include
-#include
+#include "omath/linear_algebra/vector3.hpp"
namespace omath
{
diff --git a/include/omath/omath.hpp b/include/omath/omath.hpp
index 84e40056..2276798b 100644
--- a/include/omath/omath.hpp
+++ b/include/omath/omath.hpp
@@ -10,13 +10,13 @@
#include "omath/angle.hpp"
// Vector classes (in dependency order)
-#include "omath/vector2.hpp"
-#include "omath/vector3.hpp"
-#include "omath/vector4.hpp"
+#include "linear_algebra/vector2.hpp"
+#include "linear_algebra/vector4.hpp"
+#include "omath/linear_algebra/vector3.hpp"
// Matrix classes
-#include "omath/mat.hpp"
-#include "omath/matrix.hpp"
+#include "linear_algebra/matrix.hpp"
+#include "omath/linear_algebra/mat.hpp"
// Color functionality
#include "omath/color.hpp"
diff --git a/include/omath/pathfinding/a_star.hpp b/include/omath/pathfinding/a_star.hpp
index d894e761..218a059c 100644
--- a/include/omath/pathfinding/a_star.hpp
+++ b/include/omath/pathfinding/a_star.hpp
@@ -3,8 +3,8 @@
//
#pragma once
+#include "omath/linear_algebra/vector3.hpp"
#include "omath/pathfinding/navigation_mesh.hpp"
-#include "omath/vector3.hpp"
#include
namespace omath::pathfinding
diff --git a/include/omath/pathfinding/navigation_mesh.hpp b/include/omath/pathfinding/navigation_mesh.hpp
index 75ba634d..35cc6e6b 100644
--- a/include/omath/pathfinding/navigation_mesh.hpp
+++ b/include/omath/pathfinding/navigation_mesh.hpp
@@ -4,7 +4,7 @@
#pragma once
-#include "omath/vector3.hpp"
+#include "omath/linear_algebra/vector3.hpp"
#include
#include
#include
diff --git a/include/omath/projectile_prediction/proj_pred_engine.hpp b/include/omath/projectile_prediction/proj_pred_engine.hpp
index 5117c8be..bbd5a546 100644
--- a/include/omath/projectile_prediction/proj_pred_engine.hpp
+++ b/include/omath/projectile_prediction/proj_pred_engine.hpp
@@ -2,9 +2,9 @@
// Created by Vlad on 2/23/2025.
//
#pragma once
+#include "omath/linear_algebra/vector3.hpp"
#include "omath/projectile_prediction/projectile.hpp"
#include "omath/projectile_prediction/target.hpp"
-#include "omath/vector3.hpp"
namespace omath::projectile_prediction
{
diff --git a/include/omath/projectile_prediction/proj_pred_engine_legacy.hpp b/include/omath/projectile_prediction/proj_pred_engine_legacy.hpp
index fed63063..231db3b7 100644
--- a/include/omath/projectile_prediction/proj_pred_engine_legacy.hpp
+++ b/include/omath/projectile_prediction/proj_pred_engine_legacy.hpp
@@ -4,11 +4,11 @@
#pragma once
+#include "omath/linear_algebra/vector3.hpp"
#include "omath/engines/source_engine/traits/pred_engine_trait.hpp"
#include "omath/projectile_prediction/proj_pred_engine.hpp"
#include "omath/projectile_prediction/projectile.hpp"
#include "omath/projectile_prediction/target.hpp"
-#include "omath/vector3.hpp"
#include
namespace omath::projectile_prediction
diff --git a/include/omath/projectile_prediction/projectile.hpp b/include/omath/projectile_prediction/projectile.hpp
index b772712b..c4560ed4 100644
--- a/include/omath/projectile_prediction/projectile.hpp
+++ b/include/omath/projectile_prediction/projectile.hpp
@@ -3,7 +3,7 @@
//
#pragma once
-#include "omath/vector3.hpp"
+#include "omath/linear_algebra/vector3.hpp"
namespace omath::projectile_prediction
{
diff --git a/include/omath/projectile_prediction/target.hpp b/include/omath/projectile_prediction/target.hpp
index 5b1b0f8f..5b3f5db2 100644
--- a/include/omath/projectile_prediction/target.hpp
+++ b/include/omath/projectile_prediction/target.hpp
@@ -3,7 +3,7 @@
//
#pragma once
-#include "omath/vector3.hpp"
+#include "omath/linear_algebra/vector3.hpp"
namespace omath::projectile_prediction
{
diff --git a/include/omath/projection/camera.hpp b/include/omath/projection/camera.hpp
index b02ccdb7..be44e8e8 100644
--- a/include/omath/projection/camera.hpp
+++ b/include/omath/projection/camera.hpp
@@ -5,10 +5,10 @@
#pragma once
#include "omath/projection/error_codes.hpp"
+#include "omath/linear_algebra/mat.hpp"
+#include "omath/linear_algebra/vector3.hpp"
#include
#include
-#include
-#include
#include
namespace omath::projection
diff --git a/include/omath/triangle.hpp b/include/omath/triangle.hpp
index e15151b0..519c48cb 100644
--- a/include/omath/triangle.hpp
+++ b/include/omath/triangle.hpp
@@ -2,7 +2,7 @@
// Created by Orange on 11/13/2024.
//
#pragma once
-#include "omath/vector3.hpp"
+#include "linear_algebra/vector3.hpp"
namespace omath
{
diff --git a/tests/general/unit_test_line_trace.cpp b/tests/general/unit_test_line_trace.cpp
index 89167bda..31cb6a79 100644
--- a/tests/general/unit_test_line_trace.cpp
+++ b/tests/general/unit_test_line_trace.cpp
@@ -2,10 +2,10 @@
// Revised unit‑test suite for LineTracer (segment‑based Möller–Trumbore)
// Pure ASCII: avoids non‑standard characters that MSVC rejects.
//
-#include "gtest/gtest.h"
+#include "omath/linear_algebra/vector3.hpp"
#include "omath/collision/line_tracer.hpp"
#include "omath/triangle.hpp"
-#include "omath/vector3.hpp"
+#include "gtest/gtest.h"
#include
using namespace omath;
diff --git a/tests/general/unit_test_mat.cpp b/tests/general/unit_test_mat.cpp
index 3c678828..3cbf3de4 100644
--- a/tests/general/unit_test_mat.cpp
+++ b/tests/general/unit_test_mat.cpp
@@ -1,7 +1,7 @@
// UnitTestMat.cpp
+#include "omath/linear_algebra/mat.hpp"
+#include "omath/linear_algebra/vector3.hpp"
#include
-#include "omath/mat.hpp"
-#include "omath/vector3.hpp"
using namespace omath;
diff --git a/tests/general/unit_test_triangle.cpp b/tests/general/unit_test_triangle.cpp
index 28d84120..643ecdc2 100644
--- a/tests/general/unit_test_triangle.cpp
+++ b/tests/general/unit_test_triangle.cpp
@@ -1,11 +1,10 @@
//
// Created by Orange on 1/6/2025.
//
+#include "omath/triangle.hpp"
+#include "omath/linear_algebra/vector3.hpp"
#include // For std::sqrt, std::isinf, std::isnan
#include
-#include
-#include "omath/triangle.hpp"
-
using namespace omath;
diff --git a/tests/general/unit_test_vector2.cpp b/tests/general/unit_test_vector2.cpp
index b24bceaa..a8f641d7 100644
--- a/tests/general/unit_test_vector2.cpp
+++ b/tests/general/unit_test_vector2.cpp
@@ -2,10 +2,10 @@
// Created by Vlad on 02.09.2024.
//
+#include
#include // For FLT_MAX and FLT_MIN
#include // For std::isinf and std::isnan
#include
-#include
using namespace omath;
diff --git a/tests/general/unit_test_vector3.cpp b/tests/general/unit_test_vector3.cpp
index 66e1a60f..f5cc9fb3 100644
--- a/tests/general/unit_test_vector3.cpp
+++ b/tests/general/unit_test_vector3.cpp
@@ -2,11 +2,11 @@
// Created by Vlad on 01.09.2024.
//
+#include
#include // For FLT_MAX, FLT_MIN
#include
#include
#include // For std::numeric_limits
-#include
using namespace omath;
diff --git a/tests/general/unit_test_vector4.cpp b/tests/general/unit_test_vector4.cpp
index 6071a2c2..d274f7a5 100644
--- a/tests/general/unit_test_vector4.cpp
+++ b/tests/general/unit_test_vector4.cpp
@@ -5,9 +5,9 @@
// Vector4Test.cpp
//
+#include
#include
#include // For std::numeric_limits
-#include
using namespace omath;