diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000000000000000000000000000000000000..c923efa28657ca279f43cd6d3a40b8e21595bea2
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,9 @@
+.gradle/
+.idea/
+idea/
+build/
+*.iml
+*.ipr
+*.iws
+gradle/wrapper/gradle-wrapper.jar
+out/
diff --git a/.idea/gradle.xml b/.idea/gradle.xml
index 611e7c8ad7b91e576987485e8678b0fdad4193ae..66229213367b0b0a3d7068fb2c7013558ce98ced 100644
--- a/.idea/gradle.xml
+++ b/.idea/gradle.xml
@@ -4,8 +4,11 @@
   <component name="GradleSettings">
     <option name="linkedExternalProjectsSettings">
       <GradleProjectSettings>
+        <option name="delegatedBuild" value="true" />
+        <option name="testRunner" value="GRADLE" />
         <option name="distributionType" value="DEFAULT_WRAPPED" />
         <option name="externalProjectPath" value="$PROJECT_DIR$" />
+        <option name="gradleJvm" value="11" />
         <option name="modules">
           <set>
             <option value="$PROJECT_DIR$" />
diff --git a/.idea/misc.xml b/.idea/misc.xml
index 5d9825616f6a0738b6c655b9418a4d1d99c32d55..6624aa5239bd87293312b297feabe77375fc86df 100644
--- a/.idea/misc.xml
+++ b/.idea/misc.xml
@@ -1,10 +1,9 @@
-<?xml version="1.0" encoding="UTF-8"?>
 <project version="4">
   <component name="ExternalStorageConfigurationManager" enabled="true" />
   <component name="FrameworkDetectionExcludesConfiguration">
     <file type="web" url="file://$PROJECT_DIR$" />
   </component>
-  <component name="ProjectRootManager" version="2" languageLevel="JDK_11" default="true" project-jdk-name="11" project-jdk-type="JavaSDK">
+  <component name="ProjectRootManager" version="2" languageLevel="JDK_11" project-jdk-name="corretto-16" project-jdk-type="JavaSDK">
     <output url="file://$PROJECT_DIR$/out" />
   </component>
 </project>
\ No newline at end of file
diff --git a/.idea/runConfigurations.xml b/.idea/runConfigurations.xml
deleted file mode 100644
index 797acea53eb091cf5b30518802c3073f544adeed..0000000000000000000000000000000000000000
--- a/.idea/runConfigurations.xml
+++ /dev/null
@@ -1,10 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project version="4">
-  <component name="RunConfigurationProducerService">
-    <option name="ignoredProducers">
-      <set>
-        <option value="com.android.tools.idea.compose.preview.runconfiguration.ComposePreviewRunConfigurationProducer" />
-      </set>
-    </option>
-  </component>
-</project>
\ No newline at end of file
diff --git a/build.gradle b/build.gradle
index b2ad662f19ea93442e46941119f429fd634dca89..eaa0ce3658256de23b0d776b4d6e82e518324d2d 100644
--- a/build.gradle
+++ b/build.gradle
@@ -15,19 +15,17 @@ javafx {
 
 version '1.0-SNAPSHOT'
 
-sourceCompatibility = "11"
-targetCompatibility = "11"
+
 
 repositories {
     mavenCentral()
 }
 
 dependencies {
-    testCompile group: 'junit', name: 'junit', version: '4.12'
-    testCompile 'org.hamcrest:hamcrest-library:1.3'
+
 }
 
-mainClassName = "shape.App"
+mainClassName = "serializer.App"
 
 
 test {
diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties
index 6027963bc854237e910c42d73d203a7deb18944a..b4102016571ce7f193aa3c9d12a8df191140a93b 100644
--- a/gradle/wrapper/gradle-wrapper.properties
+++ b/gradle/wrapper/gradle-wrapper.properties
@@ -3,4 +3,4 @@ distributionBase=GRADLE_USER_HOME
 distributionPath=wrapper/dists
 zipStoreBase=GRADLE_USER_HOME
 zipStorePath=wrapper/dists
-distributionUrl=https\://services.gradle.org/distributions/gradle-4.8-all.zip
+distributionUrl=https\://services.gradle.org/distributions/gradle-7.1-all.zip
diff --git a/src/main/java/serializer/App.java b/src/main/java/serializer/App.java
index b939b32a14aa5a406e418fe77582ae5bc7b3eddc..7fd12812c2279a0ee88c2a6ddb3ef64748eb874b 100644
--- a/src/main/java/serializer/App.java
+++ b/src/main/java/serializer/App.java
@@ -3,6 +3,7 @@ package serializer;
 import javafx.application.Application;
 import javafx.scene.Group;
 import javafx.scene.Scene;
+import javafx.scene.control.Button;
 import javafx.stage.Stage;
 
 public class App extends Application {
@@ -18,5 +19,13 @@ public class App extends Application {
         root.getChildren().add(container);
         primaryStage.setScene(new Scene(root));
         primaryStage.show();
+        Button save = new Button("save");
+        root.getChildren().add(save);
+        save.setLayoutX(0);
+        save.setLayoutY(0);
+        root.setOnKeyPressed(event->container.context.keyPressed(event));
+        //save.setOnKeyPressed(event->container.context.keyPressed(event));
+        save.setOnAction(event -> container.write());
+
     }
 }
\ No newline at end of file
diff --git a/src/main/java/serializer/DrawerWithSave.java b/src/main/java/serializer/DrawerWithSave.java
index 69fd4b50862378f83a7dc1a18ae2e6637d201704..2852edf47f756a132226ce5463599bdf1b95601c 100644
--- a/src/main/java/serializer/DrawerWithSave.java
+++ b/src/main/java/serializer/DrawerWithSave.java
@@ -39,7 +39,7 @@ public class DrawerWithSave extends state.Drawer {
         File file = fileChooser.showOpenDialog(getScene().getWindow());
         if (file == null) return;
         try {
-            super.shapes = ShapeReader.read(file, Collectors.toList());
+            super.shapes = ShapeReader.read(file);
             repaint();
         } catch (IOException e) {
             Alert alert = new Alert(Alert.AlertType.INFORMATION);
diff --git a/src/main/java/serializer/ShapeReader.java b/src/main/java/serializer/ShapeReader.java
index 5dd618bee347ec8bed24a6225947f350155a0d2e..4905948e502223776ff4e2f8367b633669915e01 100644
--- a/src/main/java/serializer/ShapeReader.java
+++ b/src/main/java/serializer/ShapeReader.java
@@ -2,13 +2,19 @@ package serializer;
 
 import shape.Shape;
 
+import java.io.BufferedReader;
 import java.io.File;
+import java.io.FileReader;
 import java.io.IOException;
 import java.util.List;
 import java.util.stream.Collector;
 
 public class ShapeReader {
-    public static List<Shape> read(File file, Collector<Object,?, List<Object>> toList) throws IOException {
+    public static List<Shape> read(File file) throws IOException {
+        BufferedReader bufferedReader = new BufferedReader(new FileReader(file));
+        /*for(String line : bufferedReader.lines().toList()) {
+            System.out.println(line);
+        }*/
         return null;
     }
 }
diff --git a/src/main/java/serializer/ShapeWriter.java b/src/main/java/serializer/ShapeWriter.java
index af2dfe76b538829c40083673b47e5aae911e5ff5..6a76ef8f7616a2a5ec8e21e533b3b09060e6d2c3 100644
--- a/src/main/java/serializer/ShapeWriter.java
+++ b/src/main/java/serializer/ShapeWriter.java
@@ -4,9 +4,12 @@ import shape.Shape;
 
 import java.io.File;
 import java.io.IOException;
+import java.io.PrintWriter;
 import java.util.List;
 
 public class ShapeWriter {
     public static void write (File file, List<Shape> shapes) throws IOException {
+        PrintWriter printWriter = new PrintWriter(file);
+        printWriter.println("Coucou");
     }
 }
diff --git a/src/main/java/state/Drawer.java b/src/main/java/state/Drawer.java
index 31ecf1aea304253118288d0614cfe6254d471350..67b9e1c37ec55c09b9965103ca38cab002b1d815 100644
--- a/src/main/java/state/Drawer.java
+++ b/src/main/java/state/Drawer.java
@@ -10,7 +10,7 @@ import java.util.List;
 
 public class Drawer extends Canvas {
     protected List<Shape> shapes = new ArrayList<>();
-    DrawerContext context = new DrawerContext(this);
+    public DrawerContext context = new DrawerContext(this);
 
     public Drawer(int width, int height) {
         super(width,height);
@@ -19,7 +19,7 @@ public class Drawer extends Canvas {
         setOnMouseReleased(event->context.mouseReleased(event));
         setOnMouseMoved(event->context.mouseMoved(event));
         setOnMouseDragged(event->context.mouseMoved(event));
-        setOnKeyPressed(event -> context.keyPressed(event));
+        //setOnKeyPressed(event -> context.keyPressed(event));
     }
 
     public void repaint(){
diff --git a/src/main/java/state/DrawerContext.java b/src/main/java/state/DrawerContext.java
index 669338de00766f7c83077e5a50f622b28f9e4bd0..f82de3953ba8ae28f267393fdcb01fd7dcd3b6c2 100644
--- a/src/main/java/state/DrawerContext.java
+++ b/src/main/java/state/DrawerContext.java
@@ -24,7 +24,7 @@ public class DrawerContext {
 
     void mouseMoved(MouseEvent event){}
 
-    void keyPressed(KeyEvent event) {
+    public void keyPressed(KeyEvent event) {
         switch (event.getText()) {
             case "c":
                 currentState = new StateCircle0();