diff --git a/src/main/java/model/CardinalDirection.java b/src/main/java/model/CardinalDirection.java
index 5190e2bd8e5b160f1c4152d884cf86a630f18439..8dc8a6a2489b425d8127056cdddee8a2b8becf63 100644
--- a/src/main/java/model/CardinalDirection.java
+++ b/src/main/java/model/CardinalDirection.java
@@ -6,6 +6,8 @@ public enum CardinalDirection {
   SOUTH(1, 0),
   WEST(0, -1);
 
+  public static final int NUMBER_OF_DIRECTIONS = values().length;
+
   public final int deltaRow;
   public final int deltaColumn;
 
diff --git a/src/main/java/model/Grid.java b/src/main/java/model/Grid.java
index 6430f15b44acdecc5073aa3c5600ab23a2769c48..91444e3c74e1139801bcf3c4f1a56edc2e4427ac 100644
--- a/src/main/java/model/Grid.java
+++ b/src/main/java/model/Grid.java
@@ -1,11 +1,6 @@
 package model;
-
-import javafx.scene.paint.Color;
-
 import java.util.Iterator;
-import java.util.List;
 import java.util.Optional;
-import java.util.Random;
 
 public class Grid implements Iterable<Square> {
   private final int numberOfRows;
@@ -21,6 +16,10 @@ public class Grid implements Iterable<Square> {
    *                                  less than or equal to 0
    */
   public Grid(int numberOfRows, int numberOfColumns) {
+    if(numberOfRows <= 0)
+      throw new IllegalArgumentException("The number of rows must be positive and not equal to " + numberOfRows);
+    if(numberOfColumns <= 0)
+      throw new IllegalArgumentException("The number of columns must be positive and not equal to " + numberOfColumns);
     this.numberOfRows = numberOfRows;
     this.numberOfColumns = numberOfColumns;
     squares = new Square[getNumberOfRows()][getNumberOfColumns()];
@@ -32,6 +31,12 @@ public class Grid implements Iterable<Square> {
     initializeNeighborhood();
   }
 
+  private void initializeSquares() {
+    for(int row = 0; row < getNumberOfRows(); row++)
+      for(int column = 0; column < getNumberOfColumns(); column++)
+        squares[row][column] = new Square();
+  }
+
   private void initializeNeighborhood() {
     for(int row = 0; row < getNumberOfRows(); row++)
       for(int column = 0; column < getNumberOfColumns(); column++) {
@@ -44,12 +49,6 @@ public class Grid implements Iterable<Square> {
         }
   }
 
-  private void initializeSquares() {
-    for(int row = 0; row < getNumberOfRows(); row++)
-      for(int column = 0; column < getNumberOfColumns(); column++)
-          squares[row][column] = new Square();
-  }
-
   private boolean containsCoordinates(int row, int column){
     return  0 <= row && row < numberOfRows && 0 <= column && column < numberOfColumns;
   }
@@ -71,6 +70,7 @@ public class Grid implements Iterable<Square> {
   public Square getSquare(int rowIndex, int columnIndex) {
     return squares[rowIndex][columnIndex];
   }
+
   public int getNumberOfRows() {
     return numberOfRows;
   }
diff --git a/src/main/java/model/Square.java b/src/main/java/model/Square.java
index 3e11a1be85ad4f5bbc8d990ef560b5b9f7f58a9a..667552301e2718cac4cb6115a85f4c7c28b9c33d 100644
--- a/src/main/java/model/Square.java
+++ b/src/main/java/model/Square.java
@@ -3,6 +3,7 @@ package model;
 import java.util.Optional;
 
 public class Square {
+
   private Tile tile;
   private Square[] neighboringSquares;
 
@@ -12,10 +13,9 @@ public class Square {
   }
 
   public Square(){
-    this(null, new Square[4]);
+    this(null, new Square[CardinalDirection.NUMBER_OF_DIRECTIONS]);
   }
 
-
   public Optional<Tile> getSquareTile(){
     if(!hasTile())
       return Optional.empty();
@@ -36,9 +36,6 @@ public class Square {
     return neighboringSquares[side.ordinal()].getSquareTile();
   }
 
-  public void setNeighboringSquares(Square[] neighboringSquares) {
-    this.neighboringSquares = neighboringSquares;
-  }
   public void setNeighboringSquare(Square neighboringSquare, CardinalDirection direction) {
     this.neighboringSquares[direction.ordinal()] = neighboringSquare;
   }
diff --git a/src/main/java/view/GridTileCanvas.java b/src/main/java/view/GridTileCanvas.java
index b51c6d03af3eb07133ba1fd39ef5cda2c762bd7c..5dede2f1ea226877b640bf39a7eca16ba4d8aae7 100644
--- a/src/main/java/view/GridTileCanvas.java
+++ b/src/main/java/view/GridTileCanvas.java
@@ -3,12 +3,10 @@ package view;
 import javafx.beans.NamedArg;
 import javafx.scene.canvas.Canvas;
 import javafx.scene.canvas.GraphicsContext;
-import javafx.scene.paint.Color;
 import model.*;
 
 import java.util.List;
 import java.util.Optional;
-import java.util.Random;
 
 public class GridTileCanvas extends Canvas {
 
diff --git a/src/main/java/model/PointType.java b/src/main/java/view/PointType.java
similarity index 95%
rename from src/main/java/model/PointType.java
rename to src/main/java/view/PointType.java
index 6cdd79f7211293259fb3f0f078b28d02a9d8f47b..a5309438b5cb7902d6eb072159eb2607b4079cff 100644
--- a/src/main/java/model/PointType.java
+++ b/src/main/java/view/PointType.java
@@ -1,4 +1,6 @@
-package model;
+package view;
+
+import model.CardinalDirection;
 
 import java.util.List;