diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index 683bc1d702c22478cfe65a64cc2f9ae4ea501381..f520d8fd8eac0b4857370d6f8e81b9968a196d87 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -29,6 +29,7 @@ target_include_directories(common_lib PUBLIC
     ${GLUT_INCLUDE_DIRS}
     ${GLEW_INCLUDE_DIRS}
     ${CMAKE_CURRENT_SOURCE_DIR}/../common  # Common directory
+    ${CMAKE_CURRENT_SOURCE_DIR}/../common/Linux/
 )
 
 # Link necessary libraries to the common library
diff --git a/src/Camera.h b/src/Camera.h
index 6a62c34af03af951626561ee72d8f215b62bef3e..b2dcac527b0e07412a6fd684638701311488d70c 100644
--- a/src/Camera.h
+++ b/src/Camera.h
@@ -3,7 +3,8 @@
 #define CAMERA_H
 
 #include "VectorUtils4.h" // Assuming this defines vec3, mat4, etc.
-#include <GL/glut.h>
+#include "MicroGlut.h"
+//#include <GL/glut.h>
 
 // Camera class encapsulating all camera-related data and methods
 class Camera {
diff --git a/src/main.cpp b/src/main.cpp
index af5343cbabe0695aa00208722dd5ba92c466a8f7..c342b67ebeb6fb0d7befec8eae943d3ef843acd4 100644
--- a/src/main.cpp
+++ b/src/main.cpp
@@ -9,8 +9,9 @@
 #include <chrono>
 #include <cstdlib> // For exit()
 
-#include <GL/glew.h>
-#include <GL/freeglut.h>
+//#include <GL/glew.h>
+//#include <GL/freeglut.h>
+#include "MicroGlut.h"
 
 #include "GL_utilities.h"
 #include "PCISPH_sim.h" // Header for CUDA function declarations
@@ -92,12 +93,12 @@ void renderBorder()
         (void*)0            // Offset to the position data
     );
 
+    glBindBuffer(GL_ARRAY_BUFFER, 0);
     // Draw boundary particles as points
     glDrawArrays(GL_POINTS, 0, NUM_BOUNDARY_PARTICLES);
 
     // Disable vertex attribute
     glDisableVertexAttribArray(positionAttribLoc);
-    glBindBuffer(GL_ARRAY_BUFFER, 0);
 }
 
 
@@ -119,12 +120,13 @@ void renderFluid()
         (void*)0            // Offset to the position data
     );
 
+    glBindBuffer(GL_ARRAY_BUFFER, 0);
+
     // Draw fluid particles as points
     glDrawArrays(GL_POINTS, 0, NUM_PARTICLES);
 
     // Disable vertex attribute
     glDisableVertexAttribArray(positionAttribLoc);
-    glBindBuffer(GL_ARRAY_BUFFER, 0);
 }