diff --git a/pom.xml b/pom.xml
index 6eeb78f..f059437 100644
--- a/pom.xml
+++ b/pom.xml
@@ -2,11 +2,10 @@
   xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
   <modelVersion>4.0.0</modelVersion>
   <groupId>de.mannheim.ids</groupId>
-  <artifactId>SRU-WS</artifactId>
+  <artifactId>FCS-WS</artifactId>
   <packaging>war</packaging>
-  <version>1.0.2</version>
-  <name>SRU-WS Maven Webapp</name>
-  <url>http://maven.apache.org</url>  
+  <version>1.0.3</version>
+  <name>Federated Content Search Webservice</name>
   
   <dependencies>
   	<dependency>
@@ -57,7 +56,7 @@
     </dependency>
   </dependencies>
   <build>
-    <finalName>SRU-WS</finalName>
+    <finalName>FCS-WS</finalName>
     <plugins>
       <plugin>
           <groupId>org.apache.maven.plugins</groupId>
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";
 		
