diff --git a/src/food.c b/src/food.c
index 205090351fc62a4c13251f70a526f77a5739adcf..09447e02f1873316a3dd04a0685cf4bb20e4a330 100644
--- a/src/food.c
+++ b/src/food.c
@@ -6,3 +6,4 @@ void SpawnFood(Food *food) {
     food->position.x = rand() % (SCREEN_WIDTH / CELL_SIZE);
     food->position.y = rand() % (SCREEN_HEIGHT / CELL_SIZE);
 }
+
diff --git a/src/game.c b/src/game.c
index 6c7bb6b63a3c98af845287491a9598956e1c728f..d8878d14342da06a703963368ce5a80b6ad6c08a 100644
--- a/src/game.c
+++ b/src/game.c
@@ -28,3 +28,4 @@ void ResetGame(Snake *snake, Food *food, int *score, bool *gameOver) {
     *score = 0;
     *gameOver = false;
 }
+
diff --git a/src/game.h b/src/game.h
index 9a7978fc49352c4d2214219c1386b621d67ccf56..73319333aadb6acac8381b1ba054e20a5ffd41fa 100644
--- a/src/game.h
+++ b/src/game.h
@@ -8,3 +8,4 @@ void HandleInput(Snake *snake);
 void ResetGame(Snake *snake, Food *food, int *score, bool *gameOver);
 
 #endif
+
diff --git a/src/main.c b/src/main.c
index 7f236cb8af9220813b07e1e1937b58fbceff86d1..04f831873bf151029e2d82c769b8257d8bd8ca5e 100644
--- a/src/main.c
+++ b/src/main.c
@@ -148,4 +148,4 @@ int main(void) {
 
     CloseWindow();
     return 0;
-}
\ No newline at end of file
+}
diff --git a/src/obstacle.c b/src/obstacle.c
index d09aa0dada85347465093a93bfc69b2338a993e1..9cdc035d2b57f72af3a7aed4d42b2dda292e7376 100644
--- a/src/obstacle.c
+++ b/src/obstacle.c
@@ -1,5 +1,8 @@
 #include "obstacle.h"
 #include <stdlib.h>
+#include "snake.h"
+#include "game.h"
+#include "food.h"
 
 void InitObstacles(Obstacle obstacles[], int count) {
     for (int i = 0; i < count; i++) {
@@ -65,13 +68,13 @@ void DrawObstacles(const Obstacle obstacles[], int count) {
 }
 
 bool CheckObstacleCollision(const Snake *snake, const Obstacle obstacles[], int count) {
-    Vector2 head = snake->segments[0];
-    for (int i = 0; i < count; i++) {
-        if (obstacles[i].active && 
-            head.x == obstacles[i].position.x && 
-            head.y == obstacles[i].position.y) {
-            return true;
-        }
-    }
-    return false;
+  Position head = snake->segments[0];  // Use Position instead of Vector2
+  for (int i = 0; i < count; i++) {
+      if (obstacles[i].active && 
+          head.x == obstacles[i].position.x && 
+          head.y == obstacles[i].position.y) {
+          return true;
+      }
+  }
+  return false;
 }
\ No newline at end of file
diff --git a/src/obstacle.h b/src/obstacle.h
index d25d24fc93d124e698e690e6d4d8f0d0c58d30ea..a9ea5f5f30192ee0690108400a747b13eaa86371 100644
--- a/src/obstacle.h
+++ b/src/obstacle.h
@@ -2,6 +2,8 @@
 #define OBSTACLE_H
 
 #include "raylib.h"
+#include "snake.h"
+#include "food.h"
 
 #define MAX_OBSTACLES 20
 #define OBSTACLE_COLOR RED
diff --git a/src/snake.c b/src/snake.c
index 8204c22131951a7de037ff72b29a3a6d6350326a..e774e1262dd855e6069ba3afe4926ea66fe46d1c 100644
--- a/src/snake.c
+++ b/src/snake.c
@@ -37,4 +37,4 @@ bool CheckCollision(Snake *snake) {
             return true;
     }
     return false;
-}
+}
\ No newline at end of file
diff --git a/src/snake.h b/src/snake.h
index dbc09491e176367b5886d42570b2e81966b43cba..f01345eec47f41bf013abb03fa7a9eed1eccc456 100644
--- a/src/snake.h
+++ b/src/snake.h
@@ -25,3 +25,4 @@ void UpdateSnake(Snake *snake);
 bool CheckCollision(Snake *snake);
 
 #endif
+