diff --git a/entity/Contract_entity/Contract_entity.aod b/entity/Contract_entity/Contract_entity.aod
index 9805f70690d5542d1dc28c7eeedc871500e8574b..c06d034aaef759e12fcd07d46d0c3fada33b0fa9 100644
--- a/entity/Contract_entity/Contract_entity.aod
+++ b/entity/Contract_entity/Contract_entity.aod
@@ -17,11 +17,15 @@
       <name>CONTRACTDUE</name>
       <tableName>CONTRACT</tableName>
       <columnName>CONTRACTDUE</columnName>
+      <contentType>DATE</contentType>
+      <resolution>DAY</resolution>
     </entityField>
     <entityField>
       <name>CONTRACTEND</name>
       <tableName>CONTRACT</tableName>
       <columnName>CONTRACTEND</columnName>
+      <contentType>DATE</contentType>
+      <resolution>DAY</resolution>
     </entityField>
     <entityField>
       <name>CONTRACTID</name>
@@ -32,16 +36,20 @@
       <name>CONTRACTSTART</name>
       <tableName>CONTRACT</tableName>
       <columnName>CONTRACTSTART</columnName>
+      <contentType>DATE</contentType>
+      <resolution>DAY</resolution>
     </entityField>
     <entityField>
       <name>CONTRACTSTATUS</name>
       <tableName>CONTRACT</tableName>
       <columnName>CONTRACTSTATUS</columnName>
+      <possibleItemsProcess>%aditoprj%/entity/Contract_entity/entityfields/contractstatus/possibleItemsProcess.js</possibleItemsProcess>
     </entityField>
     <entityField>
       <name>CONTRACTTYPE</name>
       <tableName>CONTRACT</tableName>
       <columnName>CONTRACTTYPE</columnName>
+      <possibleItemsProcess>%aditoprj%/entity/Contract_entity/entityfields/contracttype/possibleItemsProcess.js</possibleItemsProcess>
     </entityField>
     <entityField>
       <name>DATE_EDIT</name>
@@ -63,12 +71,16 @@
       <name>PAYMENT</name>
       <tableName>CONTRACT</tableName>
       <columnName>PAYMENT</columnName>
+      <mandatory v="true" />
+      <possibleItemsProcess>%aditoprj%/entity/Contract_entity/entityfields/payment/possibleItemsProcess.js</possibleItemsProcess>
     </entityField>
     <entityField>
       <name>RELATION_ID</name>
       <tableName>CONTRACT</tableName>
       <columnName>RELATION_ID</columnName>
+      <mandatory v="true" />
       <outgoingField></outgoingField>
+      <possibleItemsProcess>%aditoprj%/entity/Contract_entity/entityfields/relation_id/possibleItemsProcess.js</possibleItemsProcess>
       <valueProcess>%aditoprj%/entity/Contract_entity/entityfields/relation_id/valueProcess.js</valueProcess>
     </entityField>
     <entityField>
@@ -123,6 +135,30 @@
       <contentType>IMAGE</contentType>
       <valueProcess>%aditoprj%/entity/Contract_entity/entityfields/image/valueProcess.js</valueProcess>
     </entityField>
+    <entityFieldGroup>
+      <name>CONTRACTCODE_DISPLAY_fieldGroup</name>
+      <valueProcess>%aditoprj%/entity/Contract_entity/entityfields/contractcode_display_fieldgroup/valueProcess.js</valueProcess>
+      <description>FIELDGROUP</description>
+      <fields>
+        <element>CONTRACTTYPE</element>
+        <element>CONTRACTCODE</element>
+      </fields>
+    </entityFieldGroup>
+    <entityOutgoingField>
+      <name>ContractHistory_dfo</name>
+      <fieldType>DEPENDENCY_OUT</fieldType>
+      <dependency>
+        <name>dependency</name>
+        <entityName>History_entity</entityName>
+        <fieldName>ContractHistory_dfi</fieldName>
+      </dependency>
+      <children>
+        <entityParameter>
+          <name>RowId_param</name>
+          <code>%aditoprj%/entity/Contract_entity/entityfields/contracthistory_dfo/children/rowid_param/code.js</code>
+        </entityParameter>
+      </children>
+    </entityOutgoingField>
   </entityFields>
   <linkInformation>
     <linkInformation>
diff --git a/entity/Contract_entity/entityfields/contractcode_display_fieldgroup/valueProcess.js b/entity/Contract_entity/entityfields/contractcode_display_fieldgroup/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..b6a434814eb068042376d3a46557915f887ce7bf
--- /dev/null
+++ b/entity/Contract_entity/entityfields/contractcode_display_fieldgroup/valueProcess.js
@@ -0,0 +1,10 @@
+import("system.vars");
+import("system.result");
+import("Keyword_lib");
+
+var kwdUtils = new KeywordUtils();
+
+var cType = vars.get("$field.CONTRACTTYPE");
+var cCode = vars.get("$field.CONTRACTCODE");
+
+result.string(kwdUtils.getViewValue("CONTRACT.CONTRACTTYPE", cType) + " : " + cCode);
\ No newline at end of file
diff --git a/entity/Contract_entity/entityfields/contracthistory_dfo/children/rowid_param/code.js b/entity/Contract_entity/entityfields/contracthistory_dfo/children/rowid_param/code.js
new file mode 100644
index 0000000000000000000000000000000000000000..6a986948950be876fd394dc2b62dcf465308140a
--- /dev/null
+++ b/entity/Contract_entity/entityfields/contracthistory_dfo/children/rowid_param/code.js
@@ -0,0 +1,4 @@
+import("system.vars");
+import("system.result");
+
+result.string(vars.get("$field.CONTRACTID"));
\ No newline at end of file
diff --git a/entity/Contract_entity/entityfields/contractstatus/possibleItemsProcess.js b/entity/Contract_entity/entityfields/contractstatus/possibleItemsProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..4ee17a5e318ac45aab22939a0f0757ee002e1ccd
--- /dev/null
+++ b/entity/Contract_entity/entityfields/contractstatus/possibleItemsProcess.js
@@ -0,0 +1,8 @@
+import("system.result");
+import("Keyword_lib");
+
+var kwdUtils, items;
+
+kwdUtils = new KeywordUtils();
+items = kwdUtils.getStandardArray("CONTRACT.CONTRACTSTATUS");
+result.object(items);
\ No newline at end of file
diff --git a/entity/Contract_entity/entityfields/contracttype/possibleItemsProcess.js b/entity/Contract_entity/entityfields/contracttype/possibleItemsProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..a0f73ce40bde86c966193849ac595122512dc5b3
--- /dev/null
+++ b/entity/Contract_entity/entityfields/contracttype/possibleItemsProcess.js
@@ -0,0 +1,8 @@
+import("system.result");
+import("Keyword_lib");
+
+var kwdUtils, items;
+
+kwdUtils = new KeywordUtils();
+items = kwdUtils.getStandardArray("CONTRACT.CONTRACTTYPE");
+result.object(items);
\ No newline at end of file
diff --git a/entity/Contract_entity/entityfields/payment/possibleItemsProcess.js b/entity/Contract_entity/entityfields/payment/possibleItemsProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..c743e4350e36aaf9fe9f5f21921bc237d5e0af96
--- /dev/null
+++ b/entity/Contract_entity/entityfields/payment/possibleItemsProcess.js
@@ -0,0 +1,8 @@
+import("system.result");
+import("Keyword_lib");
+
+var kwdUtils, items;
+
+kwdUtils = new KeywordUtils();
+items = kwdUtils.getStandardArray("CONTRACT.PAYMENT");
+result.object(items);
\ No newline at end of file
diff --git a/entity/Contract_entity/entityfields/relation_id/possibleItemsProcess.js b/entity/Contract_entity/entityfields/relation_id/possibleItemsProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/entity/History_entity/History_entity.aod b/entity/History_entity/History_entity.aod
index d3750669e8f8af20a373a0a32e1e929232ce30b9..9db560091b28c095ad916d276bf6dddc27dcf842 100644
--- a/entity/History_entity/History_entity.aod
+++ b/entity/History_entity/History_entity.aod
@@ -114,6 +114,18 @@
       <contentType>IMAGE</contentType>
       <valueProcess>%aditoprj%/entity/History_entity/entityfields/direction_icon/valueProcess.js</valueProcess>
     </entityField>
+    <entityIncomingField>
+      <name>ContractHistory_dfi</name>
+      <fieldType>DEPENDENCY_IN</fieldType>
+      <dependencies>
+        <entityDependency>
+          <name>f47157d9-0cb6-4bcf-a485-08675bd957ee</name>
+          <entityName>Contract_entity</entityName>
+          <fieldName>ContractHistory_dfo</fieldName>
+          <isOutgoing v="false" />
+        </entityDependency>
+      </dependencies>
+    </entityIncomingField>
   </entityFields>
   <linkInformation>
     <linkInformation>
diff --git a/neonView/ContractEdit_view/ContractEdit_view.aod b/neonView/ContractEdit_view/ContractEdit_view.aod
index 7156d825903f76be0debfeac825fa05ae65b456f..7dbc60e17a3fb8f2780885b566740c7bddc6ecbc 100644
--- a/neonView/ContractEdit_view/ContractEdit_view.aod
+++ b/neonView/ContractEdit_view/ContractEdit_view.aod
@@ -2,4 +2,54 @@
 <neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.0.0" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.0.0">
   <name>ContractEdit_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
+  <layout>
+    <boxLayout>
+      <name>layout</name>
+    </boxLayout>
+  </layout>
+  <children>
+    <genericViewTemplate>
+      <name>Generic</name>
+      <editMode v="true" />
+      <entityField>#ENTITY</entityField>
+      <fields>
+        <entityFieldLink>
+          <name>5f2ef7a7-d7b5-49a8-86f3-3644036232fb</name>
+          <entityField>CONTRACTCODE</entityField>
+        </entityFieldLink>
+        <entityFieldLink>
+          <name>3177f8e9-24e9-441f-8c19-b004935a86a9</name>
+          <entityField>RELATION_ID</entityField>
+        </entityFieldLink>
+        <entityFieldLink>
+          <name>b4a51794-f04c-4cc5-b0bd-ff89d8f5ada9</name>
+          <entityField>CONTRACTSTART</entityField>
+        </entityFieldLink>
+        <entityFieldLink>
+          <name>2fb49607-d34c-4a19-8c4e-2ec3db395fa9</name>
+          <entityField>CONTRACTEND</entityField>
+        </entityFieldLink>
+        <entityFieldLink>
+          <name>e66d7b82-5b48-46f3-b780-06a5f107faca</name>
+          <entityField>CONTRACTDUE</entityField>
+        </entityFieldLink>
+        <entityFieldLink>
+          <name>f741bfda-5434-42ab-a5e9-ea1f7e4aaf79</name>
+          <entityField>CONTRACTSTATUS</entityField>
+        </entityFieldLink>
+        <entityFieldLink>
+          <name>ac160ded-1a06-4664-b8bd-333e01468f61</name>
+          <entityField>CONTRACTTYPE</entityField>
+        </entityFieldLink>
+        <entityFieldLink>
+          <name>02d4e542-f7ed-4900-82b3-b096958e1473</name>
+          <entityField>PAYMENT</entityField>
+        </entityFieldLink>
+        <entityFieldLink>
+          <name>4390abcd-d47e-40b2-85a9-655d39b17e82</name>
+          <entityField>REMARK</entityField>
+        </entityFieldLink>
+      </fields>
+    </genericViewTemplate>
+  </children>
 </neonView>
diff --git a/neonView/ContractMain_view/ContractMain_view.aod b/neonView/ContractMain_view/ContractMain_view.aod
index 28ddf433f49c1c52354abd69bff17ba511092f98..151066bd583d8d9422352868c0d5e37b9157bd4b 100644
--- a/neonView/ContractMain_view/ContractMain_view.aod
+++ b/neonView/ContractMain_view/ContractMain_view.aod
@@ -2,4 +2,22 @@
 <neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.0.0" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.0.0">
   <name>ContractMain_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
+  <layout>
+    <masterSlaveLayout>
+      <name>layout</name>
+      <master>50a9de9b-1b4d-4dbd-a2f0-51b376df5b55</master>
+    </masterSlaveLayout>
+  </layout>
+  <children>
+    <neonViewReference>
+      <name>50a9de9b-1b4d-4dbd-a2f0-51b376df5b55</name>
+      <entityField>#ENTITY</entityField>
+      <view>ContractPreview_view</view>
+    </neonViewReference>
+    <neonViewReference>
+      <name>8c6be607-ccce-4ad7-8dba-875b24d821e7</name>
+      <entityField>ContractHistory_dfo</entityField>
+      <view>HistoryFilter_view</view>
+    </neonViewReference>
+  </children>
 </neonView>
diff --git a/neonView/ContractPreview_view/ContractPreview_view.aod b/neonView/ContractPreview_view/ContractPreview_view.aod
index 60d449bc8801edb0fd584414bbf0d9fc49b9ab59..302a4134d691f7fdfdde4b275266aee5ff7d02a1 100644
--- a/neonView/ContractPreview_view/ContractPreview_view.aod
+++ b/neonView/ContractPreview_view/ContractPreview_view.aod
@@ -2,4 +2,52 @@
 <neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.0.0" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.0.0">
   <name>ContractPreview_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
+  <layout>
+    <boxLayout>
+      <name>layout</name>
+    </boxLayout>
+  </layout>
+  <children>
+    <cardViewTemplate>
+      <name>ContractHeader_template</name>
+      <iconField>IMAGE</iconField>
+      <descriptionField>RELATION_ID</descriptionField>
+      <entityField>#ENTITY</entityField>
+    </cardViewTemplate>
+    <genericViewTemplate>
+      <name>ContractInfo_template</name>
+      <showDrawer v="true" />
+      <entityField>#ENTITY</entityField>
+      <fields>
+        <entityFieldLink>
+          <name>6afd1b0d-4d73-47a0-a0a6-58dac448c783</name>
+          <entityField>CONTRACTTYPE</entityField>
+        </entityFieldLink>
+        <entityFieldLink>
+          <name>9101eee8-57b1-4bcf-a271-2501b7a3b842</name>
+          <entityField>CONTRACTSTART</entityField>
+        </entityFieldLink>
+        <entityFieldLink>
+          <name>9cc46e86-0f4b-406a-a702-77e840fc3988</name>
+          <entityField>CONTRACTEND</entityField>
+        </entityFieldLink>
+        <entityFieldLink>
+          <name>6529a64b-4249-434a-8692-45daad5264e3</name>
+          <entityField>CONTRACTDUE</entityField>
+        </entityFieldLink>
+        <entityFieldLink>
+          <name>b0ced77c-bd97-4318-8c0b-ad028111f039</name>
+          <entityField>CONTRACTSTATUS</entityField>
+        </entityFieldLink>
+        <entityFieldLink>
+          <name>aa310f7a-d66b-4128-8af0-3619099605ce</name>
+          <entityField>PAYMENT</entityField>
+        </entityFieldLink>
+        <entityFieldLink>
+          <name>bb0d44ca-671e-4a0f-87dc-a94e214bca54</name>
+          <entityField>REMARK</entityField>
+        </entityFieldLink>
+      </fields>
+    </genericViewTemplate>
+  </children>
 </neonView>
diff --git a/process/Keyword_lib/process.js b/process/Keyword_lib/process.js
index 85b57553f3160d10e4c42b31222958182835c7db..2b2d13da5cb772feff05896c9ea0ed903aebe267 100644
--- a/process/Keyword_lib/process.js
+++ b/process/Keyword_lib/process.js
@@ -121,6 +121,29 @@ function KeywordUtils(){
                     ,createKeywordEntry("o", translate.text("${GENDER_OTHER}"))
                 ]);
                 break;
+            case "CONTRACT.CONTRACTTYPE":
+                valueContainer = createKeywordEntriesContainer([
+                     createKeywordEntry("0", translate.text("Rahmenvertrag"))
+                    ,createKeywordEntry("1", translate.text("Werksvertrag"))
+                    ,createKeywordEntry("2", translate.text("Wartungsvertrag"))
+                ]);
+                break;
+            case "CONTRACT.CONTRACTSTATUS":
+                valueContainer = createKeywordEntriesContainer([
+                     createKeywordEntry("0", translate.text("gültig, unbefristet"))
+                    ,createKeywordEntry("1", translate.text("gültig, befristet"))
+                    ,createKeywordEntry("2", translate.text("noch nicht unterschrieben"))
+                    ,createKeywordEntry("3", translate.text("keiner, Einzelberechnung"))
+                    ,createKeywordEntry("4", translate.text("gekündigt"))
+                ]);
+                break;
+            case "CONTRACT.PAYMENT":
+                valueContainer = createKeywordEntriesContainer([
+                     createKeywordEntry("0", translate.text("jährlich"))
+                    ,createKeywordEntry("1", translate.text("halbjährlich"))
+                    ,createKeywordEntry("2", translate.text("vierteljährlich"))
+                ]);
+                break;
             default: 
                 throw new Error(translate.withArguments("[%0]the given keyword \"%1\" has no match with the possible keywordlist", [
                     arguments.callee.name, keywordType