diff --git a/resources/Terrains.xml b/resources/Terrains.xml
index ea2704e001ed0bba764c518bfc86ab957829c308..d1594205ce0628140673ad4723c92a6039017776 100644
--- a/resources/Terrains.xml
+++ b/resources/Terrains.xml
@@ -1,11 +1,11 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <Terrains>
-	<Terrain id="G_PLAIN"  name="Plaine"  FR="1"  FRS="1"  PDR="1"  Desc="Plaine de bon sens">
+	<Terrain id="G_PLAIN"  name="Plaine"  FR="1"  FRS="1"  PDR="1"  Desc="Plaine de bon sens" f_default="../resources/Skins/plaine.bmp">
 	</Terrain>
-	<Terrain id="G_RIVER"  name="Riviere" FR="0"  FRS="1"  PDR="1"  Desc="River, arrete de river">
+	<Terrain id="G_RIVER"  name="Riviere" FR="0"  FRS="1"  PDR="1"  Desc="River, arrete de river" f_default="../resources/Skins/eau.bmp">
 	</Terrain>
-	<Terrain id="G_FOREST"  name="Foret"  FR="1"  FRS="1"  PDR="2"  Desc="Le frère de Fopart">
+	<Terrain id="G_FOREST"  name="Foret"  FR="1"  FRS="1"  PDR="2"  Desc="Le frère de Fopart" f_default="../resources/Skins/foret.bmp">
 	</Terrain>
-	<Terrain id="G_MOUNT"  name="Montagne" FR="0"  FRS="0"  PDR="0"  Desc="Montagne est plus haut que tontagne">
+	<Terrain id="G_MOUNT"  name="Montagne" FR="0"  FRS="0"  PDR="0"  Desc="Montagne est plus haut que tontagne" f_default="../resources/Skins/montagne.bmp">
 	</Terrain>
-</Terrains>
\ No newline at end of file
+</Terrains>
diff --git a/src/ClassesXML.c b/src/ClassesXML.c
index 24040a8f6a6562ed3bf7edefe870a04c3d75c950..d99e167f25711515d5c88b23826110fe003ca0d7 100644
--- a/src/ClassesXML.c
+++ b/src/ClassesXML.c
@@ -9,7 +9,7 @@
 * \brief Fichier contenant le code des fonctions d'aquisition des classes.
 */
 
-int /*Classe**/ Remplir_Classes(FILE* Classes_log, char *filename) /* Remplit le tableau de classes à partir du fichier XML */
+Classe* Remplir_Classes(FILE* Classes_log, char *filename) /* Remplit le tableau de classes à partir du fichier XML */
 {
 
     fprintf(Classes_log,"I) Chargement du fichier XML - Definition des noeuds\n");
@@ -199,13 +199,13 @@ int /*Classe**/ Remplir_Classes(FILE* Classes_log, char *filename) /* Remplit le
 
 
         /* Ajout de la classe remplie au tableau */
-        //ListeClasse[i] = Classe_en_cours;
+        ListeClasse[i] = Classe_en_cours;
     }
 
     roxml_free_node(rootXML);
     roxml_free_node(Classes);
 
 
-    return /*ListeClasse*/ 0;
+    return ListeClasse;
 }
 
diff --git a/src/ClassesXML.h b/src/ClassesXML.h
index a0063d913573a64666e194088787d572befe4b52..5194a56d119be9028a60ce4351e49224610d2a55 100644
--- a/src/ClassesXML.h
+++ b/src/ClassesXML.h
@@ -11,6 +11,6 @@
 #include "classe.h"
 #include "structures.h"
 
-/*Classe**/int Remplir_Classes(FILE* Classes_log, char *filename);
+Classe* Remplir_Classes(FILE* Classes_log, char *filename);
 
 #endif // CLASSESXML_H_INCLUDED
diff --git a/src/TerrainsXML.c b/src/TerrainsXML.c
index 2e7edfa42e00c2a9da5d8905e29fedb127508005..e7cdd1479aea799bd8df66a7d9a54172c63084ac 100644
--- a/src/TerrainsXML.c
+++ b/src/TerrainsXML.c
@@ -46,26 +46,18 @@ Terrain* Remplir_Terrains(FILE* Terrains_XML_log, char *filename) /* Remplit le
         Terrain Terrain_en_cours;
 
         node_t *TerrainXML;
-        char *id_text, *name_text, *FR_text, *FRS_text, *PDR_text, *DESC_text;
+        char *id_text, *name_text, *FR_text, *FRS_text, *PDR_text, *DESC_text, *texture_text;
         int FR_int=0, FRS_int=0, PDR_int=0;
 
         TerrainXML = roxml_get_chld(TerrainsXML, NULL, i);
 
-        node_t *ID, *NAME, *FR, *FRS, *PDR, *DESC;
-
-        ID = roxml_get_attr(TerrainXML, "id", 0);
-        NAME = roxml_get_attr(TerrainXML, "name", 0);
-        FR = roxml_get_attr(TerrainXML, "FR", 0);
-        FRS = roxml_get_attr(TerrainXML, "FRS", 0);
-        PDR = roxml_get_attr(TerrainXML, "PDR", 0);
-        DESC = roxml_get_attr(TerrainXML, "Desc", 0);
-
-        id_text = roxml_get_content(ID, NULL, 0, NULL);
-        name_text = roxml_get_content(NAME, NULL, 0, NULL);
-        FR_text = roxml_get_content(FR, NULL, 0, NULL);
-        FRS_text = roxml_get_content(FRS, NULL, 0, NULL);
-        PDR_text = roxml_get_content(PDR, NULL, 0, NULL);
-        DESC_text = roxml_get_content(DESC, NULL, 0, NULL);
+        id_text = roxml_get_content(roxml_get_attr(TerrainXML, "id", 0), NULL, 0, NULL);
+        name_text = roxml_get_content(roxml_get_attr(TerrainXML, "name", 0), NULL, 0, NULL);
+        FR_text = roxml_get_content(roxml_get_attr(TerrainXML, "FR", 0), NULL, 0, NULL);
+        FRS_text = roxml_get_content(roxml_get_attr(TerrainXML, "FRS", 0), NULL, 0, NULL);
+        PDR_text = roxml_get_content(roxml_get_attr(TerrainXML, "PDR", 0), NULL, 0, NULL);
+        DESC_text = roxml_get_content(roxml_get_attr(TerrainXML, "Desc", 0), NULL, 0, NULL);
+        texture_text = roxml_get_content(roxml_get_attr(TerrainXML, "f_default", 0), NULL, 0, NULL);
 
         fprintf(Terrains_XML_log,"Id : %s\n", id_text);
         fprintf(Terrains_XML_log,"Nom : %s\n", name_text);
@@ -73,6 +65,7 @@ Terrain* Remplir_Terrains(FILE* Terrains_XML_log, char *filename) /* Remplit le
         fprintf(Terrains_XML_log,"FRS : %s\n", FRS_text);
         fprintf(Terrains_XML_log,"PDR : %s\n", PDR_text);
         fprintf(Terrains_XML_log,"DESC : %s\n", DESC_text);
+        fprintf(Terrains_XML_log,"Texture : %s\n", texture_text);
 
         /* Convertion des caractéristiques lues vers les types de la struct Case */
         FR_int = atoi(FR_text);
@@ -106,17 +99,11 @@ Terrain* Remplir_Terrains(FILE* Terrains_XML_log, char *filename) /* Remplit le
 
         Terrain_en_cours.PD_requis=PDR_int;
         strcpy(Terrain_en_cours.nomTerrain, name_text);
+        strcpy(Terrain_en_cours.skin_default, texture_text);
 
         /* Ajout du terrain rempli au tableau */
         fprintf(Terrains_XML_log,"Insertion du terrain %d dans le tableau\n", i+1);
         ListeTerrains[i] = Terrain_en_cours;
-
-        /* Libération des noeuds */
-        roxml_free_node(ID);
-        roxml_free_node(NAME);
-        roxml_free_node(FR);
-        roxml_free_node(FRS);
-        roxml_free_node(PDR);
     }
 
     roxml_free_node(rootXML);
diff --git a/src/main.c b/src/main.c
index bb8964b3b122f983ac32e1f586103806e6f0d891..cf42786680526100815a787be916173dd8de505a 100644
--- a/src/main.c
+++ b/src/main.c
@@ -7,7 +7,6 @@
 #include "SDL.h"
 #include "roxml.h"
 #include "carte.h"
-#include "skinsXML.h"
 
 int init_jeu(char *filename){ /* crée les différents types de terrains, de classes et d'attaques en lisant dans un fichier */
    FILE *fichier_init;
@@ -81,12 +80,27 @@ int main()
 char *Map_A = ExtraireCarte(4);
 printf("Map en version texte : %s\n", Map_A);
 
-Terrain *Terrains_A = Librairie_Terrains("../resources/Terrains.xml");
-printf("info Terrain: %d\n", Terrains_A[1].franchissable);
 
-Librairie_Classes("../resources/Classes.xml");
+/* -------------------------------------*/
+/* Creation d'un package de jeu */
+/* -------------------------------------*/
 
+Game_Package Pack_A;
 
+Classe* Classes_Pack = Librairie_Classes("../resources/Classes.xml");
+Terrain* Terrains_Pack = Librairie_Terrains("../resources/Terrains.xml");
+
+
+Pack_A.Classes_Package = Classes_Pack;
+Pack_A.Terrains_Package = Terrains_Pack;
+
+
+
+
+/* -------------------------------------*/
+/* -------------------------------------*/
+
+printf("On a : %s\n",Pack_A.Terrains_Package[0].skin_default);
 
 main_SDL(Map_A);
 
diff --git a/src/structures.h b/src/structures.h
index db2f1e061ef2889e7690d5d4e515f0af9e579808..de2f7972db7429e29c5e2edb46b74ed9234294fa 100644
--- a/src/structures.h
+++ b/src/structures.h
@@ -50,6 +50,13 @@ typedef enum {faux, vrai} boolean;
     char charac_damaged[50];
 } Skins_Charac;
 
+ typedef struct Skins_GUI{
+    char charac_default[50];
+    char charac_selected[50];
+    char charac_healed[50];
+    char charac_damaged[50];
+} Skins_GUI;
+
 
 /*! \struct Type_terrain structures.h
  * \brief Definition de la structure Type_terrain
@@ -60,6 +67,7 @@ typedef struct Terrain{
     boolean franchissable;/*!< Le terrain est franchissable ou non par un personnage. */
     boolean franchissable_sorts;/*!< Le terrain est franchissable ou non par un sort. */
     unsigned short int PD_requis;/*!< Nombre de PD requis pour traverser le terrain. */
+    char skin_default[50];
 }Terrain;
 
 /*! \struct Case structures.h
@@ -160,6 +168,14 @@ typedef struct Effet_Competence{
 } Effet_Competence;
 
 
+/*! \struct Classe structures.h
+ * \brief Definition de la structure Game_Package
+ * sizeof(Classe) =
+ */
+typedef struct Game_Package{
+    Classe* Classes_Package;
+    Terrain* Terrains_Package;
+}Game_Package;