Index: /SPARQLBuilderWWW/src/java/org/biohackathon/SPARQLBuilder/OWL/OWLClassGraph.java
===================================================================
--- /SPARQLBuilderWWW/src/java/org/biohackathon/SPARQLBuilder/OWL/OWLClassGraph.java (revision 248)
+++ /SPARQLBuilderWWW/src/java/org/biohackathon/SPARQLBuilder/OWL/OWLClassGraph.java (revision 249)
@@ -126,7 +126,23 @@
         Map<String,Boolean> checkedpaths = new HashMap<String, Boolean>();
         List<List<ClassLink>> paths = new ArrayList<>();
-        List<List<Integer>> simplePaths = new LinkedList<>();
         Integer snode = labelednodes.get(startClass);
         Integer enode = labelednodes.get(endClass);
+        List<List<Integer>> simplePaths = searchSimplePaths(snode, enode);
+        
+        ListIterator<List<Integer>> pit = simplePaths.listIterator();
+        //System.out.println("SPATH:");
+        //System.out.println(simplePaths.size());
+        while( pit.hasNext()){
+            List<Integer> spath = pit.next();
+            List<List<ClassLink>> convertedPaths = convertSimplePathToPaths(spath);
+            paths.addAll(convertedPaths);
+        }
+        //System.out.println("PATH:");
+        //System.out.println(paths.size());
+        return paths;
+    }
+
+    private List<List<Integer>> searchSimplePaths(Integer snode, Integer enode){
+        List<List<Integer>> simplePaths = new LinkedList<>();
         List<List<Integer>> lp = new LinkedList<>();
         List<Integer> ini = new LinkedList<Integer>(); // initial path
@@ -185,21 +201,8 @@
 	    }
             lp = nextlp;
-        }
-        
-        ListIterator<List<Integer>> pit = simplePaths.listIterator();
-        //int i = 0;
-        //int j = 0;
-        System.out.println("SPATH:");
-        System.out.println(simplePaths.size());
-        while( pit.hasNext()){
-            List<Integer> spath = pit.next();
-            List<List<ClassLink>> convertedPaths = convertSimplePathToPaths(spath);
-            paths.addAll(convertedPaths);
-        }
-        System.out.println("PATH:");
-        System.out.println(paths.size());
-        return paths;
-    }
-
+        }        
+        return simplePaths;
+    }
+    
     
     private List<List<ClassLink>> convertSimplePathToPaths(List<Integer> simplePath){
@@ -243,49 +246,5 @@
     }
     
-    /*
-    private List<List<ClassLink>> searchPathsbyVisitingNodes(RDFSchemaAnalyzer rdfsa, boolean countLinks,
-            String startClass, String endClass){
-        List<List<ClassLink>> paths = new ArrayList<>();
-        List<LinkAndPath> lp = new LinkedList<>();
-        Set<String> urls = new HashSet<String>();
-        urls.add(startClass);
-        lp.add(new LinkAndPath(new ClassLink("",startClass,null,Direction.both,0,0,0,0,0,false,false), 
-                                 new LinkedList<ClassLink>(), startClass, urls));
-        try{
-          for ( int i = 0; i < nsteps; i++ ){
-              ListIterator<LinkAndPath> lit = lp.listIterator();
-              List<LinkAndPath> nextlp = new LinkedList<>();
-              while ( lit.hasNext() ){
-                  LinkAndPath crrlp = lit.next();
-                  ClassLink[] classLinks = rdfsa.getNextClass(null, crrlp.classLink.getLinkedClassURI(), limit, countLinks);
-                  // limit
-                  for ( int j = 0 ; j < classLinks.length; j++ ){
-                      if (crrlp.classURIs.contains(classLinks[j].getLinkedClassURI()) ){
-                          continue; // visited
-                      }
-                      List<ClassLink> crrpath = new LinkedList<>(crrlp.path);
-                      crrpath.add(classLinks[j]);
-                      Set<String> crrurls = new HashSet<String>(crrlp.classURIs);
-                      crrurls.add(classLinks[j].getLinkedClassURI());
-                      if ( classLinks[j].getLinkedClassURI() == null ){ continue; }
-                      if ( classLinks[j].getNumOfLinks() <= th){
-                          continue;
-                      }
-                      if ( classLinks[j].getLinkedClassURI().equals(endClass) ){
-                          paths.add(new LinkedList<>(crrpath));
-                          continue;
-                      }
-                      //crrlp.classURIs.add()
-                      nextlp.add(new LinkAndPath(classLinks[j], crrpath, crrlp.classLink.getLinkedClassURI(),crrurls));
-                  }
-              }
-              lp = nextlp;
-          }
-        }catch(Exception e){ 
-            System.err.println(e);
-        }
-        return paths;  
-    }
-              
+/*              
    private void setClassGraph(RDFSchemaAnalyzer rdfsa){
        // setNodes
@@ -327,5 +286,4 @@
         // set endpoint
         this.sparqlEndpoint = sparqlEndpoint;
-        
         visited = new HashSet<Integer>();
         edgeweight = new LinkedList<Map<Integer,Integer>>();
@@ -345,5 +303,4 @@
         }
         // setEdges
-        //int nedge = 0;
         Integer snode = labelednodes.get(startClass);
         Set<Integer> nodes = new HashSet<Integer>();
@@ -375,6 +332,18 @@
             visited.addAll(nodes);
         }
-    }
-   
+        // cut visited 
+        Iterator<Integer> nit = visited.iterator();
+        while(nit.hasNext()){
+            Integer node = nit.next();
+            if ( ! node.equals(snode) ){
+                List<List<Integer>> paths = searchSimplePaths(snode, node);
+                if ( paths.isEmpty()){
+                    nit.remove();
+                }
+            }
+        }
+    }
+    
+    
    private ArrayList<HashSet<Integer>> createConnectionTable(){ // not used
        ArrayList<HashSet<Integer>> ct = new ArrayList<HashSet<Integer>>();
