diff --git a/src/main/java/de/mannheim/ids/sruws/SRU_WS.java b/src/main/java/de/mannheim/ids/fcsws/Controller.java
similarity index 84%
rename from src/main/java/de/mannheim/ids/sruws/SRU_WS.java
rename to src/main/java/de/mannheim/ids/fcsws/Controller.java
index 6f10357..793adac 100644
--- a/src/main/java/de/mannheim/ids/sruws/SRU_WS.java
+++ b/src/main/java/de/mannheim/ids/fcsws/Controller.java
@@ -1,4 +1,4 @@
-package de.mannheim.ids.sruws;
+package de.mannheim.ids.fcsws;
 
 import java.io.BufferedInputStream;
 import java.io.IOException;
@@ -59,10 +59,10 @@
  * */
 
 @Path("/")
-public class SRU_WS{
+public class Controller{
 	
 	private String endpointUri;
-	private String endpointBase = "de.mannheim.ids.sruws.endpoint.";
+	private String endpointBase = "de.mannheim.ids.fcsws.endpoint.";
 	private Corpus defaultCorpus;
 	
 	private static final int DEFAULT_MAX_RECORDS = 10;
@@ -83,8 +83,8 @@
 	@Context
 	ServletConfig config;	
 	
-	public SRU_WS() {
-		logger = (Logger) LoggerFactory.getLogger(SRU_WS.class);
+	public Controller() {
+		logger = (Logger) LoggerFactory.getLogger(Controller.class);
 		factory = SAXParserFactory.newInstance();
 		corpusList = new HashMap<String,Corpus>();
 	}
@@ -181,7 +181,7 @@
 			SAXParser saxParser = factory.newSAXParser();
 			SRUScanResonseHandler handler = new SRUScanResonseHandler();
 			saxParser.parse(bis, handler);
-			corpusList = handler.getCorpora();					
+			corpusList = handler.getCorpora();
 			
 		} catch (ParserConfigurationException | SAXException e) {
 			e.printStackTrace();
@@ -294,11 +294,52 @@
 						String pid = reader.getAttributeValue(i);						
 						// logger.info("Corpus: " +
 						// URLDecoder.decode(pid,"UTF-8"));
+//						System.out.println("Resource " +pid);
 						c = corpusList.get(URLDecoder.decode(pid,"UTF-8"));
-						if (c == null) c = defaultCorpus;
+						break;
 					}					
 				}
+				if (c == null) c = defaultCorpus;
 			}
+			
+			else if (e == XMLEvent.START_ELEMENT
+                    &&
+                    reader.getLocalName().equals("ResourceFragment") &&
+                    reader.getPrefix().equals(FCS_PREFIX)&&
+                    (reader.getNamespaceURI().equals(FCS_NS)||
+                            reader.getNamespaceURI().equals(FCS_RESOURCE)) ){
+                
+                for (int i=0; i<reader.getAttributeCount(); i++){
+                    if (reader.getAttributeLocalName(i).equals("pid")){
+                        String pid = reader.getAttributeValue(i);                       
+                        // logger.info("Corpus: " +
+                        // URLDecoder.decode(pid,"UTF-8"));
+//                        System.out.println("ResourceFragment " +pid);
+                        c = corpusList.get(URLDecoder.decode(pid,"UTF-8"));
+                        break;
+                    }                   
+                }
+                if (c == null) c = defaultCorpus;
+            }
+			else if (e == XMLEvent.START_ELEMENT
+                    &&
+                    reader.getLocalName().equals("DataView") &&
+                    reader.getPrefix().equals(FCS_PREFIX)&&
+                    (reader.getNamespaceURI().equals(FCS_NS)||
+                            reader.getNamespaceURI().equals(FCS_RESOURCE)) ){
+                
+                for (int i=0; i<reader.getAttributeCount(); i++){
+                    if (reader.getAttributeLocalName(i).equals("pid")){
+                        String pid = reader.getAttributeValue(i);                       
+                        // logger.info("Corpus: " +
+                        // URLDecoder.decode(pid,"UTF-8"));
+//                        System.out.println("DataView " +pid);
+                        c = corpusList.get(URLDecoder.decode(pid,"UTF-8"));
+                        break;
+                    }                   
+                }
+                if (c == null) c = defaultCorpus;
+            }
 							
 			else if (e == XMLEvent.START_ELEMENT &&
 					reader.getLocalName().equals("kwic") ){
diff --git a/src/main/java/de/mannheim/ids/sruws/Corpus.java b/src/main/java/de/mannheim/ids/fcsws/Corpus.java
similarity index 95%
rename from src/main/java/de/mannheim/ids/sruws/Corpus.java
rename to src/main/java/de/mannheim/ids/fcsws/Corpus.java
index 3d80def..7eb0e48 100644
--- a/src/main/java/de/mannheim/ids/sruws/Corpus.java
+++ b/src/main/java/de/mannheim/ids/fcsws/Corpus.java
@@ -1,4 +1,4 @@
-package de.mannheim.ids.sruws;
+package de.mannheim.ids.fcsws;
 
 import java.util.ArrayList;
 import java.util.List;
diff --git a/src/main/java/de/mannheim/ids/fcsws/EndpointDescriptionHandler.java b/src/main/java/de/mannheim/ids/fcsws/EndpointDescriptionHandler.java
new file mode 100644
index 0000000..67b46e5
--- /dev/null
+++ b/src/main/java/de/mannheim/ids/fcsws/EndpointDescriptionHandler.java
@@ -0,0 +1,31 @@
+package de.mannheim.ids.fcsws;
+
+import org.xml.sax.Attributes;
+import org.xml.sax.SAXException;
+import org.xml.sax.helpers.DefaultHandler;
+
+public class EndpointDescriptionHandler extends DefaultHandler{
+    
+    private boolean isEndpointDesc;
+    private boolean isResource;
+    private boolean isTitle;
+
+    @Override
+    public void startElement(String uri, String localName, String qName,
+            Attributes attributes) throws SAXException {
+        // TODO Auto-generated method stub
+        
+        if (qName.equalsIgnoreCase("ed:EndpointDescription")){
+            isEndpointDesc = true;
+        }
+        else if (qName.equalsIgnoreCase("ed:Resource")){
+            isResource = true;
+        }
+        else if (qName.equalsIgnoreCase("ed:Title")){
+            isTitle = true;
+        }       
+    }
+    
+    
+
+}
diff --git a/src/main/java/de/mannheim/ids/sruws/SRUScanResonseHandler.java b/src/main/java/de/mannheim/ids/fcsws/SRUScanResonseHandler.java
similarity index 98%
rename from src/main/java/de/mannheim/ids/sruws/SRUScanResonseHandler.java
rename to src/main/java/de/mannheim/ids/fcsws/SRUScanResonseHandler.java
index 9b713b9..2d2f424 100644
--- a/src/main/java/de/mannheim/ids/sruws/SRUScanResonseHandler.java
+++ b/src/main/java/de/mannheim/ids/fcsws/SRUScanResonseHandler.java
@@ -1,4 +1,4 @@
-package de.mannheim.ids.sruws;
+package de.mannheim.ids.fcsws;
 
 import java.util.HashMap;
 import java.util.Map;
diff --git a/src/main/java/de/mannheim/ids/sruws/Sentence.java b/src/main/java/de/mannheim/ids/fcsws/Sentence.java
similarity index 95%
rename from src/main/java/de/mannheim/ids/sruws/Sentence.java
rename to src/main/java/de/mannheim/ids/fcsws/Sentence.java
index 705f720..5ea3c5b 100644
--- a/src/main/java/de/mannheim/ids/sruws/Sentence.java
+++ b/src/main/java/de/mannheim/ids/fcsws/Sentence.java
@@ -1,4 +1,4 @@
-package de.mannheim.ids.sruws;
+package de.mannheim.ids.fcsws;
 
 public class Sentence{
 	
diff --git a/src/main/webapp/WEB-INF/web.xml b/src/main/webapp/WEB-INF/web.xml
index e98c4eb..3648aa5 100644
--- a/src/main/webapp/WEB-INF/web.xml
+++ b/src/main/webapp/WEB-INF/web.xml
@@ -1,41 +1,40 @@
-<!DOCTYPE web-app PUBLIC
- "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
- "http://java.sun.com/dtd/web-app_2_3.dtd" >
-
-<web-app id="SRU_WEB_SERVICE">
-  <display-name>SRU Web-service</display-name>
+<?xml version="1.0" encoding="UTF-8"?>
+<web-app xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+	xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
+	version="2.5" id="FCS_WEB_SERVICE">
+  <display-name>Federated Content Search Web-service</display-name>
   
-  <servlet>    
-    <servlet-name>SRU_WS</servlet-name>        
+  <servlet>
+    <servlet-name>FCS-WS</servlet-name>
     <servlet-class>com.sun.jersey.spi.container.servlet.ServletContainer</servlet-class>
     <init-param>
       <param-name>com.sun.jersey.config.property.packages</param-name>
-      <param-value>de.mannheim.ids.sruws</param-value>
+      <param-value>de.mannheim.ids.fcsws</param-value>
     </init-param>
     <init-param>
-        <param-name>de.mannheim.ids.sruws.endpoint.korap</param-name>
+        <param-name>de.mannheim.ids.fcsws.endpoint.korap</param-name>
         <param-value>http://clarin.ids-mannheim.de/korapsru</param-value>
     </init-param>
     <init-param>
-        <param-name>de.mannheim.ids.sruws.endpoint.cosmas</param-name>
+        <param-name>de.mannheim.ids.fcsws.endpoint.cosmas</param-name>
         <param-value>http://clarin.ids-mannheim.de/cosmassru</param-value>
     </init-param>
     <init-param>
-        <param-name>de.mannheim.ids.sruws.endpoint.leipzig</param-name>
+        <param-name>de.mannheim.ids.fcsws.endpoint.leipzig</param-name>
         <param-value>http://clarinws.informatik.uni-leipzig.de:8080/CQL</param-value>
     </init-param>
     <init-param>
-        <param-name>de.mannheim.ids.sruws.endpoint.tuebingen</param-name>
+        <param-name>de.mannheim.ids.fcsws.endpoint.tuebingen</param-name>
         <param-value>http://weblicht.sfs.uni-tuebingen.de/rws/sru/</param-value>
     </init-param>
     <init-param>
-        <param-name>de.mannheim.ids.sruws.endpoint.stuttgart</param-name>
+        <param-name>de.mannheim.ids.fcsws.endpoint.stuttgart</param-name>
         <param-value>http://clarin01.ims.uni-stuttgart.de/SRUCQIBridge</param-value>
     </init-param>
 
     <!-- empty pid -->    
     <init-param>
-        <param-name>de.mannheim.ids.sruws.endpoint.berlin</param-name>
+        <param-name>de.mannheim.ids.fcsws.endpoint.berlin</param-name>
         <param-value>http://dspin.dwds.de:8088/DDC-Endpoint/sru</param-value>
     </init-param>    			 
 
@@ -44,43 +43,43 @@
     
     <!-- same case like goethe, pid is sub-resource  -->    
     <init-param> 
-        <param-name>de.mannheim.ids.sruws.endpoint.muenchen</param-name>
+        <param-name>de.mannheim.ids.fcsws.endpoint.muenchen</param-name>
         <param-value>https://clarin.phonetik.uni-muenchen.de/BASSRU/</param-value>
     </init-param>
     
     <!-- weird pid -->
     <!-- <init-param>
-        <param-name>de.mannheim.ids.sruws.endpoint.mpi</param-name>
+        <param-name>de.mannheim.ids.fcsws.endpoint.mpi</param-name>
         <param-value>http://cqlservlet.mpi.nl/</param-value>
     </init-param> -->  
     
     <!-- pid doesn't match -->
     <!-- <init-param>
-        <param-name>de.mannheim.ids.sruws.endpoint.hamburg</param-name>
+        <param-name>de.mannheim.ids.fcsws.endpoint.hamburg</param-name>
         <param-value>http://virt-fedora.multilingua.uni-hamburg.de:8080/HZSKsru/</param-value>
     </init-param> -->
      
     <!-- doesnt provide scan -->		
    <!--  <init-param>
-        <param-name>de.mannheim.ids.sruws.endpoint.saarland</param-name>
+        <param-name>de.mannheim.ids.fcsws.endpoint.saarland</param-name>
         <param-value>http://fedora.clarin-d.uni-saarland.de/sru2/</param-value>
     </init-param> -->
     
     <!-- <init-param>
-    	<param-name>de.mannheim.ids.sruws.endpoint.lindat</param-name>
+    	<param-name>de.mannheim.ids.fcsws.endpoint.lindat</param-name>
     	<param-value>http://lindat.mff.cuni.cz/services/fcs</param-value>
     </init-param> -->
       
     <!-- Dutch -->
     <!-- <init-param>
-    	<param-name>de.mannheim.ids.sruws.endpoint.dans</param-name>
+    	<param-name>de.mannheim.ids.fcsws.endpoint.dans</param-name>
     	<param-value>http://srucql.dans.knaw.nl</param-value>
     </init-param> -->
        
     <load-on-startup>1</load-on-startup>
   </servlet>
   <servlet-mapping>
-    <servlet-name>SRU_WS</servlet-name>
+    <servlet-name>FCS-WS</servlet-name>
     <url-pattern>/*</url-pattern>
   </servlet-mapping>  
  
diff --git a/src/test/java/de/mannheim/ids/sruws/test/TestClient.java b/src/test/java/de/mannheim/ids/fcsws/test/TestClient.java
similarity index 95%
rename from src/test/java/de/mannheim/ids/sruws/test/TestClient.java
rename to src/test/java/de/mannheim/ids/fcsws/test/TestClient.java
index a5870fd..fd19547 100644
--- a/src/test/java/de/mannheim/ids/sruws/test/TestClient.java
+++ b/src/test/java/de/mannheim/ids/fcsws/test/TestClient.java
@@ -1,4 +1,4 @@
-package de.mannheim.ids.sruws.test;
+package de.mannheim.ids.fcsws.test;
 
 import static org.junit.Assert.assertEquals;
 
@@ -19,7 +19,7 @@
 		
 	public static void main(String arg[]) throws IOException{
 		String url =
-//		        "http://localhost:8080/SRU-WS/" +
+//		        "http://localhost:8080/FCS-WS/" +
 		 "http://clarin.ids-mannheim.de/fcsws" +
 			    "?maximumRecords=10&endpoint=korap";
 		
