diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000000000000000000000000000000000000..c795b054e5ade51b7031abab1581a5b7e2d2f5ba
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1 @@
+build
\ No newline at end of file
diff --git a/CMakeLists.txt b/CMakeLists.txt
new file mode 100644
index 0000000000000000000000000000000000000000..ecd91b8772dfb3ee49e097ed65f106647b0f8b32
--- /dev/null
+++ b/CMakeLists.txt
@@ -0,0 +1,33 @@
+cmake_minimum_required(VERSION 3.12)
+set(CMAKE_CXX_STANDARD 23)
+set(CMAKE_CXX_STANDARD_REQUIRED ON)
+
+include(FetchContent)
+FetchContent_Declare(
+  googletest
+  URL https://github.com/google/googletest/archive/03597a01ee50ed33e9dfd640b249b4be3799d395.zip
+)
+
+
+set(gtest_force_shared_crt ON CACHE BOOL "" FORCE)
+FetchContent_MakeAvailable(googletest)
+
+set(CMAKE_BUILD_TYPE Debug)
+
+enable_testing()
+
+project(intersection)
+
+add_executable(
+	tests
+	tests/simple_triangle_tests.cpp
+)
+
+target_link_libraries(
+	tests
+  GTest::gtest_main
+)
+
+include(GoogleTest)
+gtest_discover_tests(tests)
+
diff --git a/triangle.h b/src/triangle.h
similarity index 100%
rename from triangle.h
rename to src/triangle.h
diff --git a/union.cpp b/src/union.cpp
similarity index 100%
rename from union.cpp
rename to src/union.cpp
diff --git a/tests/simple_triangle_tests.cpp b/tests/simple_triangle_tests.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..99f95a03f5d918e282703fc75f94a3fad1273240
--- /dev/null
+++ b/tests/simple_triangle_tests.cpp
@@ -0,0 +1,5 @@
+#include "gtest/gtest.h"
+
+TEST (TriangleIntersectionTests, TriangleIntersection) {
+
+}
\ No newline at end of file