public State GetNextState(State currState, ACTION actionTaken)
	{
		int nextX;
		int nextY;
		
		if(actionTaken == ACTION.UP)
		{
			nextX = currState.XCoord;
			nextY = currState.YCoord + 1;
		}else if(actionTaken == ACTION.DOWN)
		{
			nextX = currState.XCoord;
			nextY = currState.YCoord - 1;
		}else if(actionTaken == ACTION.LEFT)
		{
			nextX = currState.XCoord - 1;
			nextY = currState.YCoord;
		}else
		{
			nextX = currState.XCoord + 1;
			nextY = currState.YCoord;
		}
		
		if(nextX < 0 || nextX >= this.States.length || nextY < 0 || nextY >= this.States[0].length)
		{
			return new State(nextX, nextY); 
		}else{
			return this.States[nextX][nextY];
		}
	}