public boolean isBestMovebidiDLS(Site node, Site target, int depth) {
        if(depth >= 0) {
            boolean worked = true;
            for(Site tChild: graph.neighbors(target)) //base case
                worked = worked && graph.neighbors(node).contains(tChild);

            if(worked) return worked;
            else {
                for(Site nChild: graph.neighbors(node)) {
                    boolean worked2= true;
                    for(Site tChild: graph.neighbors(target)) {
                        boolean temp= isBestMovebidiDLS(nChild, tChild, depth-1);
                        if(!temp) {
                            worked2= temp;
                            break;
                        }
                    }
                    if(worked2) return worked2;
                }
            }
        }
        return false;
    }