diff --git a/.gitignore b/.gitignore
index e424e2b98cc7386182f8cee1fe21bc21cf465640..afd48089a066879acaf52ff0b681146c5a4f2014 100755
--- a/.gitignore
+++ b/.gitignore
@@ -1,3 +1,4 @@
+.idea
 *.o
 main
 tests
diff --git a/main.c b/main.c
index cbaf99c27381be9dd0ea7ecd1af29a7fea625f10..b3a6193ba593778ea14e4375d17801b05ffd6e30 100755
--- a/main.c
+++ b/main.c
@@ -8,35 +8,34 @@
 #define SCREEN_WIDTH 1000
 #define SCREEN_HEIGHT 1000
 
-int main()
-{
-    srand(time(NULL));
-    struct gfx_context_t *ctxt =
-        gfx_create("Planetary system", SCREEN_WIDTH, SCREEN_HEIGHT);
-    if (!ctxt)
-    {
-        fprintf(stderr, "Graphics initialization failed!\n");
-        return EXIT_FAILURE;
-    }
+// arbitraire, en secondes ?
+#define DELTA_T 0.125
 
-    // TODO : create your system
+int main() {
+	srand(time(NULL));
+	struct gfx_context_t *ctxt =
+			gfx_create("Planetary system", SCREEN_WIDTH, SCREEN_HEIGHT);
+	if (!ctxt) {
+		fprintf(stderr, "Graphics initialization failed!\n");
+		return EXIT_FAILURE;
+	}
+
+	// TODO : create your system
+	system_t sys = create_system(DELTA_T);
 	// end : create system
-    while (true)
-    {
-        gfx_present(ctxt);
-        // TODO : draw the current state of your system
-        // end : draw state of system
-        // TODO : update your system
-        // end : update system
-        gfx_clear(ctxt, COLOR_BLACK);
-        if (gfx_keypressed() == SDLK_ESCAPE)
-        {
-            break;
-        }
-    }
+	while (true) {
+		gfx_present(ctxt);
+		gfx_clear(ctxt, COLOR_BLACK);
+		// TODO : draw the current state of your system
+		// end : draw state of system
+		// TODO : update your system
+		// end : update system
+		if (gfx_keypressed() == SDLK_ESCAPE) { break; }
+	}
 
-    // TODO : Free your system
-    // end : free system
-    gfx_destroy(ctxt);
-    return EXIT_SUCCESS;
+	// TODO : Free your system
+	free_system(sys);
+	// end : free system
+	gfx_destroy(ctxt);
+	return EXIT_SUCCESS;
 }
diff --git a/planet/constants.h b/planet/constants.h
new file mode 100644
index 0000000000000000000000000000000000000000..9eaf91213947f1ebe65b6e44894db3928cbab9b4
--- /dev/null
+++ b/planet/constants.h
@@ -0,0 +1,32 @@
+#ifndef PLANET_CONSTANTS_H
+#define PLANET_CONSTANTS_H
+
+
+#define G 6.67e-11
+#define M_SOLEIL 1.989e30
+
+// source: CRM
+#define M_TERRE     5.9742e24
+// source: wiki
+#define M_MERCURE   3.3011e23
+#define M_VENUS     4.8675e24
+#define M_MARS      6.4171e23
+
+#define A_MERCURE   5.7909e10
+#define A_VENUS     1.0821e11
+#define A_TERRE     1.4960e11
+#define A_MARS      2.2794e11
+
+#define E_MERCURE   0.205630
+#define E_VENUS     0.006772
+#define E_TERRE     0.0167086
+#define E_MARS      0.0934
+
+//TODO: perihelion
+#define PER_MERCURE
+#define PER_VENUS
+#define PER_TERRE
+#define PER_MARS
+
+
+#endif //PLANET_CONSTANTS_H
diff --git a/planet/planet.c b/planet/planet.c
index c9b7767708403aa39a7aeb62bba9b7ab4dcf18b6..a6cbbd74b069f23780f7814acc763272035886db 100755
--- a/planet/planet.c
+++ b/planet/planet.c
@@ -1,8 +1,7 @@
 #include "planet.h"
 #include <stdlib.h>
 
-#define G 6.67e-11
-#define M_SOLEIL 1.989e30
+#include "constants.h"
 
 
 /*
@@ -24,10 +23,25 @@ typedef struct _system
 // TODO : complete all implementations
 
 
-planet_t create_planet(double mass, vec2 pos);
-
-
-system_t create_system(double delta_t);
+planet_t create_planet(double mass, vec2 pos) {
+	planet_t p;
+	p.mass = mass;
+	p.prec_pos = pos;
+	p.pos = pos;
+	return p;
+}
+
+
+system_t create_system(double delta_t) {
+	system_t system;
+	system.star = create_planet(M_SOLEIL, vec2_create_zero());
+	system.nb_planets = 4;
+	system.planets = malloc(system.nb_planets * sizeof(planet_t));
+	double masses[system.nb_planets] = {M_MERCURE, M_VENUS, M_TERRE, M_MARS};
+	//TODO
+	vec2 positions[system.nb_planets] = {vec2_create(), vec2_create(), vec2_create(), vec2_create()};
+	return system;
+}
 
 
 void show_system(struct gfx_context_t *ctxt, system_t *system);
diff --git a/planet/planet.h b/planet/planet.h
index 0b2b87fdefa9709fd7700dc12aa92872afa785a5..cedbe0647134240e6fa0aedf21bc7705110d178d 100755
--- a/planet/planet.h
+++ b/planet/planet.h
@@ -6,19 +6,19 @@
 
 typedef struct _planet
 {
-    double mass;
-    vec2 pos;      // x(t)
-    vec2 prec_pos; // x(t - dt)
+	double mass;
+	vec2 pos;      // x(t)
+	vec2 prec_pos; // x(t - dt)
 } planet_t;
 
 typedef struct _system
 {
-    planet_t star;       // ex. The sun
-    uint32_t nb_planets; // The number of orbiting planets
-    planet_t *planets;   // An array of orbiting planets
+	planet_t star;       // ex. The sun
+	uint32_t nb_planets; // The number of orbiting planets
+	planet_t *planets;   // An array of orbiting planets
 } system_t;
 
-// Those function are not mandatory to implement,
+// These functions are not mandatory to implement,
 // it's rather a hint of what you should have.
 planet_t create_planet(double mass, vec2 pos);
 system_t create_system(double delta_t);