diff --git a/CelestialObject.c b/CelestialObject.c
index 1bc7bacda333f4c64c48c29611feaa84bb1d6fe9..363c685435d50afe382cbc9d28d2c7f148c5fe09 100644
--- a/CelestialObject.c
+++ b/CelestialObject.c
@@ -8,7 +8,7 @@
 #include "drawing.h"
 
 const double G = 6.67430 * 1E-11;
-const int32_t PREVIOUS_POSITIONS_MAXIMUM_LENGTH = 200;
+const int32_t PREVIOUS_POSITIONS_MAXIMUM_LENGTH = 300;
 
 CelestialObject *celestial_object_create(char *name, double mass, double semi_major_axis, double eccentricity, int32_t drawing_disc_radius, int32_t drawing_color) {
     CelestialObject *object = (CelestialObject *)malloc(sizeof(CelestialObject));
@@ -37,6 +37,30 @@ void celestial_object_destroy(CelestialObject *object) {
     free(object);
 }
 
+int32_t get_zoomed_drawing_disc_radius(CelestialObject *object, double zoom_factor) {
+    if (zoom_factor < 1) {
+        return object->drawing_disc_radius * zoom_factor;
+    }
+
+    return object->drawing_disc_radius;
+}
+
+Vector2 calculate_gravitational_acceleration(int32_t object_index, CelestialObject **objects, int32_t objects_length) {
+    Vector2 a = vector2_create_zero();
+
+    for (int32_t i = 0; i < objects_length; i += 1) {
+        if (i == object_index) {
+            continue;
+        }
+
+        Vector2 r = vector2_substract((i < object_index) ? objects[i]->previous_position : objects[i]->position, objects[object_index]->position);
+        double a_scalar = G * objects[i]->mass * pow(pow(vector2_norm(r), 2), -1);
+        a = vector2_add(a, vector2_multiply(vector2_normalize(r), a_scalar));
+    }
+
+    return a;
+}
+
 void celestial_object_first_update(int32_t object_index, CelestialObject **objects, int32_t objects_length, int32_t main_object_index) {
     CelestialObject *object = objects[object_index];
     CelestialObject *main_object = objects[main_object_index];
@@ -71,22 +95,6 @@ void celestial_object_update(int32_t object_index, CelestialObject **objects, in
     celestial_object_update_previous_positions(object);
 }
 
-Vector2 calculate_gravitational_acceleration(int32_t object_index, CelestialObject **objects, int32_t objects_length) {
-    Vector2 a = vector2_create_zero();
-
-    for (int32_t i = 0; i < objects_length; i += 1) {
-        if (i == object_index) {
-            continue;
-        }
-
-        Vector2 r = vector2_substract((i < object_index) ? objects[i]->previous_position : objects[i]->position, objects[object_index]->position);
-        double a_scalar = G * objects[i]->mass * pow(pow(vector2_norm(r), 2), -1);
-        a = vector2_add(a, vector2_multiply(vector2_normalize(r), a_scalar));
-    }
-
-    return a;
-}
-
 void celestial_object_update_previous_positions(CelestialObject *object) {
     object->previous_positions[0] = object->position;
     int32_t length = object->previous_positions_length;
@@ -118,14 +126,6 @@ void celestial_object_draw(CelestialObject *object, Vector2 reference_frame, dou
     }
 }
 
-int32_t get_zoomed_drawing_disc_radius(CelestialObject *object, double zoom_factor) {
-    if (zoom_factor < 1) {
-        return object->drawing_disc_radius * zoom_factor;
-    }
-
-    return object->drawing_disc_radius;
-}
-
 void celestial_object_draw_name(CelestialObject *object, Vector2 reference_frame, double zoom_factor) {
     Vector2 scaled_position = scale_position(object->position, reference_frame, zoom_factor);
 
diff --git a/CelestialObject.h b/CelestialObject.h
index d395fbdd387f7fe1a657b49f086e1f81ca6114e0..228f870a4be2ef9e06bae066d3971edb1a53d608 100644
--- a/CelestialObject.h
+++ b/CelestialObject.h
@@ -18,12 +18,12 @@ typedef struct CelestialObject {
 
 CelestialObject *celestial_object_create(char *name, double mass, double semi_major_axis, double eccentricity, int32_t drawing_disc_radius, int32_t drawing_color);
 void celestial_object_destroy(CelestialObject *object);
+int32_t get_zoomed_drawing_disc_radius(CelestialObject *object, double zoom_factor);
+Vector2 calculate_gravitational_acceleration(int32_t object_index, CelestialObject **objects, int32_t objects_length);
 void celestial_object_first_update(int32_t object_index, CelestialObject **objects, int32_t objects_length, int32_t main_object_index);
 void celestial_object_update(int32_t object_index, CelestialObject **objects, int32_t objects_length, double interval, double previous_interval);
-Vector2 calculate_gravitational_acceleration(int32_t object_index, CelestialObject **objects, int32_t objects_length);
 void celestial_object_update_previous_positions(CelestialObject *object);
 void celestial_object_draw(CelestialObject *object, Vector2 reference_frame, double zoom_factor);
-int32_t get_zoomed_drawing_disc_radius(CelestialObject *object, double zoom_factor);
 void celestial_object_draw_name(CelestialObject *object, Vector2 reference_frame, double zoom_factor);
 
 #endif