diff --git a/.gitignore b/.gitignore
index 68f78b2..9157848 100644
--- a/.gitignore
+++ b/.gitignore
@@ -40,7 +40,7 @@
 /dereko-kq-formatter.sh
 /shutdownToken
 /adminToken
-/free-resources.json
+/resources.json
 /cache_store*
 /pipes
 /test-pipes
diff --git a/Changes b/Changes
index ae70ac3..56f2875 100644
--- a/Changes
+++ b/Changes
@@ -1,3 +1,7 @@
+# version 0.78
+
+- Renamed free resource to resource.
+
 # version 0.77
 
 - Update statistics in VC info and list web-services to use VC cache (referTo) 
diff --git a/src/main/java/de/ids_mannheim/korap/annotation/FreeResourceParser.java b/src/main/java/de/ids_mannheim/korap/annotation/ResourceParser.java
similarity index 87%
rename from src/main/java/de/ids_mannheim/korap/annotation/FreeResourceParser.java
rename to src/main/java/de/ids_mannheim/korap/annotation/ResourceParser.java
index 17b4546..790ebfb 100644
--- a/src/main/java/de/ids_mannheim/korap/annotation/FreeResourceParser.java
+++ b/src/main/java/de/ids_mannheim/korap/annotation/ResourceParser.java
@@ -22,33 +22,33 @@
 import de.ids_mannheim.korap.exceptions.KustvaktException;
 
 /**
- * Parser for extracting data from free-resources.json containing
- * listing free (non-licensed) corpora.
+ * Parser for extracting data from resources.json listing virtual corpora 
+ * available through KorapSRU.
  * 
  * @author margaretha
  *
  */
 @Component
-public class FreeResourceParser {
-    private Logger log = LogManager.getLogger(FreeResourceParser.class);
+public class ResourceParser {
+    private Logger log = LogManager.getLogger(ResourceParser.class);
 
     @Autowired
     private ResourceDao resourceDao;
     @Autowired
     private AnnotationDao annotationDao;
 
-    public static String FREE_RESOURCE_FILE = "free-resources.json";
+    public static String RESOURCE_FILE = "resources.json";
     public static ObjectMapper mapper = new ObjectMapper();
 
     public void run () throws IOException, KustvaktException {
         InputStream is = null;
-        File f = new File("data/"+FREE_RESOURCE_FILE);
+        File f = new File("data/"+RESOURCE_FILE);
         if (f.exists()) {
             is = new FileInputStream(f);
         }
         else {
-            is = FreeResourceParser.class.getClassLoader()
-                    .getResourceAsStream("json/"+FREE_RESOURCE_FILE);
+            is = ResourceParser.class.getClassLoader()
+                    .getResourceAsStream("json/"+RESOURCE_FILE);
         }
 
         JsonNode node = mapper.readTree(is);
diff --git a/src/main/java/de/ids_mannheim/korap/init/Initializator.java b/src/main/java/de/ids_mannheim/korap/init/Initializator.java
index b633e8e..4965e76 100644
--- a/src/main/java/de/ids_mannheim/korap/init/Initializator.java
+++ b/src/main/java/de/ids_mannheim/korap/init/Initializator.java
@@ -5,7 +5,7 @@
 
 import org.springframework.beans.factory.annotation.Autowired;
 
-import de.ids_mannheim.korap.annotation.FreeResourceParser;
+import de.ids_mannheim.korap.annotation.ResourceParser;
 import de.ids_mannheim.korap.cache.VirtualCorpusCache;
 import de.ids_mannheim.korap.config.FullConfiguration;
 import de.ids_mannheim.korap.config.KustvaktConfiguration;
@@ -29,7 +29,7 @@
     @Autowired
     private NamedVCLoader vcLoader;
     @Autowired
-    private FreeResourceParser resourceParser;
+    private ResourceParser resourceParser;
     @Autowired
     private FullConfiguration config;
     @Autowired
diff --git a/src/main/resources/json/free-resources.json b/src/main/resources/json/resources.json
similarity index 100%
rename from src/main/resources/json/free-resources.json
rename to src/main/resources/json/resources.json
