public void findATree(String nodeLabelList[]){
        // change label list to node list
        Set<Node> targetNodeList = new HashSet<Node>();
        for (String i : nodeLabelList){
            Node u = qualifier.getNodeByLabel(i);
            if (u!=null)
                targetNodeList.add(u);
        }
        // check if they are neighbors
        boolean areNeighbors = false;
        for (Node u : targetNodeList){
            for (Node v : targetNodeList){
                if (u.neighbors.contains(v)){
                    areNeighbors = true;
                    System.out.println("Neighbors: " + u.label + " " + v.label);
                    break;
                }
            }
        }
        if (!areNeighbors){
            System.out.println("No neighbors at all!");
        }
        
        Set<Node> intersection = new HashSet<Node>();
        for (Map.Entry<PogNode, Integer> entry : pogVisitCount.entrySet()) {
            PogNode key = entry.getKey();
            intersection.clear();
            intersection.addAll(targetNodeList);
            intersection.retainAll(key.nodeList());
            if (intersection.size() == targetNodeList.size()){
                SimpleTree aTree = qualifier.buildSimpleTree(key.nodeList());                
                aTree.print();
            }
        }
    }