private void setupBoard() {
		
		final Point[] doubleLetterLocations = {new Point(2,2), new Point(4,6), new Point(6,4)};
		final Point[] tripleLetterLocations = {new Point(0,4), new Point(1,1), new Point(2,6), new Point(3,3), new Point(4,0),
											   new Point(5,5), new Point(6,2)};
		final Point[] doubleWordLocations = {new Point(1,5), new Point(3,7), new Point(5,1), new Point(7,3)};
		final Point[] tripleWordLocation = {new Point(0,2),new Point(2,0)};
		final Point startPoint = new Point(7,7);
		
		final BoxType[] types = new BoxType[] { BoxType.DOUBLE_LETTER, BoxType.TRIPLE_LETTER, BoxType.DOUBLE_WORD, BoxType.TRIPLE_WORD }; 
		final Point[][] pointSet = new Point[][] {doubleLetterLocations, tripleLetterLocations, doubleWordLocations, tripleWordLocation};
		
		for (int i=0; i<types.length; i++) {
			for (final Point p : pointSet[i]) {
				boxes[p.x][p.y] = new Box(types[i]); 
				
				// We use simetry
				boxes[SIDE-1-p.x][p.y] = new Box(types[i]); 
				boxes[p.x][SIDE-1-p.y] = new Box(types[i]); 
				boxes[SIDE-1-p.x][SIDE-1-p.y] = new Box(types[i]); 		
			}
		}
		
		boxes[startPoint.x][startPoint.y] = new Box(BoxType.START_BOX);
		
		for (int i=0; i<SIDE; i++) {
			for (int j=0; j<SIDE; j++) {
				if (boxes[i][j] == null) {
					boxes[i][j] = new Box(BoxType.DEFAULT);
				}
			}
		}
	}