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 c29c57dc4cc30f83129f2a99268c35db3e0de8cd..3d4686bec20eef592c1ec262e8153eefb9af79b5 100644
--- a/oaipmh-core/src/main/java/info/textgrid/middleware/OAIPMHImpl.java
+++ b/oaipmh-core/src/main/java/info/textgrid/middleware/OAIPMHImpl.java
@@ -144,8 +144,7 @@ public class OAIPMHImpl implements OAIPMHProducer {
       String set, String from, String until, String resumptionToken) {
 
     String result = "";
-	System.out.println("CONSTRUCTOR FROM: " + from);
-    System.out.println("CONSTRUCTOR UNTIL: " + until);
+    
     try {
       result = getStringFromJAXBOAIElement(verb,
           handleRequest(
diff --git a/oaipmh-core/src/main/java/info/textgrid/middleware/OpenAireRecord.java b/oaipmh-core/src/main/java/info/textgrid/middleware/OpenAireRecord.java
index ff5a34733a5da1079f45e9ef8ed9a3c3b494e500..e01921d9b7cf956023ab2cd4c928356c00367ff4 100644
--- a/oaipmh-core/src/main/java/info/textgrid/middleware/OpenAireRecord.java
+++ b/oaipmh-core/src/main/java/info/textgrid/middleware/OpenAireRecord.java
@@ -55,7 +55,7 @@ import info.textgrid.middleware.oaipmh.Resource.Subjects.Subject;
 import info.textgrid.middleware.oaipmh.Resource.Titles;
 import info.textgrid.middleware.oaipmh.Resource.Titles.Title;
 import info.textgrid.middleware.oaipmh.TitleType;
-import info.textgrid.namespaces.middleware.tgcrud.common.TextGridMimetypes;
+
 
 //import info.textgrid.middleware.oaipmh.ResourceType;
 
@@ -222,10 +222,14 @@ public class OpenAireRecord extends RecordDelivererAbstract {
         resource.setRelatedIdentifiers(this.addRelatedIdentifiers());        
         resource.setIdentifier(this.addIdentifier());
         resource.setCreators(this.addCreators());
-        resource.setGeoLocations(this.addGeoLocation());
+        this.addGeoLocation();
         resource.setResourceType(this.addResourceType());
         resource.setVersion(this.addVersion());
-        //resource.setSubjects(this.addSubjects()); //TODO what if subjects == null?
+        
+        if(addSubjects().getSubject().get(0).getValue()!=null) {        	
+        	resource.setSubjects(this.addSubjects()); //TODO what if subjects == null?	
+        }
+        
         resource.setSizes(this.addSize());
         
 
@@ -275,15 +279,17 @@ public class OpenAireRecord extends RecordDelivererAbstract {
     	return resourceType;
     }
     
-    private GeoLocations addGeoLocation() {
+    private void addGeoLocation() {
 		GeoLocations geoLocations = new GeoLocations();
 		for(String geoLocationField : geoLocationFields) {
 			GeoLocation geoLocation = new GeoLocation();			
 			geoLocation.setGeoLocationPlace(OAIPMHUtilities.fieldLoader(jsonObj, geoLocationField + ".value"));
 			geoLocations.getGeoLocation().add(geoLocation);
 		}
-		
-		return geoLocations;
+		if(geoLocations.getGeoLocation().get(0).getGeoLocationPlace()!=null) {
+			resource.setGeoLocations(geoLocations);
+		}
+		//return geoLocations;
 	}
 
 	private RelatedIdentifiers addRelatedIdentifiers() {
@@ -334,9 +340,12 @@ public class OpenAireRecord extends RecordDelivererAbstract {
             rights.setValue(OAIPMHUtilities.fieldLoader(jsonObj, rightsField + ".value"));
             rightsList.getRights().add(rights);
         }
-        Rights openAccesRight = new Rights();
-        openAccesRight.setRightsURI("info:eu-repo/semantics/openAccess");
-        rightsList.getRights().add(openAccesRight);
+        if(rightsList.getRights().get(0).getValue()!=null) {
+            Rights openAccesRight = new Rights();
+            openAccesRight.setRightsURI("info:eu-repo/semantics/openAccess");
+            rightsList.getRights().add(openAccesRight);
+        }
+
         return rightsList;
     }
     
@@ -381,11 +390,17 @@ public class OpenAireRecord extends RecordDelivererAbstract {
             	info.textgrid.middleware.oaipmh.Resource.Contributors.Contributor.NameIdentifier name = new info.textgrid.middleware.oaipmh.Resource.Contributors.Contributor.NameIdentifier();
             	name.setNameIdentifierScheme("textgrid");
             	name.setValue(OAIPMHUtilities.fieldLoader(jsonObj, contributorField + ".id"));
+            	name.setSchemeURI("http://www.textgridlab.org/schema/textgrid-metadata_2010.xsd");
             	contributorInOpenAireRecord.setNameIdentifier(name);
             	
             }else {
             	contributorInOpenAireRecord.setContributorName(OAIPMHUtilities.fieldLoader(jsonObj, contributorField));
                 contributorInOpenAireRecord.setContributorType(ContributorType.DATA_MANAGER);
+                /*info.textgrid.middleware.oaipmh.Resource.Contributors.Contributor.NameIdentifier name = new info.textgrid.middleware.oaipmh.Resource.Contributors.Contributor.NameIdentifier();
+                name.setNameIdentifierScheme("textgrid");
+                name.setValue("");
+                name.setSchemeURI("http://www.textgridlab.org/schema/textgrid-metadata_2010.xsd");
+                contributorInOpenAireRecord.setNameIdentifier(name);*/
             }            
             contributors.getContributor().add(contributorInOpenAireRecord);
         }
@@ -457,11 +472,12 @@ public class OpenAireRecord extends RecordDelivererAbstract {
             /*
              * TODO Check if the scheme URI is correct
              */
-            nameIdentifier.setSchemeURI("https://de.dariah.eu/pnd-service");
+            nameIdentifier.setSchemeURI("https://ref.de.dariah.eu/pndsearch/pndquery.xql?id=");
         }else {
         	nameIdentifier.setValue(creatorID);
         }
         creator.setNameIdentifier(nameIdentifier);
+        nameIdentifier.setSchemeURI("https://ref.de.dariah.eu/pndsearch/pndquery.xql?id=");
         creators.getCreator().add(creator);
         
         return creators;