diff --git a/entity/Document_entity/Document_entity.aod b/entity/Document_entity/Document_entity.aod
index 51187c3cef3e5ebe5cfe1e2633f8608e59addced..f943b39d25d27c99ed1b335073c52672e9c4e267 100644
--- a/entity/Document_entity/Document_entity.aod
+++ b/entity/Document_entity/Document_entity.aod
@@ -48,6 +48,7 @@
       <title>Vorschau</title>
       <fieldName>PREVIEW</fieldName>
       <contentType>IMAGE</contentType>
+      <state>READONLY</state>
     </entityField>
     <entityIncomingField>
       <name>OrgDocument_dfi</name>
diff --git a/entity/Document_entity/contentProcess.js b/entity/Document_entity/contentProcess.js
index eba3027b5c0851ade172f9cd7bd11e1b39ad5705..1b32f4aed322a761b29e9933b1d0b67dad4da8f5 100644
--- a/entity/Document_entity/contentProcess.js
+++ b/entity/Document_entity/contentProcess.js
@@ -2,25 +2,26 @@ import("system.vars");
 import("system.result");
 import("system.db");
 
+// Check if assignment parameters are present
 if(vars.exists("$param.AssignmentTable_param") &&
     vars.exists("$param.AssignmentName_param") &&
-    vars.exists("$param.AssignmentRowId_param"))
-{
+    vars.exists("$param.AssignmentRowId_param")) {
     var assignmentTable = vars.get("$param.AssignmentTable_param");
     var assignmentName = vars.get("$param.AssignmentName_param");
     var assignmentRowId = vars.get("$param.AssignmentRowId_param");
     var alias = db.getCurrentAlias();
     var documents = [];
     
-    // Check for Selection
+    // Check if multiple Documents are selected
     if(vars.exists("$local.idvalues") && vars.get("$local.idvalues") != '')
         metadata = db.getBinaryMetadataForIds(vars.get("$local.idvalues"), true, alias)
     else
         metadata = db.getBinaryMetadata(assignmentTable, assignmentName, assignmentRowId, false, alias);    
 
-    for( var i = 0; i < metadata.length; i++)
-    {
-        documents.push( [metadata[i].id, metadata[i].filename, metadata[i].size, metadata[i].edit, metadata[i].preview, metadata[i].mimetype]);
+    // Iterate through found binaray data and populate result array    
+    for( var i = 0; i < metadata.length; i++) {
+        documents.push( [metadata[i].id, metadata[i].filename, metadata[i].size, 
+            metadata[i].edit, metadata[i].preview, metadata[i].mimetype]);
     }
 
     result.object(documents);
diff --git a/preferences/_____PREFERENCES_PROJECT/_____PREFERENCES_PROJECT.aod b/preferences/_____PREFERENCES_PROJECT/_____PREFERENCES_PROJECT.aod
index 1ea4864f5a73c766384a342cda26de47674bc33e..473ef689d837b86aee98b7cd8c0d4c1ef1f4c727 100644
--- a/preferences/_____PREFERENCES_PROJECT/_____PREFERENCES_PROJECT.aod
+++ b/preferences/_____PREFERENCES_PROJECT/_____PREFERENCES_PROJECT.aod
@@ -2,7 +2,7 @@
 <preferences xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="3.0.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/preferences/3.0.1">
   <name>_____PREFERENCES_PROJECT</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
-  <projectName>xRM-Basic-5-1</projectName>
+  <projectName>xRM-Basic5</projectName>
   <jditoMaxContentSize v="57671680" />
   <calendarCategoriesEvent>
     <entry>
diff --git a/process/Document_lib/process.js b/process/Document_lib/process.js
index 0e53a27da485dc17fa02d8b82e293f0d9ca7349c..4b811e6a60aad40a4d1975ee6df7c17a93e60f35 100644
--- a/process/Document_lib/process.js
+++ b/process/Document_lib/process.js
@@ -3,29 +3,39 @@ import("system.db");
 import("system.vars");
 import("system.neon");
 
+/**
+ * Provides static methods for managing documents.
+ * Do not create an instance of this
+ * 
+ * @static
+ * @class
+ */
 function DocumentUtil(){    
 }
 
-DocumentUtil.downloadSelectedDocuments = function(){
+/**
+ * Utility function to download all selected or open documents.
+ * Selected documents will be checked with $local.uids.
+ * Open documents will be checked with $field.id.
+ * Documents will be downloaded with neon.doanload
+ */
+DocumentUtil.downloadSelectedDocuments = function() {
     var alias = db.getCurrentAlias();
     
-    // Multiple Files (=not oppened)
-    if(vars.exists("$local.uids"))
-    {
+    // Download selected files (=not oppened)
+    if(vars.exists("$local.uids")) {
         var rows = JSON.parse(vars.get("$local.rows"));
         var uids = JSON.parse(vars.get("$local.uids"));   
         var binaryContents = db.getBinaryContents(uids, alias);     
 
-        for(var i = 0; i < binaryContents.length; i++)
-        {   
+        for(var i = 0; i < binaryContents.length; i++) {   
             var base64data = binaryContents[i];
             var filename = rows[i]["NAME"];
             neon.download(base64data, filename);        
         }
     }
-    // Single File (=already opened)
-    else if(vars.exists("$field.ID"))
-    {
+    // Download open file
+    else if(vars.exists("$field.ID")) {
         var id = vars.get("$field.ID");
         var name = vars.get("$field.NAME");
         var binaryContent = db.getBinaryContent(id, alias); 
@@ -33,9 +43,11 @@ DocumentUtil.downloadSelectedDocuments = function(){
     }
 }
 
-DocumentUtil.deleteCurrentDocument = function(){
-    if(vars.exists("$local.uid"))
-    {
+/**
+ * Utility function to delete the current/opened Document.
+ */
+DocumentUtil.deleteCurrentDocument = function() {
+    if(vars.exists("$local.uid")) {
         var uid = vars.get("$local.uid");   
         var alias = db.getCurrentAlias();
         db.deleteBinary(uid, alias);