diff --git a/oaipmh-core/pom.xml b/oaipmh-core/pom.xml
index 55763339730524c82c2e4eb2f47ab23096f11361..3a0c2822f9653dac439afb39162e1b9efec21f98 100644
--- a/oaipmh-core/pom.xml
+++ b/oaipmh-core/pom.xml
@@ -4,11 +4,11 @@
 	<parent>
 		<artifactId>oaipmh</artifactId>
 		<groupId>info.textgrid.middleware</groupId>
-		<version>1.3.10-SNAPSHOT</version>
+		<version>1.3.11-SNAPSHOT</version>
 	</parent>
 	<groupId>info.textgrid.middleware</groupId>
 	<artifactId>oaipmh-core</artifactId>
-	<version>1.3.10-SNAPSHOT</version>
+	<version>1.3.11-SNAPSHOT</version>
 	<packaging>jar</packaging>
 	<name>TextGrid :: TG-OAI-PMH :: Core</name>
 	<url>http://maven.apache.org</url>
diff --git a/oaipmh-core/src/main/java/info/textgrid/middleware/DublinCoreFieldLoader.java b/oaipmh-core/src/main/java/info/textgrid/middleware/DublinCoreFieldLoader.java
index 10b4a85ab5aa16aa05d47bf4f94b89bf21a61e73..2603655dfe00eb30ebc978dd871ef5162ece2963 100644
--- a/oaipmh-core/src/main/java/info/textgrid/middleware/DublinCoreFieldLoader.java
+++ b/oaipmh-core/src/main/java/info/textgrid/middleware/DublinCoreFieldLoader.java
@@ -90,7 +90,7 @@ public class DublinCoreFieldLoader {
 		
 		for(String field : values){
 			try {
-				if (responseWorkValues.getField(field) != null) {
+				if (responseWorkValues.getField("created") != null) {
 					dates.add(OAIPMHUtillities.convertDateFormat(
 						responseWorkValues.getField(field).getValue()
 								.toString()).toXMLFormat());
diff --git a/oaipmh-core/src/main/java/info/textgrid/middleware/IdentifierListDeliverer.java b/oaipmh-core/src/main/java/info/textgrid/middleware/IdentifierListDeliverer.java
index ee7677ac2032ff25c805ba8d6c67aafb73ed951f..149206c6a8f49ab32bec9f6b12a2084f529a4db0 100644
--- a/oaipmh-core/src/main/java/info/textgrid/middleware/IdentifierListDeliverer.java
+++ b/oaipmh-core/src/main/java/info/textgrid/middleware/IdentifierListDeliverer.java
@@ -27,12 +27,17 @@ public class IdentifierListDeliverer {
 
 	private static org.apache.commons.logging.Log log = LogFactory.getLog(IdentifierListDeliverer.class);
 	private String datestamp;
-	private	ListIdentifiersType lit = new ListIdentifiersType();
+	//private	ListIdentifiersType lit = new ListIdentifiersType();
 	private boolean idExist = true;
 	private OAI_ESClient oaiEsClient;
 	
 	private String[] identifierListFields;
 	private String rangeField;
+	private String formatToFilter;
+	private String formatField;
+	private String dateOfObjectCreation;
+	private String repositoryObjectURIPrefix;
+	private String identifierPrefix;
 
 	
 	/**
@@ -48,7 +53,7 @@ public class IdentifierListDeliverer {
 		this.oaiEsClient = oaiEsClient;
 	}
 	
-	private ListIdentifiersType setListIdentifierHeader(String datestamp, String identifier){
+	private ListIdentifiersType setListIdentifierHeader(String datestamp, String identifier, ListIdentifiersType lit){
 		
 		HeaderType header = new HeaderType();
 		header.setDatestamp(datestamp);
@@ -59,7 +64,7 @@ public class IdentifierListDeliverer {
 		return lit;
 	}
 	
-	private ListIdentifiersType setListIdentifierHeaderWithSet(String datestamp, String identifier, String set){
+	private ListIdentifiersType setListIdentifierHeaderWithSet(String datestamp, String identifier, String set, ListIdentifiersType lit){
 		
 		HeaderType header = new HeaderType();
 		
@@ -68,9 +73,7 @@ public class IdentifierListDeliverer {
 		header.getSetSpec().add(set); 
 		
 		lit.getHeader().add(header);
-		
-		
-		
+
 		return lit;
 	}
 	
@@ -88,7 +91,8 @@ public class IdentifierListDeliverer {
 	 * @throws ParseException 
 	 */
 	
-	public ListIdentifiersType getIdentifierList(String from, String to) throws ParseException{
+	public ListIdentifiersType processIdentifierList(String from, String to) throws ParseException{
+		ListIdentifiersType lit = new ListIdentifiersType();
 		
 		String identifier;
 		QueryBuilder queryBuilder = QueryBuilders.rangeQuery(rangeField).from(from).to(to);
@@ -98,7 +102,7 @@ public class IdentifierListDeliverer {
 				.setTypes(oaiEsClient.getEsType())
 				.addFields(identifierListFields)
 				.setQuery(queryBuilder)
-				.setSize(10);
+				.setSize(1000);
 		
 		SearchResponse listListIdentiierValues = getListIdentifiersValuesBuilder.execute().actionGet();
 		
@@ -106,8 +110,9 @@ public class IdentifierListDeliverer {
 				
 		for(SearchHit hit : listListIdentiierValues.getHits().getHits()) {
 			
-			datestamp = hit.getFields().get("created").getValue().toString();
-			
+			if(hit.getFields().get(formatField).getValue().toString().equals(formatToFilter)){
+
+			datestamp = hit.getFields().get(dateOfObjectCreation).getValue().toString();
 			
 			try {
 				//XMLGregorianCalendar convertedDateFormat= OAIPMHUtillities.convertDateFormat(datestamp);
@@ -115,27 +120,32 @@ public class IdentifierListDeliverer {
 			} catch (DatatypeConfigurationException e) {
 				log.debug(e);
 			}
-			
-			identifier = hit.getFields().get("textgridUri").getValue().toString();
-			
+
+			identifier = hit.getFields().get(identifierPrefix).getValue().toString();
 			
 			
-			lit=setListIdentifierHeader(datestamp, identifier);
 			
+			lit=setListIdentifierHeader(datestamp, identifier, lit);
+			}
 		}
 		
 		} else{
 			
 			lit=null;
 		}
-		
-		
+				
+		return lit;
+	}
+	
+	public ListIdentifiersType getLit(ListIdentifiersType lit) {
 		return lit;
 	}
 	
 	
 	public ListIdentifiersType getIdentifierListWithSet(String from, String to, String set) throws ParseException{
 		
+		ListIdentifiersType lit = new ListIdentifiersType();
+		
 		String identifier;
 
 		String[] setParts = set.split(":");
@@ -159,7 +169,7 @@ public class IdentifierListDeliverer {
 				
 		for(SearchHit hit : listListIdentiierValues.getHits().getHits()) {
 			
-			datestamp = hit.getFields().get("created").getValue().toString();
+			datestamp = hit.getFields().get(dateOfObjectCreation).getValue().toString();
 			
 			
 			try {
@@ -169,11 +179,11 @@ public class IdentifierListDeliverer {
 				log.debug(e);
 			}
 			
-			identifier = hit.getFields().get("textgridUri").getValue().toString();
+			identifier = hit.getFields().get(repositoryObjectURIPrefix).getValue().toString();
 			
 			
 			
-			lit=setListIdentifierHeaderWithSet(datestamp, identifier, set);
+			lit=setListIdentifierHeaderWithSet(datestamp, identifier, set, lit);
 			
 						
 		}
@@ -209,6 +219,30 @@ public class IdentifierListDeliverer {
 		
 	}
 	
+	public void setFormatToFilter(String formatToFilter){
+		this.formatToFilter = formatToFilter;
+	}
+	
+	public void setFormatField(String formatField){
+		this.formatField = formatField;
+	}
+		
+	public String getDateOfObjectCreation() {
+		return dateOfObjectCreation;
+	}
+
+	public void setDateOfObjectCreation(String dateOfObjectCreation) {
+		this.dateOfObjectCreation = dateOfObjectCreation;
+	}
+	
+	public void setRepositoryObjectURIPrefix(String repositoryObjectURIPrefix) {
+		this.repositoryObjectURIPrefix = repositoryObjectURIPrefix;
+	}
+
+	public String getRepositoryObjectURIPrefix() {
+		return repositoryObjectURIPrefix;
+	}
+	
 	public void setIdExist(boolean validItem){
 		idExist=validItem;
 	}
@@ -231,4 +265,12 @@ public class IdentifierListDeliverer {
 	public void setFieldForRange(String fieldForRange) {
 		this.rangeField = fieldForRange;
 	}
+
+	public String getIdentifierPrefix() {
+		return identifierPrefix;
+	}
+
+	public void setIdentifierPrefix(String identifierPrefix) {
+		this.identifierPrefix = identifierPrefix;
+	}
 }
diff --git a/oaipmh-core/src/main/java/info/textgrid/middleware/MetadataFormatListDeliverer.java b/oaipmh-core/src/main/java/info/textgrid/middleware/MetadataFormatListDeliverer.java
index e09a1e76c2568bca860ef3e7045706425e08e04d..64ab0b4e756fd75c4c9834a4bba26742bf1da0eb 100644
--- a/oaipmh-core/src/main/java/info/textgrid/middleware/MetadataFormatListDeliverer.java
+++ b/oaipmh-core/src/main/java/info/textgrid/middleware/MetadataFormatListDeliverer.java
@@ -10,8 +10,6 @@ import info.textgrid.middleware.oaipmh.RequestType;
 public class MetadataFormatListDeliverer {
 	
 	private boolean idExist = true;
-	private ListMetadataFormatsType lmft = new ListMetadataFormatsType();
-	private MetadataFormatType mft = new MetadataFormatType();
 	private OAI_ESClient oaiEsClient;
 	
 	public MetadataFormatListDeliverer(OAI_ESClient oaiEsClient){
@@ -19,32 +17,37 @@ public class MetadataFormatListDeliverer {
 	}
 		
 	public ListMetadataFormatsType setMetadataFormatList(String id){
+			
+		ListMetadataFormatsType lmft = new ListMetadataFormatsType();
+		MetadataFormatType mft = new MetadataFormatType();
 		
-			GetRequestBuilder recordById = oaiEsClient.getOaiESClient().prepareGet()
-				.setIndex(oaiEsClient.getEsIndex())
-				.setType(oaiEsClient.getEsType())
-				.setFields("textgridUri")
-				.setId(id); 
-		
-			GetResponse tgObject = recordById.execute().actionGet();
+		GetRequestBuilder recordById = oaiEsClient.getOaiESClient().prepareGet()
+			.setIndex(oaiEsClient.getEsIndex())
+			.setType(oaiEsClient.getEsType())
+			.setFields("textgridUri")
+			.setId(id); 
 		
-			if(tgObject.isExists()){
-				setIdExist(true);
-				mft.setMetadataNamespace("http://www.openarchives.org/OAI/2.0/oai_dc/");
-				mft.setMetadataPrefix(TGConstants.METADATA_DC_PREFIX);
-				mft.setSchema("http://www.openarchives.org/OAI/2.0/oai_dc.xsd");
-				lmft.getMetadataFormat().add(mft);
-			}else{
-				setIdExist(false);
-				lmft=null;
-			}
-			
+		GetResponse tgObject = recordById.execute().actionGet();
 		
+		if(tgObject.isExists()){
+			setIdExist(true);
+			mft.setMetadataNamespace("http://www.openarchives.org/OAI/2.0/oai_dc/");
+			mft.setMetadataPrefix(TGConstants.METADATA_DC_PREFIX);
+			mft.setSchema("http://www.openarchives.org/OAI/2.0/oai_dc.xsd");
+			lmft.getMetadataFormat().add(mft);
+		}else{
+			setIdExist(false);
+			lmft=null;
+		}
+				
 		return lmft;
 	}
 	
 	public ListMetadataFormatsType setMetadataFormatListWithoutId(){
 		
+		ListMetadataFormatsType lmft = new ListMetadataFormatsType();
+		MetadataFormatType mft = new MetadataFormatType();
+		
 		mft.setMetadataNamespace("http://www.openarchives.org/OAI/2.0/oai_dc/");
 		mft.setMetadataPrefix(TGConstants.METADATA_DC_PREFIX);
 		mft.setSchema("http://www.openarchives.org/OAI/2.0/oai_dc.xsd");
diff --git a/oaipmh-core/src/main/java/info/textgrid/middleware/OAIPMHImpl.java b/oaipmh-core/src/main/java/info/textgrid/middleware/OAIPMHImpl.java
index f0e99b99655294ac548a5ae83c36d418846c4f26..ae713f26b1d906c1ecebdfd73c4b18f0ce387875 100644
--- a/oaipmh-core/src/main/java/info/textgrid/middleware/OAIPMHImpl.java
+++ b/oaipmh-core/src/main/java/info/textgrid/middleware/OAIPMHImpl.java
@@ -41,15 +41,17 @@ public class OAIPMHImpl implements OAIPMHProducer{
 	
 	private 		ErrorHandler error = new ErrorHandler();
 	private 		org.apache.commons.logging.Log log = LogFactory.getLog(OAIPMHImpl.class);
-	private			ListIdentifiersType listIDs = new ListIdentifiersType();
 	private 		OAI_ESClient oaiEsClient;
-	//private static  String[] fields;
 	private			RepIdentification rep;
 	private			RecordListDeliverer recordList;
 	private 		RecordDeliverer recDeliv;
 	private			MetadataFormatListDeliverer metadataFormatList;
 	private			SetDeliverer setList;
 	private			IdentifierListDeliverer identifierList;
+	
+	ListIdentifiersType lit = new ListIdentifiersType();
+	
+	
 
 	
 	
@@ -68,21 +70,7 @@ public class OAIPMHImpl implements OAIPMHProducer{
 		this.metadataFormatList = metadataFormatList;
 		this.setList = setList;
 		this.identifierList = identifierList;
-	}
-	
-	public OAIPMHImpl(OAI_ESClient oaiEsClient, RepIdentification rep){
-		this.oaiEsClient=oaiEsClient;
-		this.rep = rep;
-	}
-	
-	public OAIPMHImpl(OAI_ESClient oaiEsClient, RecordDeliverer recDeliv){
-		this.oaiEsClient=oaiEsClient;
-		this.recDeliv = recDeliv;
-	}
-	
-	public OAIPMHImpl(OAI_ESClient oaiEsClient, RecordListDeliverer recordList){
-		this.oaiEsClient=oaiEsClient;
-		this.recordList = recordList;
+
 	}
 	
 	/**
@@ -169,17 +157,9 @@ public class OAIPMHImpl implements OAIPMHProducer{
 	public JAXBElement<OAIPMHType> identifyRequest(ObjectFactory obf, OAIPMHType oai, RequestType request){
 		List<String> errorValues = new ArrayList<String>();
 		JAXBElement<OAIPMHType> oaipmhRoot = obf.createOAIPMH(oai);
-		//RepIdentification repIdentification = new RepIdentification();
 		IdentifyType tgRepIdentificationRequest = new IdentifyType();
 		
 		if(rep.requestChecker(request)){
-			//tgRepIdentificationRequest.setBaseURL(repIdentification.getBaseUrl());
-			//tgRepIdentificationRequest.setDeletedRecord(repIdentification.getDeletedRecordStatus());
-			//tgRepIdentificationRequest.setEarliestDatestamp(repIdentification.getEarliestDatestamp());
-			//tgRepIdentificationRequest.setGranularity(repIdentification.getGranularity());
-			//tgRepIdentificationRequest.setRepositoryName(repIdentification.getRepositoryName());
-			//tgRepIdentificationRequest.setProtocolVersion(repIdentification.getProtocolVersion());
-			//tgRepIdentificationRequest.getAdminEmail().add(repIdentification.getAdminMaiAddresss());
 			
 			tgRepIdentificationRequest.setBaseURL(rep.getBaseUrl());
 			tgRepIdentificationRequest.setDeletedRecord(rep.getDeletedRecordStatus());
@@ -231,9 +211,14 @@ public class OAIPMHImpl implements OAIPMHProducer{
 		}
 		
 		else if(recDeliv.requestChecker(request)){
-										
-				GetRecordType getRecord = recDeliv.getRecordById(request.getIdentifier());
+				
+				//recDeliv.getRecordById(request.getIdentifier());
+				
+				GetRecordType getRecord = new GetRecordType();
+				getRecord = recDeliv.getRecordById(request.getIdentifier());
+				
 				if(getRecord!=null){
+					//getRecord = recDeliv.getRecordById(request.getIdentifier());
 					oai.setGetRecord(getRecord);
 				}
 				else{
@@ -272,9 +257,10 @@ public class OAIPMHImpl implements OAIPMHProducer{
 	public JAXBElement<OAIPMHType> listIdentifiersRequest(ObjectFactory obf, OAIPMHType oai, RequestType request) throws ParseException{
 		
 		List<String> errorValues = new ArrayList<String>();
-		//IdentifierListDeliverer listIdDeliv = new IdentifierListDeliverer(oaiEsClient);
 		JAXBElement<OAIPMHType> oaipmhRoot = obf.createOAIPMH(oai);
 		
+				
+		
 		if(identifierList.requestChecker(request)){
 			
 			if(!request.getMetadataPrefix().equals(TGConstants.METADATA_DC_PREFIX)){
@@ -294,9 +280,10 @@ public class OAIPMHImpl implements OAIPMHProducer{
 				try {
 				
 					if(request.getSet()==null){
-						if(identifierList.getIdentifierList(request.getFrom(), request.getUntil())!=null){
-							listIDs = identifierList.getIdentifierList(request.getFrom(), request.getUntil());
-							oai.setListIdentifiers(listIDs);
+						identifierList.processIdentifierList(request.getFrom(), request.getUntil());
+						if(identifierList.processIdentifierList(request.getFrom(), request.getUntil())!=null){
+							lit = identifierList.processIdentifierList(request.getFrom(), request.getUntil());
+							oai.setListIdentifiers(lit);
 						}else{
 							error.setError(TGConstants.OAI_NO_RECORD_MATCH).setValue("The combination of the values " + request.getFrom() + " and " +
 									request.getUntil() + " results in an empty list");
@@ -304,8 +291,8 @@ public class OAIPMHImpl implements OAIPMHProducer{
 						}
 					}else{
 						if(request.getSet()!=null && identifierList.getIdentifierListWithSet(request.getFrom(), request.getUntil(), request.getSet())!=null){
-							listIDs = identifierList.getIdentifierListWithSet(request.getFrom(), request.getUntil(), request.getSet());
-							oai.setListIdentifiers(listIDs);
+							lit = identifierList.getIdentifierListWithSet(request.getFrom(), request.getUntil(), request.getSet());
+							oai.setListIdentifiers(lit);
 						}else{
 							error.setError(TGConstants.OAI_NO_RECORD_MATCH).setValue("The combination of the values " + request.getFrom() + " and " +
 									request.getUntil() + " results in an empty list");
@@ -330,6 +317,7 @@ public class OAIPMHImpl implements OAIPMHProducer{
 			oai.getError().add(error.setError(TGConstants.OAI_BAD_ARGUMENT));
 			
 		}
+		
 		return oaipmhRoot;
 	}
 	
@@ -416,29 +404,14 @@ public class OAIPMHImpl implements OAIPMHProducer{
 						+ request.getIdentifier());
 				oai.getError().add(error.setError(TGConstants.OAI_METADATA_FORMAT_ERROR));
 			}else{
-				
-				//if(request.getSet()==null){
-				
-					listRecords = recordList.getRecordsWithSet(request.getFrom(), request.getUntil(), request.getSet());
-					if(listRecords!=null){
-								oai.setListRecords(listRecords);
-					}else{
-						error.setError(TGConstants.OAI_NO_RECORD_MATCH).setValue("The combination of the values " + request.getFrom() + " and " +
-							request.getUntil() + " results in an empty list");
-						oai.getError().add(error.setError(TGConstants.OAI_NO_RECORD_MATCH));
-					}
-				//}
-				/*else{
-					listRecords = recordList.getRecordsWithSet(request.getFrom(), request.getUntil(), request.getSet());
-					if(listRecords!=null){
-						
-								oai.setListRecords(listRecords);
-					}else{
-						error.setError(TGConstants.OAI_NO_RECORD_MATCH).setValue("The combination of the values " + request.getFrom() + " and " +
-							request.getUntil() + " results in an empty list");
-						oai.getError().add(error.setError(TGConstants.OAI_NO_RECORD_MATCH));
-					}
-				}*/
+				listRecords = recordList.getRecordsWithSet(request.getFrom(), request.getUntil(), request.getSet());
+				if(listRecords!=null){
+					oai.setListRecords(listRecords);
+				}else{
+					error.setError(TGConstants.OAI_NO_RECORD_MATCH).setValue("The combination of the values " + request.getFrom() + " and " +
+					request.getUntil() + " results in an empty list");
+					oai.getError().add(error.setError(TGConstants.OAI_NO_RECORD_MATCH));
+				}
 			}
 		}else{
 			if(request.getIdentifier()!=null){
@@ -583,8 +556,4 @@ public class OAIPMHImpl implements OAIPMHProducer{
 		
 		return request;
 	}
-	
-	/*public void setFields(String[] fields){
-		OAIPMHImpl.fields = fields;
-	}*/
 }
diff --git a/oaipmh-core/src/main/java/info/textgrid/middleware/RecordDeliverer.java b/oaipmh-core/src/main/java/info/textgrid/middleware/RecordDeliverer.java
index dbfdae6cd7d34fe78a857d3105d80f8e247d54a3..4eb447b65600049997b45fa038c1c463532cc044 100644
--- a/oaipmh-core/src/main/java/info/textgrid/middleware/RecordDeliverer.java
+++ b/oaipmh-core/src/main/java/info/textgrid/middleware/RecordDeliverer.java
@@ -16,7 +16,6 @@ import info.textgrid.middleware.oaipmh.OaiDcType;
 import info.textgrid.middleware.oaipmh.ObjectFactory;
 import info.textgrid.middleware.oaipmh.RecordType;
 import info.textgrid.middleware.oaipmh.RequestType;
-import info.textgrid.namespaces.middleware.tgcrud.common.TextGridMimetypes;
 
 /**
  * Query ElasticSearch index for the values mapped to dublinCore for a specific object and collect them into lists
@@ -34,6 +33,13 @@ public class RecordDeliverer {
 	private boolean									textgrid;
 	private boolean									dariah;
 	
+	private String									formatField;
+	private String									formatToFilter;
+	private String									dateOfObjectCreation;
+	private String									relationToFurtherMetadataObject;
+	private String									repositoryObjectURIPrefix;
+	private String									identifierPrefix;
+	
 	/*
 	 * Lists for the Dublin Core elements. Lists are needed since each DC fields is possible to occures several times
 	 */
@@ -73,21 +79,13 @@ public class RecordDeliverer {
 	
 	private static org.apache.commons.logging.Log log = LogFactory.getLog(RecordDeliverer.class);
 	
-	private RecordType record = new RecordType();
-	private HeaderType recordHeader = new HeaderType();
-	private ObjectFactory of = new ObjectFactory();
-	private OaiDcType odt = new OaiDcType();
-	private GetRecordType grt = new GetRecordType();
-	private DublinCoreBuilder dbc = new DublinCoreBuilder(odt, of);
 	private OAI_ESClient oaiEsClient;
 	
 	public RecordDeliverer(OAI_ESClient oaiEsClient,
-			String[] fields, 
             String[] workFields, 
             boolean textgrid, 
             boolean dariah){
 		this.oaiEsClient=oaiEsClient;
-		this.fields = fields;
 		this.workFields = workFields;
 		this.textgrid = textgrid;
 		this.dariah = dariah;
@@ -102,10 +100,16 @@ public class RecordDeliverer {
 	
 	public GetRecordType getRecordById(String id){
 		
+		ObjectFactory of = new ObjectFactory();
+		OaiDcType odt = new OaiDcType();
+		GetRecordType grt = new GetRecordType();
+		RecordType record = new RecordType();
 		String changedId = id;
+		DublinCoreBuilder dbc = new DublinCoreBuilder(odt, of);
 		
-		if(id.startsWith(TGConstants.TG_ITEM_IDENTIFIER_PREFIX)){
-			changedId = changedId.replace(TGConstants.TG_ITEM_IDENTIFIER_PREFIX, "");
+				
+		if(id.startsWith(repositoryObjectURIPrefix)){
+			changedId = changedId.replace(repositoryObjectURIPrefix, "");
 		}
 		
 		GetRequestBuilder recordById = oaiEsClient.getOaiESClient().prepareGet()
@@ -116,27 +120,30 @@ public class RecordDeliverer {
 		
 		GetResponse tgObject = recordById.execute().actionGet();
 		
-				
-		if(tgObject.isExists() && tgObject.getField(TGConstants.FORMAT).getValue().toString().equals(TextGridMimetypes.EDITION)){
+		if(tgObject.isExists() && tgObject.getField(formatField).getValue()
+				.toString().equals(formatToFilter)){
 			
 			if(dariah == true){
 				
 			}
 			
 			if(textgrid == true){
-				String workUri = tgObject.getField(TGConstants.EDITION_ISEDITIONOF).getValue().toString();
-				workUri = workUri.substring(TGConstants.TG_ITEM_IDENTIFIER_PREFIX.length());
-				
+				String workUri = tgObject.getField(relationToFurtherMetadataObject).getValue().toString();
+				workUri = workUri.substring(repositoryObjectURIPrefix.length());
 				putContentIntoDCFieldLists(tgObject, furtherDCElements(workUri));
 			}
 			
-			recordHeader.setIdentifier(tgObject.getField(TGConstants.URI).getValue().toString());
-			recordHeader.setDatestamp(dates.get(0));
+			String identifier = tgObject.getField(identifierPrefix)
+					.getValue().toString();
+			String dateOfCreation = tgObject.getField(dateOfObjectCreation).getValue().toString();
 			
-			setDCObject(odt, of);
+			setRecordHeader(dateOfCreation, identifier, record, dbc);
+			
+						
+			setDCObject(odt, of, dbc);
 			record.setMetadata(dbc.getDC());
-			record.setHeader(recordHeader);
 			grt.setRecord(record);
+			listClearer();
 		
 		}
 		else{
@@ -146,7 +153,18 @@ public class RecordDeliverer {
 		return grt;
 	}
 	
-	
+	public RecordType setRecordHeader(String dateOfCreation, String identifier, RecordType record, DublinCoreBuilder dbc){
+		
+		HeaderType recordHeader = new HeaderType();
+		
+		recordHeader.setIdentifier(identifier);
+		recordHeader.setDatestamp(dateOfCreation);
+		record.setMetadata(dbc.getDC());
+		record.setHeader(recordHeader);
+		
+				
+		return record;
+	}
 	
 	public GetResponse furtherDCElements(String id){
 				
@@ -155,14 +173,13 @@ public class RecordDeliverer {
 				.setType(oaiEsClient.getEsType())
 				.setId(id)
 				.setFields(workFields); 
-				
 		
 		GetResponse responseWorkValues = getWorkValues.execute().actionGet();
 		
 		try {
-			if (responseWorkValues.getField(TGConstants.CREATED) != null) {
+			if (responseWorkValues.getField(dateOfObjectCreation) != null) {
 				dates.add(OAIPMHUtillities.convertDateFormat(
-						responseWorkValues.getField(TGConstants.CREATED).getValue()
+						responseWorkValues.getField(dateOfObjectCreation).getValue()
 								.toString()).toXMLFormat());
 			}
 		} catch (ParseException e) {
@@ -203,7 +220,7 @@ public class RecordDeliverer {
 	 * @param of jaxb object factory the DublinCore elements
 	 */
 	
-	public void setDCObject(OaiDcType odt, ObjectFactory of){
+	public void setDCObject(OaiDcType odt, ObjectFactory of, DublinCoreBuilder dbc){
 		
 		dbc.setContributor(contributors);
 		dbc.setCoverage(coverages);
@@ -223,67 +240,160 @@ public class RecordDeliverer {
 		
 	}
 	
+	public void listClearer() {
+		this.contributors.clear();
+		this.coverages.clear();
+		this.creators.clear();
+		this.dates.clear();
+		this.descriptions.clear();
+		this.formats.clear();
+		this.identifiers.clear();
+		this.languages.clear();
+		this.publishers.clear();
+		this.relations.clear();
+		this.rights.clear();
+		this.sources.clear();
+		this.subjects.clear();
+		this.titles.clear();
+		this.types.clear();
+	}
+	
+	public void setFormatToFilter(String formatToFilter){
+		this.formatToFilter = formatToFilter;
+	}
+	
+	public void setFormatField(String formatField){
+		this.formatField = formatField;
+	}
+		
+	public String getDateOfObjectCreation() {
+		return dateOfObjectCreation;
+	}
+
+	public void setDateOfObjectCreation(String dateOfObjectCreation) {
+		this.dateOfObjectCreation = dateOfObjectCreation;
+	}
+	
+	public String getRelationToFurtherMetadataObject() {
+		return relationToFurtherMetadataObject;
+	}
+
+	public void setRelationToFurtherMetadataObject(
+			String relationToFurtherMetadataObject) {
+		this.relationToFurtherMetadataObject = relationToFurtherMetadataObject;
+	}
+	
+	public String getRepositoryObjectURIPrefix() {
+		return repositoryObjectURIPrefix;
+	}
+
+	public void setRepositoryObjectURIPrefix(String repositoryObjectURIPrefix) {
+		this.repositoryObjectURIPrefix = repositoryObjectURIPrefix;
+	}
+	
+	public String getIdentifierPrefix() {
+		return identifierPrefix;
+	}
+
+	public void setIdentifierPrefix(String identifierPrefix) {
+		this.identifierPrefix = identifierPrefix;
+	}
+	
+	public void setFields(String[] fields){
+		this.fields = fields;
+	}
+	
+	public String[] getFields(){
+		return this.fields;
+		
+	}
+	
+	public void setWorkFields(String[] workFields){
+		this.workFields = workFields;
+	}
+	
 	public void setContributor(String[] contributorList){
+		
 		this.contributorList = contributorList;
 	}
 	
+	public String[] getContributor(){
+		
+		return this.contributorList;
+	}
+	
 	public void setCoverage(String[] coveragesList){
+		
 		this.coverageList = coveragesList;
 	}
 	
-	public void setCreators(String[] creatorsList){
+	public void setCreator(String[] creatorsList){
+		
 		this.creatorList = creatorsList;
 	}
 	
 	public void setDates(String[] datesList){
+		
 		this.dateList = datesList;
 	}
 	
-	public void setDescriptions(String[]descriptionsList){
+	public void setDescriptions(String[] descriptionsList){
+		
 		this.descriptionList = descriptionsList;
 	}
 	
 	public void setFormats(String[] formatsList){
+		
 		this.formatList = formatsList;
 	}
 	
 	public void setIdentifiers(String[] identifiersList){
+		
 		this.identifierList = identifiersList;
 	}
 	
 	public void setLanguages(String[] languagesList){
+		
 		this.languageList = languagesList;
 	}
 	
 	public void setPublishers(String[] publishersList){
+		
 		this.publisherList = publishersList;
 	}
 	
 	public void setRelations(String[] relationsList){
+		
 		this.relationList = relationsList;
 	}
 	
 	
 	public void setRelationsForWork(String[] relationsList){
+		
 		this.relationForWorkList = relationsList;
 	}
 	
 	public void setRights(String[] rightsList){
+		
 		this.rightList = rightsList;
 	}
 	public void setSources(String[] sourcesList){
+		
 		this.sourceList = sourcesList;
 	}
 	
 	public void setSubjects(String[] subjectsList){
+		
 		this.subjectList = subjectsList;
 	}
 	
 	public void setTitles(String[] titlesList){
+		
 		this.titleList = titlesList;
 	}
 	
 	public void setTypes(String[] typesList){
+		
 		this.typeList = typesList;
 	}
 	
@@ -314,4 +424,6 @@ public class RecordDeliverer {
 		
 		return requestCheck;
 	}
+
+
 }
diff --git a/oaipmh-core/src/main/java/info/textgrid/middleware/RecordListDeliverer.java b/oaipmh-core/src/main/java/info/textgrid/middleware/RecordListDeliverer.java
index f2b3e5bf901920ecae58a9394997cf9419e528c6..39cecd90eea1ab064cd0da7977392b345f1e2a7c 100644
--- a/oaipmh-core/src/main/java/info/textgrid/middleware/RecordListDeliverer.java
+++ b/oaipmh-core/src/main/java/info/textgrid/middleware/RecordListDeliverer.java
@@ -54,7 +54,12 @@ public class RecordListDeliverer {
 	private String[]								workFields;
 	private boolean									textgrid;
 	private boolean									dariah;
-	private ListRecordsType							recordList			= new ListRecordsType();
+	private String									formatField;
+	private String									formatToFilter;
+	private String									dateOfObjectCreation;
+	private String									relationToFurtherMetadataObject;
+	private String									repositoryObjectURIPrefix;
+	private String									rangeField;
 	
 	/*
 	 * DC-Field Lists
@@ -129,12 +134,9 @@ public class RecordListDeliverer {
 				.setType(esClient.getEsType())
 				.setId(id)
 				.setFields(workFields);
-		System.out.println("halejulja");
+
 		GetResponse responseWorkValues = getWorkValues.execute().actionGet();
 		
-		System.out.println(responseWorkValues.getField("work.genre")
-							.getValue().toString());
-		
 		return responseWorkValues;
 	}
 	
@@ -144,7 +146,7 @@ public class RecordListDeliverer {
 	 * @param query
 	 */
 	
-	public void fetchFields(QueryBuilder query){
+	public void fetchFields(QueryBuilder query, ListRecordsType recordList){
 		
 		SearchRequestBuilder getRecordList = oaiEsClient
 				.getOaiESClient()
@@ -167,12 +169,12 @@ public class RecordListDeliverer {
 				if (hit != null && hits != null) {
 					
 					//The response should also contains the editions
-					if (hit.getFields().get(TGConstants.FORMAT).values().get(0).toString()
-							.equals(TextGridMimetypes.EDITION)) {
+					if (hit.getFields().get(formatField).values().get(0).toString()
+							.equals(formatToFilter)) {
 
 						//The datestamp from textgrid is in not compatible format so it has to be transformed
 						try {
-							String datestamp = hit.getFields().get(TGConstants.CREATED)
+							String datestamp = hit.getFields().get(dateOfObjectCreation)
 									.getValue().toString();
 							datestamp = OAIPMHUtillities.convertDateFormat(
 									datestamp).toXMLFormat();
@@ -190,16 +192,18 @@ public class RecordListDeliverer {
 						}
 						
 						if(textgrid == true){
-							System.out.println("work found");
+							
 							String workUri = hit.getFields()
-								.get(TGConstants.EDITION_ISEDITIONOF).values().get(0)
-								.toString().substring(TGConstants.TG_ITEM_IDENTIFIER_PREFIX
+								.get(relationToFurtherMetadataObject).values().get(0)
+								.toString().substring(repositoryObjectURIPrefix
 										.length());
-							System.out.println(workUri);
+							if(!workUri.endsWith(".0")){
+								workUri = workUri.concat(".0");
+							}
 							putContentIntoDCFieldLists(hit, furtherDCElements(workUri, oaiEsClient));
 						}
 						
-						buildRecord();
+						buildRecord(recordList);
 						listClearer();
 					}
 				}
@@ -230,7 +234,7 @@ public class RecordListDeliverer {
 		
 	}
 	
-	public RecordType buildRecord(){
+	public RecordType buildRecord(ListRecordsType recordList){
 		
 		ObjectFactory of = new ObjectFactory();
 		OaiDcType odt = new OaiDcType();
@@ -260,15 +264,16 @@ public class RecordListDeliverer {
 	}
 	
 	public ListRecordsType getRecordsWithSet(String from, String to, String set) {
-		
+		ListRecordsType	recordList = new ListRecordsType();
 		QueryBuilder query;
-		QueryBuilder rangeQuery = QueryBuilders.rangeQuery(TGConstants.CREATED).from(from).to(to);
+		QueryBuilder rangeQuery = QueryBuilders.rangeQuery(rangeField).from(from).to(to);
 				
 		if(set!=null){
 			this.set = set;
 			String[] setParts = set.split(":");
-
+			
 			if(setParts[0].equals("project")){
+				
 				setParts[0] = setParts[0].concat(".value");
 			}
 		
@@ -280,7 +285,7 @@ public class RecordListDeliverer {
 			query = rangeQuery;
 		}
 		
-		fetchFields(query);
+		fetchFields(query, recordList);
 		
 		return recordList;
 	}
@@ -343,7 +348,52 @@ public class RecordListDeliverer {
 		this.titles.clear();
 		this.types.clear();
 	}
+	
+	public void setFormatToFilter(String formatToFilter){
+		this.formatToFilter = formatToFilter;
+	}
+	
+	public void setFormatField(String formatField){
+		this.formatField = formatField;
+	}
+		
+	public String getDateOfObjectCreation() {
+		return dateOfObjectCreation;
+	}
+
+	public void setDateOfObjectCreation(String dateOfObjectCreation) {
+		this.dateOfObjectCreation = dateOfObjectCreation;
+	}
+	
+	public String getRelationToFurtherMetadataObject() {
+		return relationToFurtherMetadataObject;
+	}
+
+	public void setRelationToFurtherMetadataObject(
+			String relationToFurtherMetadataObject) {
+		this.relationToFurtherMetadataObject = relationToFurtherMetadataObject;
+	}
+	
+	public String getRepositoryObjectURIPrefix() {
+		return repositoryObjectURIPrefix;
+	}
+
+	public void setRepositoryObjectURIPrefix(String repositoryObjectURIPrefix) {
+		this.repositoryObjectURIPrefix = repositoryObjectURIPrefix;
+	}
 
+	public String getFieldForRange() {
+		return rangeField;
+	}
+
+	public void setFieldForRange(String fieldForRange) {
+		this.rangeField = fieldForRange;
+	}
+	
+	/*
+	 * Setter for DublinCore Lists
+	 */
+	
 	public void setContributor(String[] contributorList){
 		this.contributorList = contributorList;
 	}
@@ -427,4 +477,10 @@ public class RecordListDeliverer {
 		return requestCheck;
 	}
 
+
+
+
+
+
+
 }
diff --git a/oaipmh-core/src/main/java/info/textgrid/middleware/SetDeliverer.java b/oaipmh-core/src/main/java/info/textgrid/middleware/SetDeliverer.java
index e2af0ba93aa41125f79fd89430a02d2605a946d7..2d15f67d6b7cbc8f1e99ae7ed8367c7754e83ddc 100644
--- a/oaipmh-core/src/main/java/info/textgrid/middleware/SetDeliverer.java
+++ b/oaipmh-core/src/main/java/info/textgrid/middleware/SetDeliverer.java
@@ -17,7 +17,7 @@ import org.elasticsearch.search.SearchHit;
 
 public class SetDeliverer {
 
-	ListSetsType setList = new ListSetsType();
+	
 	private OAI_ESClient oaiEsClient;
 	
 	public SetDeliverer(OAI_ESClient oaiEsClient) {
@@ -28,6 +28,8 @@ public class SetDeliverer {
 	
 	public ListSetsType setListBuilder(){
 		
+		ListSetsType setList = new ListSetsType();
+		
 		QueryStringQueryBuilder aggQuery = QueryBuilders.queryString("*");
 		
 		SearchRequestBuilder request = oaiEsClient.getOaiESClient()
diff --git a/oaipmh-core/src/main/java/info/textgrid/middleware/TGConstants.java b/oaipmh-core/src/main/java/info/textgrid/middleware/TGConstants.java
index e9947c44a8aff88cae7fe7da2aca02b007ec8cdb..10dc2bd5fcecabf559190dc084892f13131086ff 100644
--- a/oaipmh-core/src/main/java/info/textgrid/middleware/TGConstants.java
+++ b/oaipmh-core/src/main/java/info/textgrid/middleware/TGConstants.java
@@ -91,7 +91,7 @@ public final class TGConstants {
 	/*
 	 * String Arrays to define which TextGrid fields belongs to the regarding DC fields 
 	 */
-	
+
 	public static final String[] CONTRIBUTOR_LIST 	= {DATA_CONTRIBUTOR};
 	public static final String[] COVERAGE_LIST		= {WORK_SPATIAL, WORK_TEMPORAL};
 	public static final String[] CREATOR_LIST		= {WORK_AGENT};
@@ -113,6 +113,6 @@ public final class TGConstants {
 	
 	public static final String[] TYPE_LIST			= {WORK_GENRE, WORK_TYPE};
 	
-	public static final String[] IDENTIFIER_LIST_FIELDS = {URI, CREATED};
+	public static final String[] IDENTIFIER_LIST_FIELDS = {URI, CREATED, FORMAT};
 	public static final String RANGE_FIELD = CREATED;
 }
diff --git a/oaipmh-core/src/test/java/info/textgrid/middleware/OaiPmhTest.java b/oaipmh-core/src/test/java/info/textgrid/middleware/OaiPmhTest.java
index 33dadfd14707acc3c2b9891108c4c95587af728f..2b377af1a2368e0c980a065f8ad9f56b5a9eecb2 100644
--- a/oaipmh-core/src/test/java/info/textgrid/middleware/OaiPmhTest.java
+++ b/oaipmh-core/src/test/java/info/textgrid/middleware/OaiPmhTest.java
@@ -6,6 +6,7 @@ import java.text.ParseException;
 import info.textgrid.middleware.oaipmh.DeletedRecordType;
 import info.textgrid.middleware.oaipmh.GranularityType;
 import info.textgrid.middleware.oaipmh.OAIPMHType;
+import info.textgrid.namespaces.middleware.tgcrud.common.TextGridMimetypes;
 
 import javax.xml.bind.JAXB;
 import javax.xml.bind.JAXBElement;
@@ -22,7 +23,7 @@ public class OaiPmhTest {
 	DeletedRecordType bla = DeletedRecordType.NO;
 	GranularityType bla2 = GranularityType.YYYY_MM_DD_THH_MM_SS_Z;
 	private RepIdentification   rep = new RepIdentification("TextGrid-Repository", "www.textgridrep.de", bla, "2011-06-11T02:32:40Z", bla2, "2.0", "textgrid-support@gwdg.de");
-	private RecordDeliverer 	record = new RecordDeliverer(oaiEsClient, TGConstants.TGFields, TGConstants.TGWorkFields, true, false);
+	private RecordDeliverer 	record = new RecordDeliverer(oaiEsClient, TGConstants.TGWorkFields, true, false);
 	private RecordListDeliverer recordList = new RecordListDeliverer(oaiEsClient, TGConstants.TGFields, TGConstants.TGWorkFields, true, false);
 	private MetadataFormatListDeliverer metadataFormatList = new MetadataFormatListDeliverer(oaiEsClient);
 	private SetDeliverer				setList = new SetDeliverer(oaiEsClient);
@@ -49,7 +50,7 @@ public class OaiPmhTest {
 	}
 
 	@Test
-	//@Ignore
+	@Ignore
 	public void testDateNow() throws DatatypeConfigurationException {
 		System.out.println("---------------Now Version-----------------");
 		XMLGregorianCalendar nowTest = OAIPMHUtillities
@@ -59,7 +60,7 @@ public class OaiPmhTest {
 	}
 
 	@Test
-	//@Ignore
+	@Ignore
 	public void testDateGregorianType() throws ParseException,
 			DatatypeConfigurationException {
 		String dateformatbefore = "2012-02-06T20:48:39.614+01:00";
@@ -73,7 +74,7 @@ public class OaiPmhTest {
 	}
 
 	@Test
-	//@Ignore
+	@Ignore
 	public void testDateStringType() throws ParseException,
 			DatatypeConfigurationException {
 		String dateformatbefore = "2012-02-06T20:48:39.614+01:00";
@@ -86,7 +87,7 @@ public class OaiPmhTest {
 	}
 
 	@Test
-	//@Ignore
+	@Ignore
 	public void testGetRequestIdentify() throws ParseException {
 
 		System.out.println("Test for the verb \"Identify\" with succesfull response");
@@ -97,7 +98,7 @@ public class OaiPmhTest {
 	}
 
 	@Test
-	//@Ignore
+	@Ignore
 	public void testGetRequestIdentifyVerbError() throws ParseException {
 		JAXBElement<OAIPMHType> t = request.getRequest("Identify", "", "a",
 				"", "", "", "");
@@ -106,7 +107,7 @@ public class OaiPmhTest {
 	}
 
 	@Test
-	//@Ignore
+	@Ignore
 	public void testGetRequestIdentifyArgumentError() throws ParseException {
 		System.out
 				.println("Test for the verb \"Identify\" with error response");
@@ -133,7 +134,7 @@ public class OaiPmhTest {
 		
 		record.setContributor(TGConstants.CONTRIBUTOR_LIST);
 		record.setCoverage(TGConstants.COVERAGE_LIST);
-		record.setCreators(TGConstants.CREATOR_LIST);
+		record.setCreator(TGConstants.CREATOR_LIST);
 		record.setDates(TGConstants.DATE_LIST);
 		record.setDescriptions(TGConstants.DESCRIPTION_LIST);
 		record.setFormats(TGConstants.FORMAT_LIST);
@@ -147,6 +148,13 @@ public class OaiPmhTest {
 		record.setSubjects(TGConstants.SUBJECT_LIST);
 		record.setTitles(TGConstants.TITLE_LIST);
 		record.setTypes(TGConstants.TYPE_LIST);
+		record.setFields(TGConstants.TGFields);
+		record.setFormatField(TGConstants.FORMAT);
+		record.setFormatToFilter(TextGridMimetypes.EDITION);
+		record.setDateOfObjectCreation(TGConstants.CREATED);
+		record.setRelationToFurtherMetadataObject(TGConstants.EDITION_ISEDITIONOF);
+		record.setRepositoryObjectURIPrefix(TGConstants.TG_ITEM_IDENTIFIER_PREFIX);
+		record.setIdentifierPrefix("textgridUri");
 		
 		System.out.println("Test for the verb \"GetRecord\" with succesfull response");
 		JAXBElement<OAIPMHType> p = request.getRequest("GetRecord",
@@ -216,7 +224,12 @@ public class OaiPmhTest {
 		recordList.setSubjects(TGConstants.SUBJECT_LIST);
 		recordList.setTitles(TGConstants.TITLE_LIST);
 		recordList.setTypes(TGConstants.TYPE_LIST);
-		
+		recordList.setFormatField(TGConstants.FORMAT);
+		recordList.setFormatToFilter(TextGridMimetypes.EDITION);
+		recordList.setDateOfObjectCreation(TGConstants.CREATED);
+		recordList.setRelationToFurtherMetadataObject(TGConstants.EDITION_ISEDITIONOF);
+		recordList.setRepositoryObjectURIPrefix(TGConstants.TG_ITEM_IDENTIFIER_PREFIX);
+		recordList.setFieldForRange(TGConstants.CREATED);
 		
 		JAXBElement<OAIPMHType> r = request.getRequest("ListRecords", "",
 				"oai_dc", "", "", "", ""); JAXB.marshal(r,
@@ -231,6 +244,14 @@ public class OaiPmhTest {
 		System.out.println("-----------------------------------\n"); 
 	}
 	
+	@Test
+	@Ignore 
+	public void testListMetadataFormatsWithoutID() throws ParseException{
+		JAXBElement<OAIPMHType> r = request.getRequest("ListMetadataFormats",
+				"", "", "", "", "", ""); JAXB.marshal(r, System.out);
+		System.out.println("-----------------------------------\n"); 
+	}
+	
 	@Test
 	@Ignore
 	public void testListSets() throws ParseException {
@@ -242,11 +263,14 @@ public class OaiPmhTest {
 	}
 	
 	@Test
-	@Ignore 
+	//@Ignore 
 	public void testListIdentifiers() throws ParseException{
 		identifierList.setFieldForRange(TGConstants.RANGE_FIELD);
 		identifierList.setIdentifierListFields(TGConstants.IDENTIFIER_LIST_FIELDS);
-		
+		identifierList.setFormatField(TGConstants.FORMAT);
+		identifierList.setFormatToFilter(TextGridMimetypes.EDITION);
+		identifierList.setDateOfObjectCreation(TGConstants.CREATED);
+		identifierList.setRepositoryObjectURIPrefix("textgridUri");
 		JAXBElement<OAIPMHType> r = request.getRequest("ListIdentifiers", "",
 				"oai_dc", "", "", "", ""); JAXB.marshal(r, System.out);
 				System.out.println("-----------------------------------\n"); 
diff --git a/oaipmh-webapp/pom.xml b/oaipmh-webapp/pom.xml
index ae01b7aa7707bab11baf57d66c9cc11688facbe2..afa67b5956fea326f799e80db582b5b9d64f1b5f 100644
--- a/oaipmh-webapp/pom.xml
+++ b/oaipmh-webapp/pom.xml
@@ -4,12 +4,12 @@
 	<parent>
 		<artifactId>oaipmh</artifactId>
 		<groupId>info.textgrid.middleware</groupId>
-		<version>1.3.10-SNAPSHOT</version>
+		<version>1.3.11-SNAPSHOT</version>
 	</parent>
 	<groupId>info.textgrid.middleware</groupId>
 	<artifactId>oaipmh-webapp</artifactId>
 	<packaging>war</packaging>
-	<version>1.3.10-SNAPSHOT</version>
+	<version>1.3.11-SNAPSHOT</version>
 	<name>TextGrid :: OAI-PMH :: Webapp</name>
 	<url>http://maven.apache.org</url>
 	<profiles>
diff --git a/oaipmh-webapp/src/main/webapp/WEB-INF/beans.xml b/oaipmh-webapp/src/main/webapp/WEB-INF/beans.xml
index be8b69dc50087ddd92528ca3c989202eeffb7e8b..c6e3774e3a269f36ba4616de086f4ea007597ba4 100644
--- a/oaipmh-webapp/src/main/webapp/WEB-INF/beans.xml
+++ b/oaipmh-webapp/src/main/webapp/WEB-INF/beans.xml
@@ -74,7 +74,7 @@ http://www.springframework.org/schema/util/spring-util-3.1.xsd
 	</bean>	
 	
 	<bean id="RecordList" class="info.textgrid.middleware.RecordListDeliverer">
-		<constructor-arg ref="ElasticSearchClient" />
+		<constructor-arg index="0" ref="ElasticSearchClient" />
 		<constructor-arg index="1">
 			<value>${fields}</value>
 		</constructor-arg>
@@ -87,64 +87,87 @@ http://www.springframework.org/schema/util/spring-util-3.1.xsd
 		<constructor-arg index="4">
 			<value>${dariah}</value>
 		</constructor-arg>
-		<property name="contributorList" value="${contributorList}" />
-		<property name="coverageList" value="${coverageList}" />
-		<property name="creatorList" value="${creatorList}" />
-		<property name="datesList" value="${datesList}" />
-		<property name="descriptionsList" value="${descriptionsList}" />
-		<property name="formatList" value="${formatList}" />
-		<property name="identifersList" value="${identifersList}" />
-		<property name="languageList" value="${languageList}" />
-		<property name="publisherList" value="${publisherList}" />
-		<property name="relationList" value="${relationList}" />
-		<property name="relationForWorkList" value="${relationForWorkList}" />
-		<property name="rightList" value="${rightList}" />
-		<property name="sourceList" value="${sourceList}" />
-		<property name="subjectList" value="${subjectList}" />
-		<property name="titleList" value="${titleList}" />
-		<property name="typeList" value="${typeList}" />
+		<property name="formatField" value="${formatField}" />
+		<property name="formatToFilter" value="${formatToFilter}"/>
+		<property name="dateOfObjectCreation" value="${dateOfObjectCreation}"/>
+		<property name="relationToFurtherMetadataObject" value="${relationToFurtherMetadataObject}" />
+		<property name="repositoryObjectURIPrefix" value="${repositoryObjectURIPrefix}"/>
+		<property name="FieldForRange" value="${rangeField}"/>
+		<property name="contributor" value="${contributorList}" />
+		<property name="coverage" value="${coverageList}" />
+		<property name="creators" value="${creatorList}" />
+		<property name="dates" value="${dateList}" />
+		<property name="descriptions" value="${descriptionList}" />
+		<property name="formats" value="${formatList}" />
+		<property name="identifiers" value="${identifierList}" />
+		<property name="languages" value="${languageList}" />
+		<property name="publishers" value="${publisherList}" />
+		<property name="relations" value="${relationList}" />
+		<property name="relationsForWork" value="${relationsForWorkList}" />
+		<property name="rights" value="${rightsList}" />
+		<property name="sources" value="${sourceList}" />
+		<property name="subjects" value="${subjectList}" />
+		<property name="titles" value="${titleList}" />
+		<property name="types" value="${typeList}" />
 	</bean>
 	
 	
 	
 	<bean id="Record" class="info.textgrid.middleware.RecordDeliverer">
-		<constructor-arg ref="ElasticSearchClient" />
+		<constructor-arg index="0" ref="ElasticSearchClient" />
 		<constructor-arg index="1">
-			<value>${fields}</value>
-		</constructor-arg>
-		<constructor-arg index="2">
 			<value>${workFields}</value>
 		</constructor-arg>
-		<constructor-arg index="3">
+		<constructor-arg index="2">
 			<value>${textgrid}</value>
 		</constructor-arg>
-		<constructor-arg index="4">
+		<constructor-arg index="3">
 			<value>${dariah}</value>
 		</constructor-arg>
-		<property name="contributorList" value="${contributorList}" />
-		<property name="coverageList" value="${coverageList}" />
-		<property name="creatorList" value="${creatorList}" />
-		<property name="datesList" value="${datesList}" />
-		<property name="descriptionsList" value="${descriptionsList}" />
-		<property name="formatList" value="${formatList}" />
-		<property name="identifersList" value="${identifersList}" />
-		<property name="languageList" value="${languageList}" />
-		<property name="publisherList" value="${publisherList}" />
-		<property name="relationList" value="${relationList}" />
-		<property name="relationForWorkList" value="${relationForWorkList}" />
-		<property name="rightList" value="${rightList}" />
-		<property name="sourceList" value="${sourceList}" />
-		<property name="subjectList" value="${subjectList}" />
-		<property name="titleList" value="${titleList}" />
-		<property name="typeList" value="${typeList}" />
+		<property name="formatField" value="${formatField}" />
+		<property name="formatToFilter" value="${formatToFilter}"/>
+		<property name="dateOfObjectCreation" value="${dateOfObjectCreation}"/>
+		<property name="relationToFurtherMetadataObject" value="${relationToFurtherMetadataObject}" />
+		<property name="repositoryObjectURIPrefix" value="${repositoryObjectURIPrefix}"/>
+		<property name="identifierPrefix" value="${identifierPrefix}"/>		
+		<property name="fields" value="${fields}" />
+		<property name="contributor" value="${contributorList}" />
+		<property name="coverage" value="${coverageList}" />
+		<property name="creator" value="${creatorList}" />
+		<property name="dates" value="${dateList}" />
+		<property name="descriptions" value="${descriptionList}" />
+		<property name="formats" value="${formatList}" />
+		<property name="identifiers" value="${identifierList}" />
+		<property name="languages" value="${languageList}" />
+		<property name="publishers" value="${publisherList}" />
+		<property name="relations" value="${relationList}" />
+		<property name="relationsForWork" value="${relationsForWorkList}" />
+		<property name="rights" value="${rightsList}" />
+		<property name="sources" value="${sourceList}" />
+		<property name="subjects" value="${subjectList}" />
+		<property name="titles" value="${titleList}" />
+		<property name="types" value="${typeList}" />		
 	</bean>
 	
 	
-	<bean id="ListIdentifier" class="info.textgrid.middleware.ListIdentifierDeliverer">
-		<property name="rangeField" value="${rangeField}"/>
-		<property name="identifierListFields" value="created"></property>		
+	<bean id="ListIdentifier" class="info.textgrid.middleware.IdentifierListDeliverer">
+		<constructor-arg index="0" ref="ElasticSearchClient" />
+		<property name="formatField" value="${formatField}" />
+		<property name="formatToFilter" value="${formatToFilter}"/>
+		<property name="dateOfObjectCreation" value="${dateOfObjectCreation}"/>
+		<property name="repositoryObjectURIPrefix" value="${repositoryObjectURIPrefix}"/>		
+		<property name="identifierListFields" value="${identifierListFields}"></property>
+		<property name="FieldForRange" value="${rangeField}"/>
+		<property name="identifierPrefix" value="${identifierPrefix}"/>	
 	</bean>
 	
+	<bean id="SetDeliverer" class="info.textgrid.middleware.SetDeliverer">
+		<constructor-arg ref="ElasticSearchClient" />
+	</bean>
+	
+	<bean id="MetadataFormatList" class="info.textgrid.middleware.MetadataFormatListDeliverer">
+		<constructor-arg ref="ElasticSearchClient" />
+	</bean>
 	
 	<!-- REST Interface -->
 	<bean id="rest" class="info.textgrid.middleware.Rest" />
@@ -159,8 +182,11 @@ http://www.springframework.org/schema/util/spring-util-3.1.xsd
 	<bean id="oai" class="info.textgrid.middleware.OAIPMHImpl">
 		<constructor-arg ref="ElasticSearchClient" />
 		<constructor-arg ref="RepIdentification"/>
+		<constructor-arg ref="Record"/>
 		<constructor-arg ref="RecordList"/>
-		<constructor-arg ref="record"/>
+		<constructor-arg ref="MetadataFormatList"/>
+		<constructor-arg ref="SetDeliverer"/>
+		<constructor-arg ref="ListIdentifier"/>		
 	</bean>
 	
 
diff --git a/pom.xml b/pom.xml
index f29078f8d74852aefae94a1a120e44d292047415..f77ff666c7beeda1ba61fcca2227c14a16ad0102 100644
--- a/pom.xml
+++ b/pom.xml
@@ -3,7 +3,7 @@
   <modelVersion>4.0.0</modelVersion>
   <groupId>info.textgrid.middleware</groupId>
   <artifactId>oaipmh</artifactId>
-  <version>1.3.10-SNAPSHOT</version>
+  <version>1.3.11-SNAPSHOT</version>
   <packaging>pom</packaging>
   <name>TextGrid :: TG-OAI-PMH :: Parent</name>
   <properties>
@@ -47,6 +47,11 @@
 	  <downloadJavadocs>true</downloadJavadocs>
         </configuration>
       </plugin>
+      <plugin>
+        <groupId>org.eclipse.jetty</groupId>
+        <artifactId>jetty-maven-plugin</artifactId>
+        <version>9.2.2.v20140723</version>
+      </plugin>
     </plugins>
   </build>
   <modules>