public void loadSearchSpace(String filePath) throws IOException
	{
		Scanner scanner = new Scanner(new FileInputStream(filePath));
		try
		{
			while (scanner.hasNextLine())
			{
				String line = scanner.nextLine();
				int lineLength = line.length();
				ArrayList<Node> list = new ArrayList<Node>();
				int y = 0;
				for (int x = 0; x < lineLength; x++) 
				{
					Node node = nodeFactory.makeNode(line.charAt(x));

					if (node != null)
					{
						node.setCoordinate(new Coordinate(x,y));
						list.add(node);

						/* Check if start of goal state */
						if (node.getRepresentation() == TerrainInfo.Start.REPRESENTATION)
						{
							this.startNode = node;
						}
						else if (node.getRepresentation() == TerrainInfo.Goal.REPRESENTATION)
						{
							this.goalNode = node;
						}
					}

				}
				/* Add the row to the matrix */
				nodeMatrix.add(list);
			}
		}
		finally
		{
			scanner.close();
		}
		
		/* Lastly generate the surrounding Nodes for each Node */
		generateSurroundings();
	}