diff --git a/.idea/.name b/.idea/.name
new file mode 100644
index 0000000000000000000000000000000000000000..8c5da5df7ee72b71ffa2ce5ee4c07c5940d55bae
--- /dev/null
+++ b/.idea/.name
@@ -0,0 +1 @@
+TP3
\ No newline at end of file
diff --git a/.idea/misc.xml b/.idea/misc.xml
index 37e641e9151ca9f6d070a5d9f15bda303604a540..8f5f4fa549573976cd9b187a51b9401fa3f5c8ce 100644
--- a/.idea/misc.xml
+++ b/.idea/misc.xml
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <project version="4">
-  <component name="ProjectRootManager" version="2" languageLevel="JDK_13" project-jdk-name="13" project-jdk-type="JavaSDK">
+  <component name="ProjectRootManager" version="2" languageLevel="JDK_13" default="false" project-jdk-name="13" project-jdk-type="JavaSDK">
     <output url="file://$PROJECT_DIR$/out" />
   </component>
 </project>
\ No newline at end of file
diff --git a/Makefile b/Makefile
index 88798851576c3bad3cfccb4a079d327941f1dc75..b372a59c0acd41cea57d5dc85304ef1efbf67494 100644
--- a/Makefile
+++ b/Makefile
@@ -4,6 +4,7 @@ MAINCLASS=Main
 ## Le chemin vers où votre classe compilée est installée
 # Renommez si nécessaire
 INSTALLDIR=out/production/TP3
+JARFILE=TP3RandomTrees
 
 all: compile install exec
 
@@ -11,17 +12,27 @@ all: compile install exec
 compile:
 	cd src ; make compile
 
+jar: compile
+	cd $(INSTALLDIR); \
+	echo Main-Class: $(subst /,.,$(MAINCLASS)) > manifest.txt ; \
+	jar cvfm $(JARFILE).jar manifest.txt ./
+	mv $(INSTALLDIR)/$(JARFILE).jar ./
+
 install:
 	cd src ; make install
 
 clean:
 	cd src ; make clean ; make cleanInstall
-	rm *.zip
+	rm *.zip *.jar manifest.*
 
 # Cible qui explique comment executer
 exec:
 	java -classpath $(INSTALLDIR) $(MAINCLASS)
 
+# Ou autrement
+# exec: $(JARFILE).jar
+#	java -jar $(JARFILE).jar
+
 # Demarre automatiquement une demonstration de votre programme
 # Il faut que cette demo soit convaincante
 demo:
diff --git a/src/Graphs/Arc.java b/src/Graph/Arc.java
similarity index 95%
rename from src/Graphs/Arc.java
rename to src/Graph/Arc.java
index ae8ce2a6a90bb24a3142e3442ca013c9c673693d..7de560849042aa128cddfe1242c4b5e808cf4735 100644
--- a/src/Graphs/Arc.java
+++ b/src/Graph/Arc.java
@@ -1,4 +1,4 @@
-package Graphs;
+package Graph;
 
 public class Arc {
 	public Edge support;
diff --git a/src/Graphs/Edge.java b/src/Graph/Edge.java
similarity index 97%
rename from src/Graphs/Edge.java
rename to src/Graph/Edge.java
index da68eacf9b7f788c258f67c304f975deba85a25c..a439044e0a90abce9c8e5935f6aa888341e2faf4 100644
--- a/src/Graphs/Edge.java
+++ b/src/Graph/Edge.java
@@ -1,4 +1,4 @@
-package Graphs;
+package Graph;
 
 public class Edge implements Comparable<Edge> {
 
diff --git a/src/Graphs/Graph.java b/src/Graph/Graph.java
similarity index 98%
rename from src/Graphs/Graph.java
rename to src/Graph/Graph.java
index f70ccb6e87009119357066c246b8ecf8ef2d22d6..36dd396eb9f74ec4cd0d5699881e0cc507bc67f4 100644
--- a/src/Graphs/Graph.java
+++ b/src/Graph/Graph.java
@@ -1,4 +1,4 @@
-package Graphs;
+package Graph;
 
 import java.util.ArrayList;
 import java.util.LinkedList;
diff --git a/src/Graphs/RootedTree.java b/src/Graph/RootedTree.java
similarity index 99%
rename from src/Graphs/RootedTree.java
rename to src/Graph/RootedTree.java
index 699eb01140de66522bd6d7f6af99bdecfa306ecd..9793f129f8638680a5fde292419b256c33bc6167 100644
--- a/src/Graphs/RootedTree.java
+++ b/src/Graph/RootedTree.java
@@ -1,4 +1,4 @@
-package Graphs;
+package Graph;
 
 import RandomTreeAlgos.BreadthFirstSearch;
 
diff --git a/src/Graphs/GraphClasses/Complete.java b/src/GraphClasses/Complete.java
similarity index 83%
rename from src/Graphs/GraphClasses/Complete.java
rename to src/GraphClasses/Complete.java
index 1b699843a7ad2163a0c5e3e429662f80c2b2b0bc..8efa0d0c46d4bae9b17fbefdd684bf5df5403404 100644
--- a/src/Graphs/GraphClasses/Complete.java
+++ b/src/GraphClasses/Complete.java
@@ -1,5 +1,5 @@
-package Graphs.GraphClasses;
-import Graphs.* ;
+package GraphClasses;
+import Graph.* ;
 
 public class Complete {
 
diff --git a/src/Graphs/GraphClasses/ErdosRenyi.java b/src/GraphClasses/ErdosRenyi.java
similarity index 94%
rename from src/Graphs/GraphClasses/ErdosRenyi.java
rename to src/GraphClasses/ErdosRenyi.java
index bf2199ed7492ee998825d487027a117c8df66ab4..fc2b562822ba55f0ecd45b63efd653e4cf8bd9c1 100644
--- a/src/Graphs/GraphClasses/ErdosRenyi.java
+++ b/src/GraphClasses/ErdosRenyi.java
@@ -1,5 +1,5 @@
-package Graphs.GraphClasses;
-import Graphs.* ;
+package GraphClasses;
+import Graph.* ;
 import RandomTreeAlgos.BreadthFirstSearch;
 
 import java.util.ArrayList;
diff --git a/src/Graphs/GraphClasses/Grid.java b/src/GraphClasses/Grid.java
similarity index 97%
rename from src/Graphs/GraphClasses/Grid.java
rename to src/GraphClasses/Grid.java
index 9ca60c2f23d31816023fd36613f1cd4da26d13c6..b5a4e959626a9f5f40a75250b5f183d76e4d5f6e 100644
--- a/src/Graphs/GraphClasses/Grid.java
+++ b/src/GraphClasses/Grid.java
@@ -1,5 +1,5 @@
-package Graphs.GraphClasses;
-import Graphs.*;
+package GraphClasses;
+import Graph.*;
 
 import java.util.BitSet;
 
diff --git a/src/Graphs/GraphClasses/Labyrinth.java b/src/GraphClasses/Labyrinth.java
similarity index 99%
rename from src/Graphs/GraphClasses/Labyrinth.java
rename to src/GraphClasses/Labyrinth.java
index 0e8532dbeeef3f4b40ac09b4950f888d94f746a3..b2360f2d5f8819ab9b152a5fae21a241d9171216 100644
--- a/src/Graphs/GraphClasses/Labyrinth.java
+++ b/src/GraphClasses/Labyrinth.java
@@ -1,5 +1,5 @@
-package Graphs.GraphClasses;
-import Graphs.*;
+package GraphClasses;
+import Graph.*;
 
 
 import java.awt.Color;
diff --git a/src/Graphs/GraphClasses/Lollipop.java b/src/GraphClasses/Lollipop.java
similarity index 93%
rename from src/Graphs/GraphClasses/Lollipop.java
rename to src/GraphClasses/Lollipop.java
index bdf29718bcfe5cb10a11fb4b233192d89682fe34..acc8da1cef3e01ad2de98e1cdb7d387bc0e48160 100644
--- a/src/Graphs/GraphClasses/Lollipop.java
+++ b/src/GraphClasses/Lollipop.java
@@ -1,5 +1,5 @@
-package Graphs.GraphClasses;
-import Graphs.*;
+package GraphClasses;
+import Graph.*;
 
 import java.util.ArrayList;
 import java.util.Collections;
diff --git a/src/Main.java b/src/Main.java
index 902b09b29db51822062ccc8ad3df5e5469c865f1..b3b6173a98f3794fd6a2a6ad496ffa1e3cad2a58 100644
--- a/src/Main.java
+++ b/src/Main.java
@@ -1,5 +1,5 @@
-import Graphs.*;
-import Graphs.GraphClasses.*;
+import Graph.*;
+import GraphClasses.*;
 import RandomTreeAlgos.BreadthFirstSearch;
 
 import java.io.IOException;
diff --git a/src/RandomTreeAlgos/BreadthFirstSearch.java b/src/RandomTreeAlgos/BreadthFirstSearch.java
index bdfbb41af0a59ababa405ddf3d55c2c6adda98a9..e2ec5740bf0606f055ed2ba11a8aa0489ed5f230 100644
--- a/src/RandomTreeAlgos/BreadthFirstSearch.java
+++ b/src/RandomTreeAlgos/BreadthFirstSearch.java
@@ -1,7 +1,7 @@
 package RandomTreeAlgos;
 
-import Graphs.Arc;
-import Graphs.Graph;
+import Graph.Arc;
+import Graph.Graph;
 
 import java.util.*;