public ArrayList<Move> getPossibleMoves() 
	{
		ArrayList<Move> possibleMoves = new ArrayList<Move>();
		
		for(int i = - 1; i <= 1; i += 2)
		{
			for(int j = -1; j <= 1; j += 2)
			{
				Location currentLoc = new Location(getLoc().getRow() + j, getLoc().getCol() + i);
				
				if(getBoard().isValid(currentLoc))
				{
					if(getBoard().getPiece(currentLoc) == null)
					{
						ArrayList<Node> move = new ArrayList<Node>();
						move.add(getNode());
						move.add(getBoard().getNode(currentLoc));
						
						possibleMoves.add(new CheckersMove(move, getBoard(), getLoyalty()));
					}
				}
			}
		}
		
		for(ArrayList<Node> move : getNextJumps(getLoc(), new ArrayList<Location>()))
		{
			if(move.size() > 1)
			{
				possibleMoves.add(new CheckersMove(move, getBoard(), getLoyalty()));
			}
		}
		
		ArrayList<Move> jumpMoves = new ArrayList<Move>();
		
		for(Move possibleMove : possibleMoves)
		{
			if(!possibleMove.getJumped().isEmpty())
			{
				jumpMoves.add(possibleMove);
			}
		}
		
		if(!jumpMoves.isEmpty())
		{
			return jumpMoves;
		}
		else
		{
			return possibleMoves;
		}
	}