diff --git a/Makefile b/Makefile
index 441d46b..efcbab4 100644
--- a/Makefile
+++ b/Makefile
@@ -1,30 +1,56 @@
-# List of Java source files
-SRCS := Cell.java GenerateGrid.java Grid.java Sudoku.java SudokuButtonListener.java SudokuSolver.java SudokuUI.java SudokuCreator.java SudokuGame.java
+### VARIABLES ###
 
-# Directory to store compiled class files
-BUILD_DIR := build
+JC = javac
+JCFLAGS = -encoding UTF-8 -implicit:none
 
-# Java compiler
-JAVAC := javac
+JVM = java
+JVMFLAGS = 
 
-# Java interpreter
-JAVA := java
+### REGLES ESSENTIELLES ###
 
-# Main class to run
-MAIN_CLASS := Sudoku
 
-# Default target
-.PHONY: all
-all: compile
+SudokuCreator.class : SudokuCreator.java SudokuUI.class SudokuButtonListener.class Sudoku.class SudokuSolver.class GenerateGrid.class Grid.class Cell.class
+	${JC} ${JCFLAGS} SudokuCreator.java
 
-# Create the build directory
-$(BUILD_DIR):
-	mkdir -p $(BUILD_DIR)
+SudokuGame.class : SudokuGame.java SudokuUI.class SudokuButtonListener.class Sudoku.class SudokuSolver.class GenerateGrid.class Grid.class Cell.class
+	${JC} ${JCFLAGS} SudokuGame.java
 
-# Compile Java source files
-.PHONY: compile
-compile: $(addprefix $(BUILD_DIR)/, $(SRCS:.java=.class))
+SudokuUI.class : SudokuUI.java Sudoku.class
+	${JC} ${JCFLAGS} SudokuUI.java
 
-# Rule to compile Java source files
-$(BUILD_DIR)/%.class: %.java | $(BUILD_DIR)
-	$(JAVAC) -d $(BUILD_DIR) $<
+SudokuButtonListener.class : SudokuButtonListener.java Sudoku.class
+	${JC} ${JCFLAGS} SudokuButtonListener.java
+
+Sudoku.class : Sudoku.java Grid.class
+	${JC} ${JCFLAGS} Sudoku.java
+	
+SudokuSolver.class : SudokuSolver.java Grid.class
+	${JC} ${JCFLAGS} SudokuSolver.java
+
+GenerateGrid.class : GenerateGrid.java Grid.class
+	${JC} ${JCFLAGS} GenerateGrid.java
+
+Grid.class : Grid.java Cell.class
+	${JC} ${JCFLAGS} Grid.java
+
+Cell.class : Cell.java
+	${JC} ${JCFLAGS} Cell.java
+
+### REGLES OPTIONNELLES ###
+
+run : SudokuCreator.class
+	${JVM} ${JVMFLAGS} SudokuCreator
+
+run1 : SudokuGame.class
+	${JVM} ${JVMFLAGS} SudokuGame
+
+clean :
+	-rm -f *.class
+
+mrproper : clean SudokuCreator.class SudokuGame.class
+
+### BUTS FACTICES ###
+
+.PHONY : run clean mrproper
+
+### FIN ###
\ No newline at end of file