Index: SPARQLBuilderWWW/src/java/org/biohackathon/SPARQLBuilder/www/PLServlet.java
===================================================================
--- SPARQLBuilderWWW/src/java/org/biohackathon/SPARQLBuilder/www/PLServlet.java (revision 123)
+++ SPARQLBuilderWWW/src/java/org/biohackathon/SPARQLBuilder/www/PLServlet.java (revision 149)
@@ -14,4 +14,5 @@
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
+import javax.servlet.http.HttpSession;
 import org.biohackathon.SPARQLBuilder.OWL.*;
 
@@ -70,5 +71,9 @@
         String en = request.getParameter("endclass");
         
-        QueryPathGenerator qpg = new QueryPathGenerator(ep, FILENAME);
+        HttpSession session = request.getSession();
+        QueryPathGenerator qpg = (QueryPathGenerator)session.getAttribute("qpg");
+        if ( qpg == null ){
+            qpg = new QueryPathGenerator(ep);
+        }
         Path[] paths = qpg.getPaths(st, en, true);
         String jsonstr = "{\"paths\":[";
@@ -83,4 +88,6 @@
         System.out.println(jsonstr);
         out.print(jsonstr);
+        //List<Path>
+        //session.setAttribute("pathlist", pathlist);
     }
 
Index: SPARQLBuilderWWW/src/java/org/biohackathon/SPARQLBuilder/www/CLServlet.java
===================================================================
--- SPARQLBuilderWWW/src/java/org/biohackathon/SPARQLBuilder/www/CLServlet.java (revision 130)
+++ SPARQLBuilderWWW/src/java/org/biohackathon/SPARQLBuilder/www/CLServlet.java (revision 149)
@@ -16,4 +16,5 @@
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
+import javax.servlet.http.HttpSession;
 import org.biohackathon.SPARQLBuilder.OWL.*;
 
@@ -69,5 +70,10 @@
 	PrintWriter out = response.getWriter();
         String ep = request.getParameter("ep");
-        QueryPathGenerator qpg = new QueryPathGenerator(ep, FILENAME);
+        HttpSession session = request.getSession();
+        QueryPathGenerator qpg = (QueryPathGenerator)session.getAttribute("qpg");
+        if ( qpg == null ){
+            qpg = new QueryPathGenerator();
+        }
+        qpg.setSPARQLendpoint(ep);
         SClass[] classes = qpg.getClasses(null);
         JsonBuilderFactory jbfactory = Json.createBuilderFactory(null);
Index: SPARQLBuilderWWW/src/java/org/biohackathon/SPARQLBuilder/www/EPServlet.java
===================================================================
--- SPARQLBuilderWWW/src/java/org/biohackathon/SPARQLBuilder/www/EPServlet.java (revision 133)
+++ SPARQLBuilderWWW/src/java/org/biohackathon/SPARQLBuilder/www/EPServlet.java (revision 149)
@@ -14,4 +14,5 @@
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
+import javax.servlet.http.HttpSession;
 import org.biohackathon.SPARQLBuilder.OWL.*;
 import javax.json.*;
@@ -26,5 +27,6 @@
 public class EPServlet extends HttpServlet {
 
-    private RDFSchemaAnalyzerFactory factory = null;
+    //private RDFSchemaAnalyzerFactory factory = null;
+    private QueryPathGenerator qpg = null;
     private static final String FILENAME = "cdata/";
     
@@ -71,8 +73,8 @@
         response.setContentType("application/json;charset=UTF-8");
 	PrintWriter out = response.getWriter();
-        if ( factory == null ){
-            factory = new RDFSchemaAnalyzerFactory(FILENAME);
+        if ( qpg == null ){
+            qpg = new QueryPathGenerator();
         }
-        String[] elist = factory.getEndpointURIList();
+        String[] elist = qpg.getFactory().getEndpointURIList();
         JsonBuilderFactory jbfactory = Json.createBuilderFactory(null);
         JsonArrayBuilder jab = jbfactory.createArrayBuilder();
@@ -82,4 +84,6 @@
         JsonArray ja = jab.build();
 	out.print(ja);
+        HttpSession session = request.getSession();
+        session.setAttribute("qpg", qpg);
     }
 
