private boolean validMove(Move move) {
		
		if(completedMoves.contains(move)){
			return false;
		}
		
        boolean noMoveAtIndex = false;
        boolean indexesAreOk = move.getRow() >= 0 || move.getRow() < getRowSize();
        indexesAreOk = indexesAreOk && move.getColumn() >= 0 || move.getColumn() < getColumnSize();
        if (indexesAreOk) {
            noMoveAtIndex = getMoveAt(move.getRow(), move.getColumn()) == null;
        }
        return indexesAreOk && noMoveAtIndex;
    }