diff --git a/application/_____SYSTEM_APPLICATION_NEON/_____SYSTEM_APPLICATION_NEON.aod b/application/_____SYSTEM_APPLICATION_NEON/_____SYSTEM_APPLICATION_NEON.aod
index 7d24b524c3c2ee7e77fdc2a840236238bf8887c1..a6d7ef279293bbd90ea240b4fc5358f59e057f8a 100644
--- a/application/_____SYSTEM_APPLICATION_NEON/_____SYSTEM_APPLICATION_NEON.aod
+++ b/application/_____SYSTEM_APPLICATION_NEON/_____SYSTEM_APPLICATION_NEON.aod
@@ -30,6 +30,7 @@
       <icon>VAADIN:CONTROLLER</icon>
       <node name="Group3" kind="123" title="">
         <node name="Attribute_context" kind="10077" />
+        <node name="Keyword_context" kind="10077" />
         <node name="INTERNAL_ADMINISTRATOR" kind="159" />
       </node>
     </node>
diff --git a/entity/Keyword_entity/Keyword_entity.aod b/entity/Keyword_entity/Keyword_entity.aod
index 54279835d5f24db04386921eb6504258a643a5e1..4d093b1cd29c03f61d62e3edfaf16ad8e3bd265b 100644
--- a/entity/Keyword_entity/Keyword_entity.aod
+++ b/entity/Keyword_entity/Keyword_entity.aod
@@ -4,7 +4,9 @@
   <title>Keyword</title>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <documentation>%aditoprj%/entity/Keyword_entity/documentation.adoc</documentation>
+  <onValidation>%aditoprj%/entity/Keyword_entity/onValidation.js</onValidation>
   <iconId>VAADIN:KEY</iconId>
+  <iconIdProcess>%aditoprj%/entity/Keyword_entity/iconIdProcess.js</iconIdProcess>
   <titleProcess>%aditoprj%/entity/Keyword_entity/titleProcess.js</titleProcess>
   <recordContainer>db</recordContainer>
   <entityFields>
@@ -15,7 +17,10 @@
     </entityProvider>
     <entityField>
       <name>CONTAINER</name>
+      <documentation>%aditoprj%/entity/Keyword_entity/entityfields/container/documentation.adoc</documentation>
       <title>Container</title>
+      <mandatory v="true" />
+      <possibleItemsProcess>%aditoprj%/entity/Keyword_entity/entityfields/container/possibleItemsProcess.js</possibleItemsProcess>
       <groupable v="true" />
     </entityField>
     <entityField>
@@ -41,26 +46,34 @@
     <entityField>
       <name>KEYID</name>
       <title>Key</title>
+      <state>READONLY</state>
+      <valueProcess>%aditoprj%/entity/Keyword_entity/entityfields/keyid/valueProcess.js</valueProcess>
     </entityField>
     <entityField>
       <name>TITLE</name>
       <title>Title (original language)</title>
+      <mandatory v="true" />
     </entityField>
     <entityField>
       <name>SORTING</name>
+      <documentation>%aditoprj%/entity/Keyword_entity/entityfields/sorting/documentation.adoc</documentation>
       <title>Sorting</title>
+      <state>READONLY</state>
     </entityField>
     <entityField>
       <name>ISACTIVE</name>
       <title>Active</title>
       <contentType>BOOLEAN</contentType>
       <possibleItemsProcess>%aditoprj%/entity/Keyword_entity/entityfields/isactive/possibleItemsProcess.js</possibleItemsProcess>
+      <valueProcess>%aditoprj%/entity/Keyword_entity/entityfields/isactive/valueProcess.js</valueProcess>
     </entityField>
     <entityField>
       <name>ISESSENTIAL</name>
+      <documentation>%aditoprj%/entity/Keyword_entity/entityfields/isessential/documentation.adoc</documentation>
       <title>Essential</title>
       <contentType>BOOLEAN</contentType>
       <possibleItemsProcess>%aditoprj%/entity/Keyword_entity/entityfields/isessential/possibleItemsProcess.js</possibleItemsProcess>
+      <state>READONLY</state>
     </entityField>
     <entityParameter>
       <name>containerName_param</name>
@@ -86,17 +99,33 @@
           <isConsumer v="false" />
         </entityDependency>
       </dependencies>
+      <children>
+        <entityParameter>
+          <name>onlyActives</name>
+          <code>%aditoprj%/entity/Keyword_entity/entityfields/generic_dfi/children/onlyactives/code.js</code>
+          <expose v="true" />
+        </entityParameter>
+      </children>
     </entityProvider>
     <entityField>
       <name>TITLE_TRANSLATED</name>
       <valueProcess>%aditoprj%/entity/Keyword_entity/entityfields/title_translated/valueProcess.js</valueProcess>
     </entityField>
+    <entityParameter>
+      <name>onlyActives</name>
+      <code>%aditoprj%/entity/Keyword_entity/entityfields/onlyactives/code.js</code>
+      <expose v="true" />
+      <triggerRecalculation v="true" />
+      <description>PARAMETER</description>
+    </entityParameter>
   </entityFields>
   <recordContainers>
     <dbRecordContainer>
       <name>db</name>
       <alias>Data_alias</alias>
       <conditionProcess>%aditoprj%/entity/Keyword_entity/recordcontainers/db/conditionProcess.js</conditionProcess>
+      <orderClauseProcess>%aditoprj%/entity/Keyword_entity/recordcontainers/db/orderClauseProcess.js</orderClauseProcess>
+      <onDBUpdate>%aditoprj%/entity/Keyword_entity/recordcontainers/db/onDBUpdate.js</onDBUpdate>
       <linkInformation>
         <linkInformation>
           <name>52acbfe0-57f4-4614-83af-9882e168f431</name>
diff --git a/entity/Keyword_entity/documentation.adoc b/entity/Keyword_entity/documentation.adoc
index bd1db753b161e22c51377479812d1132ecb9c2bc..85315315fa2f284f66f942747594cef62fb842b6 100644
--- a/entity/Keyword_entity/documentation.adoc
+++ b/entity/Keyword_entity/documentation.adoc
@@ -12,7 +12,7 @@ Glossary
 
 [glossary]
 Keyword Container::
-  A keyword container is the element that keeps several entries of Keywords together. That could be for example something like "Contact-Status".
+  A keyword container is the element that keeps several entries of Keywords together. That could be for example something like "Contact-Status". Keep in mind that this done virtually and not in the actual way of storage.
 
 Keyword Entry::
   A keyword entry is a specific child-element of a keyword container. For the upper example "Contact-Status" this could be "Active", "Inactive", etc.
diff --git a/entity/Keyword_entity/entityfields/container/documentation.adoc b/entity/Keyword_entity/entityfields/container/documentation.adoc
new file mode 100644
index 0000000000000000000000000000000000000000..b46aaac93ed420d5150d4d5202dc302a4898ca70
--- /dev/null
+++ b/entity/Keyword_entity/entityfields/container/documentation.adoc
@@ -0,0 +1 @@
+ `CONTAINER` is the a name and used for grouping keyword-entries. This is was a keyword-container essentially is.
\ No newline at end of file
diff --git a/entity/Keyword_entity/entityfields/container/possibleItemsProcess.js b/entity/Keyword_entity/entityfields/container/possibleItemsProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..6d8037350d9404a9d3fda57b4f842a83a9f00e6e
--- /dev/null
+++ b/entity/Keyword_entity/entityfields/container/possibleItemsProcess.js
@@ -0,0 +1,6 @@
+import("system.result");
+import("system.db");
+
+//TODO: move into UEM
+//first column is ID, second view value - which is the same because there is no ID for keyword-containers
+result.object(db.table("select distinct AB_KEYWORD_ENTRY.CONTAINER, AB_KEYWORD_ENTRY.CONTAINER from AB_KEYWORD_ENTRY order by 1 asc"));
\ No newline at end of file
diff --git a/entity/Keyword_entity/entityfields/generic_dfi/children/onlyactives/code.js b/entity/Keyword_entity/entityfields/generic_dfi/children/onlyactives/code.js
new file mode 100644
index 0000000000000000000000000000000000000000..0e7522714af4e73d87e977bb3e83b350461053b6
--- /dev/null
+++ b/entity/Keyword_entity/entityfields/generic_dfi/children/onlyactives/code.js
@@ -0,0 +1,2 @@
+import("system.result");
+result.string("true");//TODO: provider-code is not executed correct (did not receive the value from here)
\ No newline at end of file
diff --git a/entity/Keyword_entity/entityfields/isactive/valueProcess.js b/entity/Keyword_entity/entityfields/isactive/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..95f59e0c071d0c4ed575acf0ae642c6cfd37a2f5
--- /dev/null
+++ b/entity/Keyword_entity/entityfields/isactive/valueProcess.js
@@ -0,0 +1,7 @@
+import("system.util");
+import("system.result");
+import("system.neon");
+import("system.vars");
+
+if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW)
+    result.string("1");
\ No newline at end of file
diff --git a/entity/Keyword_entity/entityfields/isessential/documentation.adoc b/entity/Keyword_entity/entityfields/isessential/documentation.adoc
new file mode 100644
index 0000000000000000000000000000000000000000..a8ed78817f03465060f46e92b9b34162242dc34f
--- /dev/null
+++ b/entity/Keyword_entity/entityfields/isessential/documentation.adoc
@@ -0,0 +1,7 @@
+Specifies if a keyword-entry is essential. An essential keyword-entry is protected an must not be deleted because the `KEYID` is used within JDito-Code and there is functionality behind that keyword-entry.
+
+
+[NOTE]
+====
+Therefore this field cannot be set (it's *READONLY*)  - a `true`-value makes only sense if the developer decides to use it which is why he has to care that the field is marked as essential.
+====
diff --git a/entity/Keyword_entity/entityfields/keyid/valueProcess.js b/entity/Keyword_entity/entityfields/keyid/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..4af99287f59a86e98d9b4c552c010fe13c106cc7
--- /dev/null
+++ b/entity/Keyword_entity/entityfields/keyid/valueProcess.js
@@ -0,0 +1,7 @@
+import("system.util");
+import("system.result");
+import("system.neon");
+import("system.vars");
+
+if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW)
+    result.string(util.getNewUUID());
\ No newline at end of file
diff --git a/entity/Keyword_entity/entityfields/onlyactives/code.js b/entity/Keyword_entity/entityfields/onlyactives/code.js
new file mode 100644
index 0000000000000000000000000000000000000000..3504e7637476a34d3ab50f5767f8a7b5dba25387
--- /dev/null
+++ b/entity/Keyword_entity/entityfields/onlyactives/code.js
@@ -0,0 +1,2 @@
+import("system.result");
+result.string("false");
\ No newline at end of file
diff --git a/entity/Keyword_entity/entityfields/sorting/documentation.adoc b/entity/Keyword_entity/entityfields/sorting/documentation.adoc
new file mode 100644
index 0000000000000000000000000000000000000000..d999d0a3d2509691a8f9c2d9830044cbd690218a
--- /dev/null
+++ b/entity/Keyword_entity/entityfields/sorting/documentation.adoc
@@ -0,0 +1,6 @@
+Used for sorting keyword-entries within a keyword-container.
+
+[NOTE]
+====
+Currently this cannot be set (it's *READONLY*) - the value is generated automatically. Reserved for future use.
+====
diff --git a/entity/Keyword_entity/iconIdProcess.js b/entity/Keyword_entity/iconIdProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..ef0457e780554daacf633e3381aff300f84e713c
--- /dev/null
+++ b/entity/Keyword_entity/iconIdProcess.js
@@ -0,0 +1,7 @@
+import("system.vars");
+import("system.result");
+
+var container = vars.get("$field.CONTAINER");
+
+if (container)
+    result.string("TEXT:" + container);
\ No newline at end of file
diff --git a/entity/Keyword_entity/onValidation.js b/entity/Keyword_entity/onValidation.js
new file mode 100644
index 0000000000000000000000000000000000000000..ae813d018848dcb847a752c1eedb985090518c16
--- /dev/null
+++ b/entity/Keyword_entity/onValidation.js
@@ -0,0 +1,21 @@
+import("system.db");
+import("system.vars");
+import("system.text");
+import("system.neon");
+import("Sql_lib");
+
+//TODO: this should no happen in onValidation; waiting for #1032668
+if (vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW)
+{
+    var keyContainer = vars.get("$field.CONTAINER");
+    if (keyContainer)
+    {
+        var cond = SqlCondition.begin().andPrepare("AB_KEYWORD_ENTRY.CONTAINER", keyContainer);
+        var maskingHelper = new SqlMaskingUtils();
+        var newCodeNumber = db.cell(cond.buildSql("select " + maskingHelper.max("AB_KEYWORD_ENTRY.SORTING") + " from AB_KEYWORD_ENTRY", "1 = 2"));
+        newCodeNumber = Number(newCodeNumber);//if no number exists till no, start value will be 1 (due to: ++0)
+        if (isNaN(newCodeNumber))
+            throw new TypeError();//TODO:add Message
+        neon.setFieldValue("$field.SORTING", ++newCodeNumber);
+    }
+}
\ No newline at end of file
diff --git a/entity/Keyword_entity/recordcontainers/db/conditionProcess.js b/entity/Keyword_entity/recordcontainers/db/conditionProcess.js
index b581f2d83f5fee8ecd01da407517d76b64a86dd2..7b0650f1d331e6ff462876ffdb803d67d58c9408 100644
--- a/entity/Keyword_entity/recordcontainers/db/conditionProcess.js
+++ b/entity/Keyword_entity/recordcontainers/db/conditionProcess.js
@@ -1,10 +1,14 @@
+import("system.vars");
 import("system.db");
 import("system.result");
 import("Sql_lib");
 
 var cond = SqlCondition.begin().andPrepareVars("AB_KEYWORD_ENTRY.CONTAINER", "$param.containerName_param");
-if (!cond.isSet())
-    throw new Error("keyword containerName has to be set");//at the moment throw an error since there is no list of "all keywords"
 
-var condStr = db.translateCondition(cond.build());
+if (vars.get("$param.onlyActives") == "true")
+{
+    cond.andPrepare("AB_KEYWORD_ENTRY.ISACTIVE", "1");
+}
+
+var condStr = db.translateCondition(cond.build("1 = 1"));
 result.string(condStr);
\ No newline at end of file
diff --git a/entity/Keyword_entity/recordcontainers/db/onDBUpdate.js b/entity/Keyword_entity/recordcontainers/db/onDBUpdate.js
new file mode 100644
index 0000000000000000000000000000000000000000..a1e6133b613a59c988a2abaf9c87f81d9139b08b
--- /dev/null
+++ b/entity/Keyword_entity/recordcontainers/db/onDBUpdate.js
@@ -0,0 +1,29 @@
+import("system.logging");
+import("system.db");
+import("system.vars");
+import("system.text");
+import("system.neon");
+import("Sql_lib");
+
+var changedFields = vars.get("$local.changed");
+//whenever the container is changed data that depends on the keyword-container has be "fixed" to keep consistency
+//this could be information like Keyword-attributes or the sorting-position
+//maybe it'd be better to lock KeywordContainer as read-only after creation
+if (vars.get("$sys.recordstate") == neon.OPERATINGSTATE_EDIT && changedFields.indexOf("AB_KEYWORD_ENTRY.CONTAINER") > -1)
+{
+    var keyContainer = vars.get("$field.CONTAINER");
+    if (keyContainer)
+    {
+        var cond = SqlCondition.begin().andPrepare("AB_KEYWORD_ENTRY.CONTAINER", keyContainer);
+        var maskingHelper = new SqlMaskingUtils();
+        var newCodeNumber = db.cell(cond.buildSql("select " + maskingHelper.max("AB_KEYWORD_ENTRY.SORTING") + " from AB_KEYWORD_ENTRY", "1 = 2"));
+        newCodeNumber = Number(newCodeNumber);//if no number exists till no, start value will be 1 (due to: ++0)
+        if (isNaN(newCodeNumber))
+            throw new TypeError();//TODO:add Message
+
+        var cols = ["SORTING"];
+        var vals = [++newCodeNumber];
+        cond.clear().andPrepare("AB_KEYWORD_ENTRY.AB_KEYWORD_ENTRYID", vars.get("$sys.uid"));
+        db.updateData("AB_KEYWORD_ENTRY", cols, null, vals, cond.build("1 = 2"));
+    }
+}
\ No newline at end of file
diff --git a/entity/Keyword_entity/recordcontainers/db/orderClauseProcess.js b/entity/Keyword_entity/recordcontainers/db/orderClauseProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..b8dafebb3d124fac43eb1bf6d64037083dfae319
--- /dev/null
+++ b/entity/Keyword_entity/recordcontainers/db/orderClauseProcess.js
@@ -0,0 +1,7 @@
+import("system.db");
+import("system.result");
+
+result.object({
+     "AB_KEYWORD_ENTRY.CONTAINER": db.ASCENDING
+    ,"AB_KEYWORD_ENTRY.SORTING": db.ASCENDING
+});
\ No newline at end of file
diff --git a/entity/Task_entity/onValidation.js b/entity/Task_entity/onValidation.js
index 9d163bb6d1dd266ac8be3fa38724bf65c8a58199..f0f501340bdc8a972b7ce9c32b2848a828ff198c 100644
--- a/entity/Task_entity/onValidation.js
+++ b/entity/Task_entity/onValidation.js
@@ -4,6 +4,7 @@ import("system.text");
 import("system.neon");
 import("Sql_lib");
 
+//TODO: this should no happen in onValidation; waiting for #1032668
 if (vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW)
 {
     var maskingHelper = new SqlMaskingUtils();
diff --git a/language/_____LANGUAGE_EXTRA/_____LANGUAGE_EXTRA.aod b/language/_____LANGUAGE_EXTRA/_____LANGUAGE_EXTRA.aod
index a34ffa053914407b79b33cb9978930747b2d4dc4..ab1d0a6e88c3dcffb5830c165e60dbebbb9f9e41 100644
--- a/language/_____LANGUAGE_EXTRA/_____LANGUAGE_EXTRA.aod
+++ b/language/_____LANGUAGE_EXTRA/_____LANGUAGE_EXTRA.aod
@@ -783,9 +783,6 @@
     <entry>
       <key>Dateigröße</key>
     </entry>
-    <entry>
-      <key>Member</key>
-    </entry>
     <entry>
       <key>A reason is only possible if a date is given.</key>
     </entry>
@@ -1005,9 +1002,6 @@
     <entry>
       <key>Social</key>
     </entry>
-    <entry>
-      <key>Dataset</key>
-    </entry>
     <entry>
       <key>Facebook Feed</key>
     </entry>
@@ -1371,9 +1365,6 @@
     <entry>
       <key>absagen</key>
     </entry>
-    <entry>
-      <key>asdfasdf</key>
-    </entry>
     <entry>
       <key>type</key>
     </entry>
@@ -1488,9 +1479,6 @@
     <entry>
       <key>${FORECAST_ENGLISH}</key>
     </entry>
-    <entry>
-      <key>${NUMBER}</key>
-    </entry>
     <entry>
       <key>Usage</key>
     </entry>
@@ -1503,6 +1491,48 @@
     <entry>
       <key>${ADDRESS_STATE}</key>
     </entry>
+    <entry>
+      <key>Title (original language)</key>
+    </entry>
+    <entry>
+      <key>Parent Attribute</key>
+    </entry>
+    <entry>
+      <key>Attribute Relation</key>
+    </entry>
+    <entry>
+      <key>Essential</key>
+    </entry>
+    <entry>
+      <key>Attribute Usage</key>
+    </entry>
+    <entry>
+      <key>Beziehung</key>
+    </entry>
+    <entry>
+      <key>Key</key>
+    </entry>
+    <entry>
+      <key>Attribute</key>
+    </entry>
+    <entry>
+      <key>Context</key>
+    </entry>
+    <entry>
+      <key>Container</key>
+    </entry>
+    <entry>
+      <key>Beziehungen</key>
+    </entry>
+    <entry>
+      <key>Administration</key>
+    </entry>
+    <entry>
+      <key>Keyword</key>
+    </entry>
+    <entry>
+      <key>Sorting</key>
+    </entry>
   </keyValueMap>
   <font name="Dialog" style="0" size="11" />
   <sqlModels>
@@ -1510,7 +1540,7 @@
       <name>Data_alias</name>
       <alias>Data_alias</alias>
       <statements>
-        <element></element>
+        <element>select AB_KEYWORD_ENTRY.TITLE from AB_KEYWORD_ENTRY</element>
       </statements>
     </languageSql>
   </sqlModels>
diff --git a/language/_____LANGUAGE_de/_____LANGUAGE_de.aod b/language/_____LANGUAGE_de/_____LANGUAGE_de.aod
index 7a997ae430781dc8960f1bf131730b42e38d1192..69a1c029028b47d3e5f234f71de5e407da8a9018 100644
--- a/language/_____LANGUAGE_de/_____LANGUAGE_de.aod
+++ b/language/_____LANGUAGE_de/_____LANGUAGE_de.aod
@@ -122,10 +122,6 @@
       <key>Online-Meeting</key>
       <value>Online-Meeting</value>
     </entry>
-    <entry>
-      <key>${NUMBER}</key>
-      <value>Zahl</value>
-    </entry>
     <entry>
       <key>Choose address</key>
       <value>Adresse auswählen</value>
@@ -1160,10 +1156,6 @@
       <key>Forecast</key>
       <value>Forecast</value>
     </entry>
-    <entry>
-      <key>Member</key>
-      <value>Teammitglied</value>
-    </entry>
     <entry>
       <key>A reason is only possible if a date is given.</key>
       <value>Begründung nur bei Ausgeschiedenen Mitbewerbern erlaubt.</value>
@@ -1552,10 +1544,6 @@
     <entry>
       <key>Social</key>
     </entry>
-    <entry>
-      <key>Dataset</key>
-      <value>Datensatz</value>
-    </entry>
     <entry>
       <key>Facebook Feed</key>
     </entry>
@@ -1778,6 +1766,7 @@
     </entry>
     <entry>
       <key>title</key>
+      <value>Titel</value>
     </entry>
     <entry>
       <key>von</key>
@@ -1812,9 +1801,6 @@
     <entry>
       <key>absagen</key>
     </entry>
-    <entry>
-      <key>asdfasdf</key>
-    </entry>
     <entry>
       <key>type</key>
       <value>Typ</value>
@@ -1910,6 +1896,51 @@
       <key>${FORECAST_ENGLISH}</key>
       <value>Forecast</value>
     </entry>
+    <entry>
+      <key>Title (original language)</key>
+      <value>Titel (ursprüngliche Sprache)</value>
+    </entry>
+    <entry>
+      <key>Parent Attribute</key>
+    </entry>
+    <entry>
+      <key>Attribute Relation</key>
+    </entry>
+    <entry>
+      <key>Essential</key>
+      <value>Essenziell</value>
+    </entry>
+    <entry>
+      <key>Attribute Usage</key>
+    </entry>
+    <entry>
+      <key>Beziehung</key>
+    </entry>
+    <entry>
+      <key>Key</key>
+    </entry>
+    <entry>
+      <key>Attribute</key>
+    </entry>
+    <entry>
+      <key>Context</key>
+    </entry>
+    <entry>
+      <key>Container</key>
+    </entry>
+    <entry>
+      <key>Beziehungen</key>
+    </entry>
+    <entry>
+      <key>Administration</key>
+    </entry>
+    <entry>
+      <key>Keyword</key>
+    </entry>
+    <entry>
+      <key>Sorting</key>
+      <value>Sortierung</value>
+    </entry>
   </keyValueMap>
   <font name="Dialog" style="0" size="11" />
 </language>
diff --git a/language/_____LANGUAGE_en/_____LANGUAGE_en.aod b/language/_____LANGUAGE_en/_____LANGUAGE_en.aod
index ac6c84f0a0363fcb721a0f4afb2943753a502921..1c112c9978d82f432c69225a78f378a8105971af 100644
--- a/language/_____LANGUAGE_en/_____LANGUAGE_en.aod
+++ b/language/_____LANGUAGE_en/_____LANGUAGE_en.aod
@@ -797,9 +797,6 @@
     <entry>
       <key>Dateigröße</key>
     </entry>
-    <entry>
-      <key>Member</key>
-    </entry>
     <entry>
       <key>A reason is only possible if a date is given.</key>
     </entry>
@@ -1022,9 +1019,6 @@
     <entry>
       <key>Social</key>
     </entry>
-    <entry>
-      <key>Dataset</key>
-    </entry>
     <entry>
       <key>Facebook Feed</key>
     </entry>
@@ -1394,9 +1388,6 @@
     <entry>
       <key>absagen</key>
     </entry>
-    <entry>
-      <key>asdfasdf</key>
-    </entry>
     <entry>
       <key>type</key>
     </entry>
@@ -1518,10 +1509,6 @@
       <key>${FORECAST_ENGLISH}</key>
       <value>Forecast</value>
     </entry>
-    <entry>
-      <key>${NUMBER}</key>
-      <value>Number</value>
-    </entry>
     <entry>
       <key>Usage</key>
     </entry>
@@ -1534,6 +1521,48 @@
     <entry>
       <key>${ADDRESS_STATE}</key>
     </entry>
+    <entry>
+      <key>Title (original language)</key>
+    </entry>
+    <entry>
+      <key>Parent Attribute</key>
+    </entry>
+    <entry>
+      <key>Attribute Relation</key>
+    </entry>
+    <entry>
+      <key>Essential</key>
+    </entry>
+    <entry>
+      <key>Attribute Usage</key>
+    </entry>
+    <entry>
+      <key>Beziehung</key>
+    </entry>
+    <entry>
+      <key>Key</key>
+    </entry>
+    <entry>
+      <key>Attribute</key>
+    </entry>
+    <entry>
+      <key>Context</key>
+    </entry>
+    <entry>
+      <key>Container</key>
+    </entry>
+    <entry>
+      <key>Beziehungen</key>
+    </entry>
+    <entry>
+      <key>Administration</key>
+    </entry>
+    <entry>
+      <key>Keyword</key>
+    </entry>
+    <entry>
+      <key>Sorting</key>
+    </entry>
   </keyValueMap>
   <font name="Dialog" style="0" size="11" />
 </language>
diff --git a/neonContext/Keyword_context/Keyword_context.aod b/neonContext/Keyword_context/Keyword_context.aod
index f9ee88b7b1670b3d632a2f541cb3457fcb956a2d..916d515832119a1eee55ff2eb24806cbd75187e7 100644
--- a/neonContext/Keyword_context/Keyword_context.aod
+++ b/neonContext/Keyword_context/Keyword_context.aod
@@ -5,11 +5,21 @@
   <description>&amp;lt;null value&amp;gt;</description>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <filterview>KeywordFilter_view</filterview>
+  <editview>KeywordEdit_view</editview>
+  <preview>KeywordPreview_view</preview>
   <entity>Keyword_entity</entity>
   <references>
     <neonViewReference>
       <name>75271eb0-8ddf-4b02-a943-01f589df1b20</name>
       <view>KeywordFilter_view</view>
     </neonViewReference>
+    <neonViewReference>
+      <name>e73f8fa3-3538-4af5-8116-84358b3254fa</name>
+      <view>KeywordEdit_view</view>
+    </neonViewReference>
+    <neonViewReference>
+      <name>9bb352b9-5a8c-41ac-9c42-7f4f7f4827f3</name>
+      <view>KeywordPreview_view</view>
+    </neonViewReference>
   </references>
 </neonContext>
diff --git a/neonView/KeywordEdit_view/KeywordEdit_view.aod b/neonView/KeywordEdit_view/KeywordEdit_view.aod
new file mode 100644
index 0000000000000000000000000000000000000000..3275db9f41f66eda6375dc1c90da459abbcfe8f0
--- /dev/null
+++ b/neonView/KeywordEdit_view/KeywordEdit_view.aod
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.0.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.0.1">
+  <name>KeywordEdit_view</name>
+  <majorModelMode>DISTRIBUTED</majorModelMode>
+  <layout>
+    <boxLayout>
+      <name>layout</name>
+    </boxLayout>
+  </layout>
+  <children>
+    <genericViewTemplate>
+      <name>mainData</name>
+      <editMode v="true" />
+      <entityField>#ENTITY</entityField>
+      <fields>
+        <entityFieldLink>
+          <name>236c9d71-a619-47b5-b5a0-8d4e5bc45903</name>
+          <entityField>CONTAINER</entityField>
+        </entityFieldLink>
+        <entityFieldLink>
+          <name>f7f66b08-521c-46bf-b6e9-3c3f130648bc</name>
+          <entityField>TITLE</entityField>
+        </entityFieldLink>
+        <entityFieldLink>
+          <name>3fb4b999-853a-407e-b928-8f5e633c1dc5</name>
+          <entityField>ISACTIVE</entityField>
+        </entityFieldLink>
+      </fields>
+    </genericViewTemplate>
+  </children>
+</neonView>
diff --git a/neonView/KeywordFilter_view/KeywordFilter_view.aod b/neonView/KeywordFilter_view/KeywordFilter_view.aod
index 2d416b5a5fbc02eb22199dd35906dac66b0fa38d..c69a8a6af1adb1ba60271b77064ec3fbc12b87b5 100644
--- a/neonView/KeywordFilter_view/KeywordFilter_view.aod
+++ b/neonView/KeywordFilter_view/KeywordFilter_view.aod
@@ -2,17 +2,22 @@
 <neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.0.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.0.1">
   <name>KeywordFilter_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
+  <filterable v="true" />
   <layout>
-    <boxLayout>
+    <groupLayout>
       <name>layout</name>
-    </boxLayout>
+    </groupLayout>
   </layout>
   <children>
     <tableViewTemplate>
-      <name>mainTable</name>
+      <name>table</name>
       <entityField>#ENTITY</entityField>
       <title></title>
       <columns>
+        <neonTableColumn>
+          <name>0e85b64c-6ce8-4221-8544-b8b5152a1292</name>
+          <entityField>#ICON</entityField>
+        </neonTableColumn>
         <neonTableColumn>
           <name>4dc50d75-d856-4fca-bd4d-d79eb3c8769f</name>
           <entityField>KEYID</entityField>
@@ -31,5 +36,11 @@
         </neonTableColumn>
       </columns>
     </tableViewTemplate>
+    <treetableViewTemplate>
+      <name>treeTable</name>
+      <titleField>TITLE</titleField>
+      <descriptionField>KEYID</descriptionField>
+      <entityField>#ENTITY</entityField>
+    </treetableViewTemplate>
   </children>
 </neonView>
diff --git a/neonView/KeywordPreview_view/KeywordPreview_view.aod b/neonView/KeywordPreview_view/KeywordPreview_view.aod
new file mode 100644
index 0000000000000000000000000000000000000000..0dc50a66f5d5af36af64cb1bee37f598c8b2832d
--- /dev/null
+++ b/neonView/KeywordPreview_view/KeywordPreview_view.aod
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.0.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.0.1">
+  <name>KeywordPreview_view</name>
+  <majorModelMode>DISTRIBUTED</majorModelMode>
+  <layout>
+    <boxLayout>
+      <name>layout</name>
+    </boxLayout>
+  </layout>
+  <children>
+    <cardViewTemplate>
+      <name>card</name>
+      <titleField>TITLE</titleField>
+      <subtitleField>CONTAINER</subtitleField>
+      <descriptionField>KEYID</descriptionField>
+      <entityField>#ENTITY</entityField>
+    </cardViewTemplate>
+    <genericViewTemplate>
+      <name>data</name>
+      <showDrawer v="true" />
+      <entityField>#ENTITY</entityField>
+      <title></title>
+      <fields>
+        <entityFieldLink>
+          <name>8455ebce-3bc2-4b0c-8e80-ec3795202d0e</name>
+          <entityField>ISACTIVE</entityField>
+        </entityFieldLink>
+        <entityFieldLink>
+          <name>4b0bb3a6-5457-4eee-b0d8-6ec4b23c0aa7</name>
+          <entityField>ISESSENTIAL</entityField>
+        </entityFieldLink>
+        <entityFieldLink>
+          <name>30d80ba1-235e-4b4a-9e9c-2b63f70f87b5</name>
+          <entityField>SORTING</entityField>
+        </entityFieldLink>
+      </fields>
+    </genericViewTemplate>
+  </children>
+</neonView>
diff --git a/process/Sql_lib/process.js b/process/Sql_lib/process.js
index 88d620b126dc87ba2dd144e968f05d5fb4872ae4..787e301de578910b6aded79ae24c6ce331a261e3 100644
--- a/process/Sql_lib/process.js
+++ b/process/Sql_lib/process.js
@@ -384,7 +384,7 @@ SqlCondition.prototype._prepare = function(field, value, cond, fieldType) {
 SqlCondition.prototype.clear = function() {
     this._sqlStorage = "";
     this.preparedValues = [];
-    return null;
+    return this;
 }
 
 /**