diff --git a/src/main/java/bitFight/Input.java b/src/main/java/bitFight/Input.java
index df4b2d458755089f14d3aeda09a3f0cd6b6f482d..0b7ce5c4278c83de6a17a757ba333ff1fe6830a0 100644
--- a/src/main/java/bitFight/Input.java
+++ b/src/main/java/bitFight/Input.java
@@ -5,10 +5,13 @@ import java.io.BufferedReader;
 import java.io.IOException;
 import java.io.InputStreamReader;
 import java.util.ArrayList;
+import java.util.Scanner;
 
 public class Input {
     private String input = "";
     private ArrayList<String> inputRange;
+    private static BufferedReader in= new BufferedReader( new InputStreamReader(System.in));
+
 
     public String getInput() {
         return input;
@@ -27,23 +30,15 @@ public class Input {
 
     }
 
-    public void newInput() throws IOException {
+    public void newInput(Scanner in) throws IOException {
         
         do {
-            BufferedReader in= new BufferedReader( new InputStreamReader(System.in));
             try {
-                try {
-                    setInput(in.readLine());
-                } catch (IOException e) {
-                    // TODO Auto-generated catch block
-                    System.err.println(e.getMessage() + ": Contact support");
-                } 
+                    setInput(in.nextLine());
             } catch (InvalidInputException e) {
                     Display.newPrintln(e.getMessage());
             } catch (Exception e) {
                 System.err.println(e.getMessage()+": Contact support");
-            } finally {
-                // in.close();
             }
         }
         while (!validInput());
diff --git a/src/main/java/bitFight/Main.java b/src/main/java/bitFight/Main.java
index 62817d7e0ef1a1264c8f2a5224186414f9e152af..88313bc9903056e9dca2e8d071dda119c651153b 100644
--- a/src/main/java/bitFight/Main.java
+++ b/src/main/java/bitFight/Main.java
@@ -7,6 +7,7 @@ import java.io.InputStreamReader;
 import java.time.LocalDateTime;
 import java.util.ArrayList;
 import java.util.Random;
+import java.util.Scanner;
 
 class Main {
 
@@ -27,15 +28,7 @@ class Main {
             level = gamedata.getLevelReached();
         }
 
-        try {
-            menu.display();
-        } catch (IOException e) {
-            // TODO Auto-generated catch block
-            e.printStackTrace();
-        } catch (InterruptedException e) {
-            // TODO Auto-generated catch block
-            e.printStackTrace();
-        }
+        menu.display();
         menu.validate();
 
         Display.clearScreen();
@@ -62,7 +55,7 @@ class Main {
         ArrayList<String> actionNames = new ArrayList<>();
         for (Action a : actionList) actionNames.add(a.getName());
         
-        BufferedReader in= new BufferedReader( new InputStreamReader(System.in));
+        Scanner in= new Scanner(System.in);
         
         Random rand = new Random();
         
@@ -70,7 +63,7 @@ class Main {
         level.ennemyShowing();
         
         Input input = new Input();
-        input.newInput();
+        input.newInput(in);
         Display.goToDialogBox();
         
 
@@ -82,9 +75,8 @@ class Main {
             LocalDateTime timeBeforeAttack = LocalDateTime.now();
             int attackTime = 5 - (int)(5 * rand.nextDouble());
 
-            if (input.getInput().equals("a")) {
                 level.possibleActions();
-                input.newInput();
+                input.newInput(in);
                 
                 // Boucle tant que le joueur n'a pas taper de nom d'une attaque valide ou tape trop tard ou tape q
                 while ((!actionNames.contains(input.getInput()) || !Attack.attackInTime(timeBeforeAttack, attackTime)) && !input.getInput().equals("q")) {
@@ -96,13 +88,13 @@ class Main {
                         level.ennemyFaster(randomEnemyAttack);
                         Display.displayNewHealthBar();
                         timeBeforeAttack = LocalDateTime.now();
-                        input.newInput();
+                        input.newInput(in);
                     } 
                     
                     if (!actionNames.contains(input.getInput())){
                         Display.clearDialogBox();
                         level.invalidActionChoice();                        
-                        input.newInput();
+                        input.newInput(in);
                     }
                 }
                 
@@ -129,8 +121,6 @@ class Main {
                 
                 //Display.clearDialogBox();
 
-                input.newInput();
-
                 if (enemy.isDead()){
                     level.ennemyDying();
                     player.revive();
@@ -155,6 +145,5 @@ class Main {
             in.close();
             Save.saveObject("res/gamedata", gamedata);
         }
-    } 
 }
     
\ No newline at end of file