diff --git a/MavenChess/MavenChess/src/main/java/model/Giant.java b/MavenChess/MavenChess/src/main/java/model/Giant.java
index 91fd8797195d7b7067887933d783e82083cf0b35..edc669a622e0e6c050960be8cc960170c062b09e 100644
--- a/MavenChess/MavenChess/src/main/java/model/Giant.java
+++ b/MavenChess/MavenChess/src/main/java/model/Giant.java
@@ -11,7 +11,7 @@ public class Giant extends Piece{
     @Override
     public ArrayList<Position> getAvailableMoves(Board b) {
 
-        ArrayList<Position> moves = new ArrayList<Position>();
+        ArrayList<Position> moves = new ArrayList<>();
 
         Position arrival;
         int i = 1;
@@ -25,9 +25,9 @@ public class Giant extends Piece{
             //left
 
             arrival = new Position(p.getX() + (i*2), p.getY());
-            if (Position.isCorrect(arrival)) {
+            if (arrival.isCorrect()) {
                 if (!left) {
-                    if (b.isEnnemy(arrival, p) || b.isFree(arrival)) {
+                    if (b.isEnemy(arrival, p) || b.isFree(arrival)) {
                         moves.add(arrival);
                     }
 
@@ -43,9 +43,9 @@ public class Giant extends Piece{
 
             //right
             arrival = new Position(p.getX() - (i*2), p.getY());
-            if (Position.isCorrect(arrival)) {
+            if (arrival.isCorrect()) {
                 if (!right) {
-                    if (b.isEnnemy(arrival, p) || b.isFree(arrival)) {
+                    if (b.isEnemy(arrival, p) || b.isFree(arrival)) {
                         moves.add(arrival);
                     }
                     if (b.isKing(arrival)) {
@@ -61,9 +61,9 @@ public class Giant extends Piece{
 
 
             arrival = new Position(p.getX(), p.getY() + (i*2));
-            if (Position.isCorrect(arrival)) {
+            if (arrival.isCorrect()) {
                 if (!top) {
-                    if (b.isEnnemy(arrival, p)|| b.isFree(arrival)) {
+                    if (b.isEnemy(arrival, p)|| b.isFree(arrival)) {
                         moves.add(arrival);
                     }
                 }
@@ -77,9 +77,9 @@ public class Giant extends Piece{
 
 
             arrival = new Position(p.getX(), p.getY() - (i*2));
-            if (Position.isCorrect(arrival)) {
+            if (arrival.isCorrect()) {
                 if (!down) {
-                    if (b.isEnnemy(arrival, p)|| b.isFree(arrival)) {
+                    if (b.isEnemy(arrival, p)|| b.isFree(arrival)) {
                         moves.add(arrival);
                     }
                 }
diff --git a/MavenChess/MavenChess/src/main/java/model/Kamikaze.java b/MavenChess/MavenChess/src/main/java/model/Kamikaze.java
index ff30aaadbc6a8f1f088fb0754bb4f5bba35c5c0d..1b8909d0c5df24f5dcb584d6ab246d61d76125fa 100644
--- a/MavenChess/MavenChess/src/main/java/model/Kamikaze.java
+++ b/MavenChess/MavenChess/src/main/java/model/Kamikaze.java
@@ -21,29 +21,29 @@ public class Kamikaze extends Pawn {
 
         if(color == Piece.WHITE) { // black and white have an opposite direction behavior
 
-            if(this.p.getID() == this.original.getID()){
+            if(!hasBeenMoved){
 
                 arrival = new Position(p.getX(),p.getY()+2);
-                if(Position.isCorrect(arrival) && b.isFree(arrival)) {moves.add(arrival);}
+                if(arrival.isCorrect() && b.isFree(arrival)) {moves.add(arrival);}
 
             }
 
             arrival = new Position(p.getX(),p.getY()+1);
-            if(Position.isCorrect(arrival) && b.isFree(arrival)) {moves.add(arrival);}
+            if(arrival.isCorrect() && b.isFree(arrival)) {moves.add(arrival);}
 
         }
         else {
 
 
-            if(this.p.getID() == this.original.getID()){
+            if(!hasBeenMoved){
 
                 arrival = new Position(p.getX(),p.getY()-2);
-                if(Position.isCorrect(arrival) && b.isFree(arrival)) {moves.add(arrival);}
+                if(arrival.isCorrect() && b.isFree(arrival)) {moves.add(arrival);}
 
             }
 
             arrival = new Position(p.getX(),p.getY()-1);
-            if(Position.isCorrect(arrival) && b.isFree(arrival)) {moves.add(arrival);}
+            if(arrival.isCorrect() && b.isFree(arrival)) {moves.add(arrival);}
 
         }
         return moves;
diff --git a/MavenChess/MavenChess/src/main/java/model/Nwap.java b/MavenChess/MavenChess/src/main/java/model/Nwap.java
index f6f5a4a1deb59177a93ca490993543e7b80428a6..e15c4485448bb39f3d3b33c5f2b88e0c1bf85c38 100644
--- a/MavenChess/MavenChess/src/main/java/model/Nwap.java
+++ b/MavenChess/MavenChess/src/main/java/model/Nwap.java
@@ -17,58 +17,58 @@ public class Nwap extends Pawn {
 
         if(color == Piece.WHITE) { // black and white have an opposite direction behavior
 
-            if(this.p.getID() == this.original.getID()){
+            if(!hasBeenMoved){
 
                 //	up left 2
                 arrival = new Position(p.getX()-2, p.getY() +2);
-                if(Position.isCorrect(arrival) && b.isFree(arrival)) { moves.add(arrival); }
+                if(arrival.isCorrect() && b.isFree(arrival)) { moves.add(arrival); }
 
 
                 //	up left 2
                 arrival = new Position(p.getX()+2, p.getY() +2);
-                if(Position.isCorrect(arrival) && b.isFree(arrival)) { moves.add(arrival); }
+                if(arrival.isCorrect() && b.isFree(arrival)) { moves.add(arrival); }
 
             }
             //	up left 1
             arrival = new Position(p.getX()-1, p.getY() +1);
-            if(Position.isCorrect(arrival) && b.isFree(arrival)) { moves.add(arrival); }
+            if(arrival.isCorrect() && b.isFree(arrival)) { moves.add(arrival); }
 
 
             //	up left 1
             arrival = new Position(p.getX()+1, p.getY() +1);
-            if(Position.isCorrect(arrival) && b.isFree(arrival)) { moves.add(arrival); }
+            if(arrival.isCorrect() && b.isFree(arrival)) { moves.add(arrival); }
 
             arrival = new Position(p.getX(),p.getY()+1);
-            if(b.isEnnemy(arrival,p)) {moves.add(arrival);}
+            if(b.isEnemy(arrival,p)) {moves.add(arrival);}
 
         }
         else {
 
 
-            if(this.p.getID() == this.original.getID()){
+            if(!hasBeenMoved){
 
                 //	up left 2
                 arrival = new Position(p.getX()-2, p.getY() -2);
-                if(Position.isCorrect(arrival) && b.isFree(arrival)) { moves.add(arrival); }
+                if(arrival.isCorrect() && b.isFree(arrival)) { moves.add(arrival); }
 
 
                 //	up left 2
                 arrival = new Position(p.getX()+2, p.getY() -2);
-                if(Position.isCorrect(arrival) && b.isFree(arrival)) { moves.add(arrival); }
+                if(arrival.isCorrect() && b.isFree(arrival)) { moves.add(arrival); }
 
             }
             //	up left 1
             arrival = new Position(p.getX()-1, p.getY() -1);
-            if(Position.isCorrect(arrival) && b.isFree(arrival)) { moves.add(arrival); }
+            if(arrival.isCorrect() && b.isFree(arrival)) { moves.add(arrival); }
 
 
             //	up left 1
             arrival = new Position(p.getX()+1, p.getY() -1);
-            if(Position.isCorrect(arrival) && b.isFree(arrival)) { moves.add(arrival); }
+            if(arrival.isCorrect() && b.isFree(arrival)) { moves.add(arrival); }
 
 
             arrival = new Position(p.getX(),p.getY()-1);
-            if(b.isEnnemy(arrival,p)) {moves.add(arrival);}
+            if(b.isEnemy(arrival,p)) {moves.add(arrival);}
 
         }
         return moves;