diff --git a/MavenChess/MavenChess/src/main/java/model/Board.java b/MavenChess/MavenChess/src/main/java/model/Board.java
index e27bbb61590b4e17f47e75e091488d1ee4fb395c..9f3de8d0b12ae4bec4858e7bef8d5b8926df45b1 100644
--- a/MavenChess/MavenChess/src/main/java/model/Board.java
+++ b/MavenChess/MavenChess/src/main/java/model/Board.java
@@ -41,4 +41,18 @@ public class Board {
 	public void set(Piece piece) {
 		pieces[piece.getPosition().getID()] = piece;
 	}
+
+	public boolean isFree(Position p) {
+		return (pieces[p.getID()] == null);
+	}
+	public boolean isBlack(Position p) {
+		return (pieces[p.getID()].getColor() == Piece.BLACK);
+	}
+
+	public boolean isWhite(Position p) {
+		return (pieces[p.getID()].getColor() == Piece.WHITE);
+	}
+	public boolean isKing(Position p) {
+		return (pieces[p.getID()].getClass() == Pawn.class); // to change to king later
+	}
 }
diff --git a/MavenChess/MavenChess/src/main/java/model/Pawn.java b/MavenChess/MavenChess/src/main/java/model/Pawn.java
index a9bf9a56f525a26dcc179926ddc83fb3fe5ce769..0467039c5f4efe967f158d8a6fb21bdb8dc38f3e 100644
--- a/MavenChess/MavenChess/src/main/java/model/Pawn.java
+++ b/MavenChess/MavenChess/src/main/java/model/Pawn.java
@@ -1,12 +1,48 @@
 package model;
 
+import java.util.ArrayList;
+
 public class Pawn extends Piece {
 	public Pawn(Position p, int color) {
 		super(p, color);
 	}
 
-	public Move[] getAvailableMoves(Board b) {
-		Move[] moves = new Move[5];
+	public ArrayList<Position> getAvailableMoves(Board b) {
+
+		// creates a dynamic list of available moves
+		ArrayList<Position> moves = new ArrayList<Position>();
+
+		Position arrival;
+		if(color == Piece.WHITE) { // black and white have an opposite direction behavior
+
+			// up, free movement
+			arrival = new Position(p.getX(), p.getY() + 1);
+			if(Position.isCorrect(arrival) && b.isFree(arrival)) { moves.add(arrival); }
+
+			// up right, attack movement
+			arrival = new Position(p.getX() + 1, p.getY() + 1);
+			if(Position.isCorrect(arrival) && b.isBlack(arrival)) { moves.add(arrival); }
+
+			// up left, attack movement
+			arrival = new Position(p.getX() - 1, p.getY() + 1);
+			if(Position.isCorrect(arrival) && b.isBlack(arrival)) { moves.add(arrival); }
+
+		}
+		else {
+
+			// down, free movement
+			arrival = new Position(p.getX(), p.getY() - 1);
+			if(Position.isCorrect(arrival) && b.isFree(arrival)) { moves.add(arrival); }
+
+			// down right, attack movement
+			arrival = new Position(p.getX() + 1, p.getY() - 1);
+			if(Position.isCorrect(arrival) && b.isWhite(arrival)) { moves.add(arrival); }
+
+			// down left, attack movement
+			arrival = new Position(p.getX() - 1, p.getY() - 1);
+			if(Position.isCorrect(arrival) && b.isWhite(arrival)) { moves.add(arrival); }
+
+		}
 		return moves;
 	}
 }
diff --git a/MavenChess/MavenChess/src/main/java/model/Piece.java b/MavenChess/MavenChess/src/main/java/model/Piece.java
index 6119ba2cf0344d48ef2a853ba931653bbd1893e3..c9580db89c7d3274d09e20ea45437b0fa393f706 100644
--- a/MavenChess/MavenChess/src/main/java/model/Piece.java
+++ b/MavenChess/MavenChess/src/main/java/model/Piece.java
@@ -1,5 +1,7 @@
 package model;
 
+import java.util.ArrayList;
+
 public abstract class Piece {
 	protected Position p;
 	protected int color;
diff --git a/MavenChess/MavenChess/src/main/java/model/Position.java b/MavenChess/MavenChess/src/main/java/model/Position.java
index e0f39a2cc99874f61f6b8bdc9e487886c5916a24..03c8aa65beebb4b163fb1f1a4df0f181b6e7adb9 100644
--- a/MavenChess/MavenChess/src/main/java/model/Position.java
+++ b/MavenChess/MavenChess/src/main/java/model/Position.java
@@ -37,4 +37,8 @@ public class Position {
 	public void setY(int y) {
 		this.y = y;
 	}
+
+	public static boolean isCorrect(Position arrival) {
+		return (arrival.getX() >= 1 && arrival.getX() <= 8 && arrival.getY() >= 1 && arrival.getY() <= 8);
+	}
 }
diff --git a/MavenChess/MavenChess/target/classes/model/Board.class b/MavenChess/MavenChess/target/classes/model/Board.class
index 1607f865bdea694975cea772c5e112c2b8bf410d..526acee78857de253659c92512c5d4d378a2ac11 100644
Binary files a/MavenChess/MavenChess/target/classes/model/Board.class and b/MavenChess/MavenChess/target/classes/model/Board.class differ
diff --git a/MavenChess/MavenChess/target/classes/model/Log.class b/MavenChess/MavenChess/target/classes/model/Log.class
new file mode 100644
index 0000000000000000000000000000000000000000..59bcb237934dd8d469f702c385593215ee0d5885
Binary files /dev/null and b/MavenChess/MavenChess/target/classes/model/Log.class differ
diff --git a/MavenChess/MavenChess/target/classes/model/Pawn.class b/MavenChess/MavenChess/target/classes/model/Pawn.class
index 60f6cda92cbfee29e71c4f64b130f087131959c2..87d5bc815e55dce7814ad20e95dfa5d3904fc549 100644
Binary files a/MavenChess/MavenChess/target/classes/model/Pawn.class and b/MavenChess/MavenChess/target/classes/model/Pawn.class differ