Index: /SPARQLBuilderWWW/src/java/org/biohackathon/SPARQLBuilder/endpointMetadata/MetadataFile.java
===================================================================
--- /SPARQLBuilderWWW/src/java/org/biohackathon/SPARQLBuilder/endpointMetadata/MetadataFile.java (revision 181)
+++ /SPARQLBuilderWWW/src/java/org/biohackathon/SPARQLBuilder/endpointMetadata/MetadataFile.java (revision 186)
@@ -252,6 +252,13 @@
 
 	public static Resource[] getClassRelations(Resource propertyPartition) throws Exception{
-		//TODO
-		return null;
+		Model model = propertyPartition.getModel();
+		Property sbm_classRelation = model.getProperty(URICollection.PROPERTY_SB_CLASS_RELATION);
+		NodeIterator nit = model.listObjectsOfProperty(propertyPartition, sbm_classRelation);
+		ArrayList<Resource> classRelations = new ArrayList<Resource>();
+		if( nit.hasNext()){
+			Resource classRelation = nit.next().asResource();
+			classRelations.add(classRelation);
+		}
+		return classRelations.toArray(new Resource[0]);
 	}
 	
Index: /SPARQLBuilderWWW/src/java/org/biohackathon/SPARQLBuilder/endpointMetadata/MetadataManager.java
===================================================================
--- /SPARQLBuilderWWW/src/java/org/biohackathon/SPARQLBuilder/endpointMetadata/MetadataManager.java (revision 181)
+++ /SPARQLBuilderWWW/src/java/org/biohackathon/SPARQLBuilder/endpointMetadata/MetadataManager.java (revision 186)
@@ -63,5 +63,13 @@
 				String uri = metadataFile.getEndpointURI();
 				if( uri != null ){
-					metadataTable.put(uri, metadataFile);
+					if( metadataTable.containsKey(uri)){
+						MetadataFile tempMF = metadataTable.get(uri);
+						if(tempMF.getEndDateTime().before(metadataFile.getEndDateTime()) ){
+							metadataTable.remove(uri);
+							metadataTable.put(uri,  metadataFile);
+						}
+					}else{
+						metadataTable.put(uri, metadataFile);
+					}
 				}
 			}catch(Exception ex){
@@ -72,6 +80,3 @@
 		}
 	}
-
-	
-	
 }
