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 0c8fa15fa85667d2d690c49bfd7beb55ceb38634..77e012119e403a71fb921a649eefe3b2e937d073 100644
--- a/oaipmh-core/src/main/java/info/textgrid/middleware/DublinCoreFieldLoader.java
+++ b/oaipmh-core/src/main/java/info/textgrid/middleware/DublinCoreFieldLoader.java
@@ -47,13 +47,12 @@ public class DublinCoreFieldLoader {
 		return contributors;
 	}
 
-	public static List<String> setContributor(GetResponse responseWorkValues,
-			String[] values) {
-
-		for (String field : values) {
-			if (responseWorkValues.getField(field) != null) {
-				contributors.add(responseWorkValues.getField(field).getValue()
-						.toString());
+	public static List<String> setContributor(GetResponse responseWorkValues, String[] values) {
+		if(responseWorkValues.isExists()){
+			for (String field : values) {
+				if (responseWorkValues.getField(field) != null) {
+					contributors.add(responseWorkValues.getField(field).getValue().toString());
+				}
 			}
 		}
 
@@ -62,13 +61,12 @@ public class DublinCoreFieldLoader {
 
 	// ----DC-Creator
 
-	public static List<String> setCreator(GetResponse responseWorkValues,
-			String[] values) {
-
-		for (String field : values) {
-			if (responseWorkValues.getField(field) != null) {
-				creators.add(responseWorkValues.getField(field).getValue()
-						.toString());
+	public static List<String> setCreator(GetResponse responseWorkValues, String[] values) {
+		if(responseWorkValues.isExists()){
+			for (String field : values) {
+				if (responseWorkValues.getField(field) != null) {
+					creators.add(responseWorkValues.getField(field).getValue().toString());
+				}
 			}
 		}
 		return creators;
@@ -117,34 +115,30 @@ public class DublinCoreFieldLoader {
 	// ----DC-Date
 
 	public static List<String> setDate(GetResponse responseWorkValues, String[] values) {
-
-		for (String field : values) {
-			try {
-				// FIXME DO SET VALUES VIA CONFIG FILE!
-				System.out.println("fieldname: "+ field);
+      
+		if(responseWorkValues.isExists()){
+			for (String field : values) {
+				try {
+					// FIXME DO SET VALUES VIA CONFIG FILE!
+					System.out.println("fieldname: "+ field);
 				
-				if (responseWorkValues.getField(field) != null) {
-					dates.add(OAIPMHUtillities.convertDateFormat(
-							responseWorkValues.getField(field).getValue()
+					if (responseWorkValues.getField(field) != null) {
+						dates.add(OAIPMHUtillities.convertDateFormat(responseWorkValues.getField(field).getValue()
 									.toString()).toXMLFormat());
-				}
-			} catch (ParseException e) {
-				System.out.println("fieldname: "+ field);
-				// FIXME DO NOT USE INVALID DATE HERE!
-				dates.add(responseWorkValues.getField(field)
-						.getValue().toString());
-
-				log.debug(e);
-			} catch (DatatypeConfigurationException e) {
-				System.out.println("fieldname: "+ field);
-				// FIXME DO NOT USE INVALID DATE HERE!
-				dates.add(responseWorkValues.getField(field)
-
-				.getValue().toString());
+					}
+				} catch (ParseException e) {
+					System.out.println("fieldname: "+ field);
+					// FIXME DO NOT USE INVALID DATE HERE!
+					dates.add(responseWorkValues.getField(field).getValue().toString());
+					log.debug(e);
+				} catch (DatatypeConfigurationException e) {
+					System.out.println("fieldname: "+ field);
+					// FIXME DO NOT USE INVALID DATE HERE!
+					dates.add(responseWorkValues.getField(field).getValue().toString());
 				log.debug(e);
+				}
 			}
 		}
-
 		return dates;
 	}
 
@@ -161,16 +155,14 @@ public class DublinCoreFieldLoader {
 
 	// ----DC-Description
 
-	public static List<String> setDescription(GetResponse responseWorkValues,
-			String[] values) {
-
-		for (String field : values) {
-			if (responseWorkValues.getField(field) != null) {
-				descriptions.add(responseWorkValues.getField(field).getValue()
-						.toString());
+	public static List<String> setDescription(GetResponse responseWorkValues, String[] values) {
+		if(responseWorkValues.isExists()){
+			for (String field : values) {
+				if (responseWorkValues.getField(field) != null) {
+					descriptions.add(responseWorkValues.getField(field).getValue().toString());
+				}
 			}
 		}
-
 		return descriptions;
 	}
 
@@ -202,14 +194,13 @@ public class DublinCoreFieldLoader {
 
 	public static List<String> setFormat(GetResponse responseWorkValues,
 			String[] values) {
-
-		for (String field : values) {
-			if (responseWorkValues.getField(field) != null) {
-				formats.add(responseWorkValues.getField(field).getValue()
-						.toString());
+		if(responseWorkValues.isExists()){
+			for (String field : values) {
+				if (responseWorkValues.getField(field) != null) {
+					formats.add(responseWorkValues.getField(field).getValue().toString());
+				}
 			}
 		}
-
 		return formats;
 	}
 
@@ -229,13 +220,12 @@ public class DublinCoreFieldLoader {
 		return identifiers;
 	}
 
-	public static List<String> setIdentifier(GetResponse responseWorkValues,
-			String[] values) {
-
-		for (String field : values) {
-			if (responseWorkValues.getField(field) != null) {
-				identifiers.add(responseWorkValues.getField(field).getValue()
-						.toString());
+	public static List<String> setIdentifier(GetResponse responseWorkValues, String[] values) {
+		if(responseWorkValues.isExists()){
+			for (String field : values) {
+				if (responseWorkValues.getField(field) != null) {
+					identifiers.add(responseWorkValues.getField(field).getValue().toString());
+				}
 			}
 		}
 
@@ -248,24 +238,22 @@ public class DublinCoreFieldLoader {
 
 		for (String field : values) {
 			if (hit.getFields().get(field) != null) {
-				languages.add(hit.getFields().get(field).values().get(0)
-						.toString());
+				languages.add(hit.getFields().get(field).values().get(0).toString());
 			}
 		}
 
 		return languages;
 	}
 
-	public static List<String> setLanguage(GetResponse responseWorkValues,
-			String[] values) {
-
-		for (String field : values) {
-			if (responseWorkValues.getField(field) != null) {
-				languages.add(responseWorkValues.getField(field).getValue()
-						.toString());
+	public static List<String> setLanguage(GetResponse responseWorkValues,String[] values) {
+		if(responseWorkValues.isExists()){
+			for (String field : values) {
+				if (responseWorkValues.getField(field) != null) {
+					languages.add(responseWorkValues.getField(field).getValue().toString());
+				}
 			}
 		}
-
+		
 		return languages;
 	}
 
@@ -275,24 +263,22 @@ public class DublinCoreFieldLoader {
 
 		for (String field : values) {
 			if (hit.getFields().get(field) != null) {
-				publishers.add(hit.getFields().get(field).values().get(0)
-						.toString());
+				publishers.add(hit.getFields().get(field).values().get(0).toString());
 			}
 		}
 
 		return publishers;
 	}
 
-	public static List<String> setPublisher(GetResponse responseWorkValues,
-			String[] values) {
-
-		for (String field : values) {
-			if (responseWorkValues.getField(field) != null) {
-				publishers.add(responseWorkValues.getField(field).getValue()
-						.toString());
+	public static List<String> setPublisher(GetResponse responseWorkValues,	String[] values) {
+		if(responseWorkValues.isExists()){
+			for (String field : values) {
+				if (responseWorkValues.getField(field) != null) {
+					publishers.add(responseWorkValues.getField(field).getValue().toString());
+				}
 			}
 		}
-
+		
 		return publishers;
 	}
 
@@ -302,10 +288,8 @@ public class DublinCoreFieldLoader {
 
 		for (String field : values) {
 			if (hit.getFields().get(field) != null) {
-				for (int i = 0; i < hit.getFields().get(field).getValues()
-						.size(); i++) {
-					relations.add(hit.getFields().get(field).values().get(i)
-							.toString());
+				for (int i = 0; i < hit.getFields().get(field).getValues().size(); i++) {
+					relations.add(hit.getFields().get(field).values().get(i).toString());
 				}
 			}
 		}
@@ -313,29 +297,27 @@ public class DublinCoreFieldLoader {
 		return relations;
 	}
 
-	public static List<String> setRelation(GetResponse responseWorkValues,
-			String[] values) {
-
-		for (String field : values) {
-			if (responseWorkValues.getField(field) != null) {
-				relations.add(responseWorkValues.getField(field).getValue()
-						.toString());
+	public static List<String> setRelation(GetResponse responseWorkValues, String[] values) {
+		if(responseWorkValues.isExists()){
+			for (String field : values) {
+				if (responseWorkValues.getField(field) != null) {
+					relations.add(responseWorkValues.getField(field).getValue().toString());
+				}
 			}
 		}
-
+		
 		return relations;
 	}
 
-	public static List<String> setRelationForWork(
-			GetResponse responseWorkValues, String[] values) {
-
-		for (String field : values) {
-			if (responseWorkValues.getField(field) != null) {
-				relations.add(responseWorkValues.getField(field).getValue()
-						.toString());
+	public static List<String> setRelationForWork(GetResponse responseWorkValues, String[] values) {
+		if(responseWorkValues.isExists()){
+			for (String field : values) {
+				if (responseWorkValues.getField(field) != null) {
+					relations.add(responseWorkValues.getField(field).getValue().toString());
+				}
 			}
 		}
-
+		
 		return relations;
 	}
 
@@ -345,24 +327,22 @@ public class DublinCoreFieldLoader {
 
 		for (String field : values) {
 			if (hit.getFields().get(field) != null) {
-				rights.add(hit.getFields().get(field).values().get(0)
-						.toString());
+				rights.add(hit.getFields().get(field).values().get(0).toString());
 			}
 		}
 
 		return rights;
 	}
 
-	public static List<String> setRights(GetResponse responseWorkValues,
-			String[] values) {
-
-		for (String field : values) {
-			if (responseWorkValues.getField(field) != null) {
-				rights.add(responseWorkValues.getField(field).getValue()
-						.toString());
+	public static List<String> setRights(GetResponse responseWorkValues, String[] values) {
+		if(responseWorkValues.isExists()){
+			for (String field : values) {
+				if (responseWorkValues.getField(field) != null) {
+					rights.add(responseWorkValues.getField(field).getValue().toString());
+				}
 			}
 		}
-
+		
 		return rights;
 	}
 
@@ -372,36 +352,32 @@ public class DublinCoreFieldLoader {
 
 		for (String field : values) {
 			if (hit.getFields().get(field) != null) {
-				sources.add(hit.getFields().get(field).values().get(0)
-						.toString());
+				sources.add(hit.getFields().get(field).values().get(0).toString());
 			}
 		}
 
 		return sources;
 	}
 
-	public static List<String> setSources(GetResponse responseWorkValues,
-			String[] values) {
-
-		for (String field : values) {
-			if (responseWorkValues.getField(field) != null) {
-				sources.add(responseWorkValues.getField(field).getValue()
-						.toString());
+	public static List<String> setSources(GetResponse responseWorkValues, String[] values) {
+		if(responseWorkValues.isExists()){
+			for (String field : values) {
+				if (responseWorkValues.getField(field) != null) {
+					sources.add(responseWorkValues.getField(field).getValue().toString());
+				}
 			}
 		}
-
+		
 		return sources;
 	}
 
 	// ----DC-Subject
 
-	public static List<String> setSubject(GetResponse responseWorkValues,
-			String[] values) {
-
+	public static List<String> setSubject(GetResponse responseWorkValues, String[] values) {
+		
 		for (String field : values) {
 			if (responseWorkValues.getField(field) != null) {
-				subjects.add(responseWorkValues.getField(field).getValue()
-						.toString());
+				subjects.add(responseWorkValues.getField(field).getValue().toString());
 			}
 		}
 
@@ -409,11 +385,10 @@ public class DublinCoreFieldLoader {
 	}
 
 	public static List<String> setSubject(SearchHit hit, String[] values) {
-
+		
 		for (String field : values) {
 			if (hit.getFields().get(field) != null) {
-				subjects.add(hit.getFields().get(field).values().get(0)
-						.toString());
+				subjects.add(hit.getFields().get(field).values().get(0).toString());
 			}
 		}
 
@@ -426,10 +401,8 @@ public class DublinCoreFieldLoader {
 
 		for (String field : values) {
 			if (hit.getFields().get(field) != null) {
-				for (int i = 0; i < hit.getFields().get(field).getValues()
-						.size(); i++) {
-					titles.add(hit.getFields().get(field).values().get(i)
-							.toString());
+				for (int i = 0; i < hit.getFields().get(field).getValues().size(); i++) {
+					titles.add(hit.getFields().get(field).values().get(i).toString());
 				}
 			}
 		}
@@ -439,33 +412,32 @@ public class DublinCoreFieldLoader {
 
 	public static List<String> setTitle(GetResponse responseWorkValues,
 			String[] values) {
-
-		for (String field : values) {
-			if (responseWorkValues.getField(field) != null) {
-				for (int i = 0; i < responseWorkValues.getField(field)
-						.getValues().size(); i++) {
-					titles.add(responseWorkValues.getField(field).getValue()
-							.toString());
+		if(responseWorkValues.isExists()){
+			for (String field : values) {
+				if (responseWorkValues.getField(field) != null) {
+					for (int i = 0; i < responseWorkValues.getField(field).getValues().size(); i++) {
+						titles.add(responseWorkValues.getField(field).getValue().toString());
+					}
 				}
 			}
 		}
-
+		
 		return titles;
 	}
 
 	// ----DC-Type
 
-	public static List<String> setType(GetResponse responseWorkValues,
-			String[] values) {
-
-		if (values != null) {
-			for (String field : values) {
-				if (responseWorkValues.getField(field) != null) {
-					types.add(responseWorkValues.getField(field).getValue()
-							.toString());
+	public static List<String> setType(GetResponse responseWorkValues, String[] values) {
+		if(responseWorkValues.isExists()){
+			if (values != null) {
+				for (String field : values) {
+					if (responseWorkValues.getField(field) != null) {
+						types.add(responseWorkValues.getField(field).getValue().toString());
+					}
 				}
 			}
 		}
+		
 		return types;
 	}