diff --git a/lite/Changes b/lite/Changes
index 6355c0f..c71a518 100644
--- a/lite/Changes
+++ b/lite/Changes
@@ -1,8 +1,14 @@
+version 0.60
+08/03/2018	
+    - updated field type:date in the metadata test (margaretha)
+    - removed loading application context via BeanFactory (margaretha)
+
 version 0.59.9 
 01/02/2018
 	- renamed light to lite (margaretha)
 	- added Changes file (margaretha)
 	- updated library versions and java environment (margaretha)
+	- added metadata test (diewald)
 	
 version 0.59.8 
 17/01/2018 
diff --git a/lite/pom.xml b/lite/pom.xml
index b3435ec..9cc85a1 100644
--- a/lite/pom.xml
+++ b/lite/pom.xml
@@ -3,7 +3,7 @@
 	<modelVersion>4.0.0</modelVersion>
 	<groupId>de.ids_mannheim.korap</groupId>
 	<artifactId>Kustvakt-lite</artifactId>
-	<version>0.59.9</version>
+	<version>0.60</version>
 	<properties>
 		<java.version>1.8</java.version>
 		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
diff --git a/lite/src/main/java/de/ids_mannheim/korap/server/KustvaktLiteServer.java b/lite/src/main/java/de/ids_mannheim/korap/server/KustvaktLiteServer.java
index 96061ac..2e3045a 100644
--- a/lite/src/main/java/de/ids_mannheim/korap/server/KustvaktLiteServer.java
+++ b/lite/src/main/java/de/ids_mannheim/korap/server/KustvaktLiteServer.java
@@ -1,6 +1,5 @@
 package de.ids_mannheim.korap.server;
 
-import de.ids_mannheim.korap.config.BeansFactory;
 import de.ids_mannheim.korap.web.KustvaktBaseServer;
 
 public class KustvaktLiteServer extends KustvaktBaseServer {
@@ -10,14 +9,9 @@
         KustvaktLiteServer server = new KustvaktLiteServer();
         kargs = server.readAttributes(args);
 
-		if (kargs == null)
-			System.exit(0);
+        if (kargs == null) System.exit(0);
 
-        if (kargs.getConfig() == null) {
-            kargs.setConfig("lite-config.xml");
-        }
-        
-        BeansFactory.loadClasspathContext(kargs.getConfig());
+        kargs.setSpringConfig("lite-config.xml");
         kargs.setRootPackages(
                 new String[] { "de.ids_mannheim.korap.web.service.lite" });
         rootPackages = "de.ids_mannheim.korap.web.service.lite";
diff --git a/lite/src/test/java/de/ids_mannheim/korap/web/service/LiteServiceTest.java b/lite/src/test/java/de/ids_mannheim/korap/web/service/LiteServiceTest.java
index 1d1c41b..79b1786 100644
--- a/lite/src/test/java/de/ids_mannheim/korap/web/service/LiteServiceTest.java
+++ b/lite/src/test/java/de/ids_mannheim/korap/web/service/LiteServiceTest.java
@@ -28,11 +28,13 @@
 /**
  * Created by hanl on 29.04.16.
  * 
- * @author margaretha
- * @date 17/01/2017
+ * @author margaretha, diewald
+ * @date 08/03/2018
  * 
  * Recent changes:
  * - removed test configuration using FastJerseyLightTest
+ * - added metadata test
+ * - updated field type:date 
  */
 public class LiteServiceTest extends JerseyTest{
 
@@ -271,9 +273,9 @@
                 response.getStatus());
         String resp = response.getEntity(String.class);
         JsonNode node = JsonUtils.readTree(resp);
-		System.err.println(node.toString());
+//		System.err.println(node.toString());
 
-		Iterator fieldIter = node.at("/document/fields").elements();
+		Iterator<JsonNode> fieldIter = node.at("/document/fields").elements();
 
 		int checkC = 0;
 		while (fieldIter.hasNext()) {
@@ -308,8 +310,8 @@
 				checkC++;
 				break;
 			case "pubDate":
-				assertEquals("type:number", field.at("/type").asText());
-				assertEquals(19820000, field.at("/value").asInt());
+				assertEquals("type:date", field.at("/type").asText());
+				assertEquals(1982, field.at("/value").asInt());
 				checkC++;
 				break;
 			};		
