KON-616 Als Administrator möchte ich die Stammdaten auf einer Seite konfigurieren können um nicht zwischen verschiedenen Seiten wechseln zu müssen
KON-613 Als Anwender möchte ich, dass Expandables nur so hoch sind wie es aktuell sichtbare Inhalte erforderlich machen, um unnötige Weißflächen zu vermeiden.
KON-680 LDAP-Synchronisationsnotiz in eigenes Feld packen
diff --git a/i18n/admin.de.json b/i18n/admin.de.json
index dc2864a..cb97b9f 100644
--- a/i18n/admin.de.json
+++ b/i18n/admin.de.json
@@ -32,5 +32,8 @@
     "Type": "Typ",
     "Description": "Beschreibung",
     "New": "Neuen Adresstyp anlegen"
+  },
+  "AdminSettings": {
+    "Title": "Übersicht Stammdatenverwaltung"
   }
 }
diff --git a/i18n/contacts.de.json b/i18n/contacts.de.json
index 78fd4f0..9f0388d 100644
--- a/i18n/contacts.de.json
+++ b/i18n/contacts.de.json
@@ -26,6 +26,8 @@
     "DSGVO-advanced-filter-deletion-lock-exceeded": "Filterung nach Kontakten mit abgelaufener Löschsperre",
     "DSGVO-advanced-filter-expiring-data-in-past": "Filterung nach Kontakten mit überschrittenem Ablaufdatum",
     "DeleteLockExpired": "Löschsperre abgelaufen",
-    "ExpieringDateExceed": "Ablaufdatum überschritten"
+    "ExpieringDateExceed": "Ablaufdatum überschritten",
+    "NewContactPersonData": "Neuen Kontaktperson hinzufügen",
+    "EditContactPersonData": "Kontaktperson bearbeiten"
   }
 }
diff --git a/package.json b/package.json
index 97bb3cf..82c914b 100644
--- a/package.json
+++ b/package.json
@@ -22,7 +22,8 @@
     "sy-build-prod": "npm run sy-pre-build && ng build --prod --aot --base-href /contactdatabase/ && npm run sy-post-build",
     "start-in-docker": "npm run sy-pre-start && ng serve --optimization=false --vendor-chunk --common-chunk --host=0.0.0.0 --disableHostCheck=true --proxy-config proxy-docker.conf.json",
     "start-in-docker-unsecure": "npm run sy-pre-start && ng serve --optimization=false --vendor-chunk --common-chunk --host=0.0.0.0 --disableHostCheck=true --proxy-config proxy-docker-unsecure.conf.json",
-    "sl": "npm run start-local"
+    "sl": "npm run start-local",
+    "si": "npm run start-integration"
   },
   "private": true,
   "dependencies": {
@@ -44,8 +45,8 @@
     "@ngrx/store-devtools": "^8.6.0",
     "@ngx-translate/core": "^11.0.1",
     "@ngx-translate/http-loader": "^4.0.0",
-    "ag-grid-angular": "^21.2.2",
-    "ag-grid-community": "^21.2.2",
+    "ag-grid-angular": "24.1.0",
+    "ag-grid-community": "24.1.0",
     "angular-font-awesome": "^3.1.2",
     "angular2-notifications": "^2.0.0",
     "bootstrap": "^4.4.1",
diff --git a/src/app/pages/admin/address-types/address-types-details/address-types-details.component.html b/src/app/pages/admin/address-types/address-types-details/address-types-details.component.html
index a81f0be..3f920f9 100644
--- a/src/app/pages/admin/address-types/address-types-details/address-types-details.component.html
+++ b/src/app/pages/admin/address-types/address-types-details/address-types-details.component.html
@@ -15,8 +15,8 @@
   <div>
     <!-- type -->
     <div class="form-group row">
-      <label for="addressTypesTyp" class="col-sm-2 col-form-label">{{ 'AddressTypes.Type' | translate }}</label>
-      <div class="col-sm-6">
+      <label for="addressTypesTyp" class="col-sm-4 col-form-label">{{ 'AddressTypes.Type' | translate }}</label>
+      <div class="col-sm-7">
         <input
           type="text"
           required
@@ -31,8 +31,8 @@
 
     <!-- description -->
     <div class="form-group row">
-      <label for="addressTypesDescription" class="col-sm-2 col-form-label">{{ 'AddressTypes.Description' | translate }}</label>
-      <div class="col-sm-6">
+      <label for="addressTypesDescription" class="col-sm-4 col-form-label">{{ 'AddressTypes.Description' | translate }}</label>
+      <div class="col-sm-7">
         <input
           type="text"
           required
diff --git a/src/app/pages/admin/address-types/address-types-details/address-types-details.component.scss b/src/app/pages/admin/address-types/address-types-details/address-types-details.component.scss
index c9eeb99..c75060d 100644
--- a/src/app/pages/admin/address-types/address-types-details/address-types-details.component.scss
+++ b/src/app/pages/admin/address-types/address-types-details/address-types-details.component.scss
@@ -1,18 +1,24 @@
 /********************************************************************************
- * Copyright (c) 2020 Contributors to the Eclipse Foundation
- *
- * See the NOTICE file(s) distributed with this work for additional
- * information regarding copyright ownership.
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v. 2.0 which is available at
- * http://www.eclipse.org/legal/epl-2.0.
- *
- * SPDX-License-Identifier: EPL-2.0
- ********************************************************************************/
+* Copyright (c) 2020 Contributors to the Eclipse Foundation
+*
+* See the NOTICE file(s) distributed with this work for additional
+* information regarding copyright ownership.
+*
+* This program and the accompanying materials are made available under the
+* terms of the Eclipse Public License v. 2.0 which is available at
+* http://www.eclipse.org/legal/epl-2.0.
+*
+* SPDX-License-Identifier: EPL-2.0
+********************************************************************************/
 button {
-  margin: 20px 10px 10px 0;
+  margin: 14px 0px 10px 15px;
 }
+
 h4 {
-  padding-bottom: 15px;
+  padding: 15px;
+  padding-top: 18px;
+}
+
+div.form-group.row {
+  padding-left: 15px;
 }
diff --git a/src/app/pages/admin/communication-types/communication-types-details/communication-types-details.component.html b/src/app/pages/admin/communication-types/communication-types-details/communication-types-details.component.html
index a4828a9..561ea58 100644
--- a/src/app/pages/admin/communication-types/communication-types-details/communication-types-details.component.html
+++ b/src/app/pages/admin/communication-types/communication-types-details/communication-types-details.component.html
@@ -15,8 +15,8 @@
   <div>
     <!-- type -->
     <div class="form-group row">
-      <label for="communicationTypesTyp" class="col-sm-2 col-form-label">{{ 'CommunicationTypes.Type' | translate }}</label>
-      <div class="col-sm-6">
+      <label for="communicationTypesTyp" class="col-sm-4 col-form-label">{{ 'CommunicationTypes.Type' | translate }}</label>
+      <div class="col-sm-7">
         <input
           type="text"
           required
@@ -28,23 +28,12 @@
           autocomplete="off"
         />
       </div>
-      <div class="col-sm-1"></div>
-      <div class="col-sm-2">
-        <input
-          type="checkbox"
-          class="form-check-input"
-          id="communicationTypesEditable"
-          [ngrxFormControlState]="((communicationTypesSandbox.formState$ | async)?.controls)['editable']"
-          onclick="return false;"
-        />
-        <label for="communicationTypesEditable" class="form-check-label">{{ 'CommunicationTypes.Editable' | translate }}</label>
-      </div>
     </div>
 
     <!-- description -->
     <div class="form-group row">
-      <label for="communicationTypesDescription" class="col-sm-2 col-form-label">{{ 'CommunicationTypes.Description' | translate }}</label>
-      <div class="col-sm-6">
+      <label for="communicationTypesDescription" class="col-sm-4 col-form-label">{{ 'CommunicationTypes.Description' | translate }}</label>
+      <div class="col-sm-7">
         <input
           type="text"
           required
@@ -56,8 +45,26 @@
           autocomplete="off"
         />
       </div>
-      <div class="col-sm-1"></div>
-      <div class="col-sm-2">
+    </div>
+
+    <!-- editable checkbox -->
+    <div class="form-group row">
+      <label for="communicationTypesEditable" class="col-sm-4 col-form-label">{{ 'CommunicationTypes.Editable' | translate }}</label>
+      <div class="col-sm-7" style="align-self: center;">
+        <input
+          type="checkbox"
+          class="form-check-input"
+          id="communicationTypesEditable"
+          [ngrxFormControlState]="((communicationTypesSandbox.formState$ | async)?.controls)['editable']"
+          onclick="return false;"
+        />
+      </div>
+    </div>
+
+    <!-- ldap mapping checkbox -->
+    <div class="form-group row">
+      <label for="communicationTypesMappingLdap" class="col-sm-4 col-form-label">{{ 'CommunicationTypes.MappingLdap' | translate }}</label>
+      <div class="col-sm-7" style="align-self: center;">
         <input
           type="checkbox"
           class="form-check-input"
@@ -65,7 +72,6 @@
           [ngrxFormControlState]="((communicationTypesSandbox.formState$ | async)?.controls)['mappingLdap']"
           onclick="return false;"
         />
-        <label for="communicationTypesMappingLdap" class="form-check-label">{{ 'CommunicationTypes.MappingLdap' | translate }}</label>
       </div>
     </div>
 
diff --git a/src/app/pages/admin/communication-types/communication-types-details/communication-types-details.component.scss b/src/app/pages/admin/communication-types/communication-types-details/communication-types-details.component.scss
index 255fbf6..05f0651 100644
--- a/src/app/pages/admin/communication-types/communication-types-details/communication-types-details.component.scss
+++ b/src/app/pages/admin/communication-types/communication-types-details/communication-types-details.component.scss
@@ -1,6 +1,29 @@
+/********************************************************************************
+* Copyright (c) 2020 Contributors to the Eclipse Foundation
+*
+* See the NOTICE file(s) distributed with this work for additional
+* information regarding copyright ownership.
+*
+* This program and the accompanying materials are made available under the
+* terms of the Eclipse Public License v. 2.0 which is available at
+* http://www.eclipse.org/legal/epl-2.0.
+*
+* SPDX-License-Identifier: EPL-2.0
+********************************************************************************/
 button {
-  margin: 20px 10px 10px 0;
+  margin: 14px 0px 10px 15px;
 }
+
 h4 {
-  padding-bottom: 15px;
+  padding: 15px;
+  padding-top: 18px;
+}
+
+div.form-group.row {
+  padding-left: 15px;
+}
+
+#communicationTypesMappingLdap, #communicationTypesEditable {
+  margin-left: 0px;
+  margin-top: 7px;
 }
diff --git a/src/app/pages/admin/communication-types/communication-types-list/communication-types-list.component.ts b/src/app/pages/admin/communication-types/communication-types-list/communication-types-list.component.ts
index 71569f3..5610e4e 100644
--- a/src/app/pages/admin/communication-types/communication-types-list/communication-types-list.component.ts
+++ b/src/app/pages/admin/communication-types/communication-types-list/communication-types-list.component.ts
@@ -38,7 +38,7 @@
       icons: { edit: true, readonly: true, delete: true },
     };
     this._subscription = this.gridOptions.context.eventSubject.subscribe(event => {
-      if (event.type === 'edit' || event.type === 'readonly' || event.type === 'readonly') {
+      if (event.type === 'edit' || event.type === 'readonly') {
         this.communicationTypesSandbox.setDisplayForm(event.type);
         this.communicationTypesSandbox.loadCommunicationType(event.data.id);
       }
diff --git a/src/app/pages/admin/person-types/person-types-details/person-types-details.component.html b/src/app/pages/admin/person-types/person-types-details/person-types-details.component.html
index aa4f2aa..177cf57 100644
--- a/src/app/pages/admin/person-types/person-types-details/person-types-details.component.html
+++ b/src/app/pages/admin/person-types/person-types-details/person-types-details.component.html
@@ -15,8 +15,8 @@
   <div>
     <!-- type -->
     <div class="form-group row">
-      <label for="personTypesTyp" class="col-sm-2 col-form-label">{{ 'PersonTypes.Type' | translate }}</label>
-      <div class="col-sm-6">
+      <label for="personTypesTyp" class="col-sm-4 col-form-label">{{ 'PersonTypes.Type' | translate }}</label>
+      <div class="col-sm-7">
         <input
           type="text"
           required
@@ -31,8 +31,8 @@
 
     <!-- description -->
     <div class="form-group row">
-      <label for="personTypesDescription" class="col-sm-2 col-form-label">{{ 'PersonTypes.Description' | translate }}</label>
-      <div class="col-sm-6">
+      <label for="personTypesDescription" class="col-sm-4 col-form-label">{{ 'PersonTypes.Description' | translate }}</label>
+      <div class="col-sm-7">
         <input
           type="text"
           required
diff --git a/src/app/pages/admin/person-types/person-types-details/person-types-details.component.scss b/src/app/pages/admin/person-types/person-types-details/person-types-details.component.scss
index 255fbf6..c75060d 100644
--- a/src/app/pages/admin/person-types/person-types-details/person-types-details.component.scss
+++ b/src/app/pages/admin/person-types/person-types-details/person-types-details.component.scss
@@ -1,6 +1,24 @@
+/********************************************************************************
+* Copyright (c) 2020 Contributors to the Eclipse Foundation
+*
+* See the NOTICE file(s) distributed with this work for additional
+* information regarding copyright ownership.
+*
+* This program and the accompanying materials are made available under the
+* terms of the Eclipse Public License v. 2.0 which is available at
+* http://www.eclipse.org/legal/epl-2.0.
+*
+* SPDX-License-Identifier: EPL-2.0
+********************************************************************************/
 button {
-  margin: 20px 10px 10px 0;
+  margin: 14px 0px 10px 15px;
 }
+
 h4 {
-  padding-bottom: 15px;
+  padding: 15px;
+  padding-top: 18px;
+}
+
+div.form-group.row {
+  padding-left: 15px;
 }
diff --git a/src/app/pages/admin/person-types/person-types-list/person-types-list.component.html b/src/app/pages/admin/person-types/person-types-list/person-types-list.component.html
index 7dd8517..b5991a2 100644
--- a/src/app/pages/admin/person-types/person-types-list/person-types-list.component.html
+++ b/src/app/pages/admin/person-types/person-types-list/person-types-list.component.html
@@ -22,7 +22,7 @@
   <div class="person-types-grid-wrapper" body>
     <ag-grid-angular
       autoResizeColumns
-      class="ag-theme-balham ag-grid-height"
+      class="ag-theme-balham"
       [ngClass]="sandbox.displayForm ? 'ag-grid-height-edit' : 'ag-grid-height-list'"
       [gridOptions]="gridOptions"
       [columnDefs]="columnDefinition"
diff --git a/src/app/pages/admin/salutations/salutations-details/salutations-details.component.html b/src/app/pages/admin/salutations/salutations-details/salutations-details.component.html
index 2af28ec..a90fea8 100644
--- a/src/app/pages/admin/salutations/salutations-details/salutations-details.component.html
+++ b/src/app/pages/admin/salutations/salutations-details/salutations-details.component.html
@@ -15,8 +15,8 @@
   <div>
     <!-- type -->
     <div class="form-group row">
-      <label for="salutationTyp" class="col-sm-2 col-form-label">{{ 'Salutations.Type' | translate }}</label>
-      <div class="col-sm-6">
+      <label for="salutationTyp" class="col-sm-4 col-form-label">{{ 'Salutations.Type' | translate }}</label>
+      <div class="col-sm-7">
         <input
           type="text"
           required
@@ -31,8 +31,8 @@
 
     <!-- description -->
     <div class="form-group row">
-      <label for="salutationDescription" class="col-sm-2 col-form-label">{{ 'Salutations.Description' | translate }}</label>
-      <div class="col-sm-6">
+      <label for="salutationDescription" class="col-sm-4 col-form-label">{{ 'Salutations.Description' | translate }}</label>
+      <div class="col-sm-7">
         <input
           type="text"
           required
diff --git a/src/app/pages/admin/salutations/salutations-details/salutations-details.component.scss b/src/app/pages/admin/salutations/salutations-details/salutations-details.component.scss
index 5562616..c75060d 100644
--- a/src/app/pages/admin/salutations/salutations-details/salutations-details.component.scss
+++ b/src/app/pages/admin/salutations/salutations-details/salutations-details.component.scss
@@ -1,18 +1,24 @@
- /********************************************************************************
- * Copyright (c) 2020 Contributors to the Eclipse Foundation
- *
- * See the NOTICE file(s) distributed with this work for additional
- * information regarding copyright ownership.
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v. 2.0 which is available at
- * http://www.eclipse.org/legal/epl-2.0.
- *
- * SPDX-License-Identifier: EPL-2.0
- ********************************************************************************/
- button {
-  margin: 20px 10px 10px 0;
+/********************************************************************************
+* Copyright (c) 2020 Contributors to the Eclipse Foundation
+*
+* See the NOTICE file(s) distributed with this work for additional
+* information regarding copyright ownership.
+*
+* This program and the accompanying materials are made available under the
+* terms of the Eclipse Public License v. 2.0 which is available at
+* http://www.eclipse.org/legal/epl-2.0.
+*
+* SPDX-License-Identifier: EPL-2.0
+********************************************************************************/
+button {
+  margin: 14px 0px 10px 15px;
 }
+
 h4 {
-  padding-bottom: 15px;
+  padding: 15px;
+  padding-top: 18px;
+}
+
+div.form-group.row {
+  padding-left: 15px;
 }
diff --git a/src/app/pages/admin/salutations/salutations-list/salutations-list-column-definition.ts b/src/app/pages/admin/salutations/salutations-list/salutations-list-column-definition.ts
index 13ff705..fc777c6 100644
--- a/src/app/pages/admin/salutations/salutations-list/salutations-list-column-definition.ts
+++ b/src/app/pages/admin/salutations/salutations-list/salutations-list-column-definition.ts
@@ -11,17 +11,115 @@
  * SPDX-License-Identifier: EPL-2.0
  ********************************************************************************/
 import { IconCellRendererComponent } from '@shared/components/cell-renderer/icon-cell-renderer/icon-cell-renderer.component';
+import { BoolCellRendererComponent } from '@shared/components/cell-renderer/bool-cell-renderer/bool-cell-renderer.component';
 
 export const SALUTATIONS_COLDEF = [
   {
     field: 'type',
     headerName: 'Salutations.Type',
     sortable: true,
+    flex: 1
   },
   {
     field: 'description',
     headerName: 'Salutations.Description',
     sortable: true,
+    flex: 1
+  },
+  {
+    field: 'tools',
+    headerName: ' ',
+    pinned: 'right',
+    maxWidth: 110,
+    minWidth: 110,
+    lockPosition: true,
+    sortable: false,
+    suppressMenu: true,
+    suppressSizeToFit: true,
+    cellRendererFramework: IconCellRendererComponent,
+  },
+];
+
+export const COMMUNICATION_TYPES_COLDEF = [
+  {
+    field: 'type',
+    headerName: 'CommunicationTypes.Type',
+    sortable: true,
+    flex: 1
+  },
+  {
+    field: 'description',
+    headerName: 'CommunicationTypes.Description',
+    sortable: true,
+    flex: 1
+  },
+  {
+    field: 'editable',
+    headerName: 'CommunicationTypes.Editable',
+    sortable: true,
+    flex: 1,
+    cellRendererFramework: BoolCellRendererComponent,
+  },
+  {
+    field: 'mappingLdap',
+    headerName: 'CommunicationTypes.MappingLdap',
+    sortable: true,
+    flex: 1,
+    cellRendererFramework: BoolCellRendererComponent,
+  },
+  {
+    field: 'tools',
+    headerName: ' ',
+    pinned: 'right',
+    maxWidth: 110,
+    minWidth: 110,
+    lockPosition: true,
+    sortable: false,
+    suppressMenu: true,
+    suppressSizeToFit: true,
+    cellRendererFramework: IconCellRendererComponent,
+  },
+];
+
+export const PERSON_TYPES_COLDEF = [
+  {
+    field: 'type',
+    headerName: 'PersonTypes.Type',
+    sortable: true,
+    flex: 1
+  },
+  {
+    field: 'description',
+    headerName: 'PersonTypes.Description',
+    sortable: true,
+    flex: 1
+  },
+  {
+    field: 'tools',
+    headerName: ' ',
+    pinned: 'right',
+    maxWidth: 110,
+    minWidth: 110,
+    lockPosition: true,
+    sortable: false,
+    suppressMenu: true,
+    suppressSizeToFit: true,
+    cellRendererFramework: IconCellRendererComponent,
+  },
+];
+
+export const ADDRESS_TYPES_COLDEF = [
+  {
+    field: 'type',
+    headerName: 'AddressTypes.Type',
+    sortable: true,
+    flex: 1
+  },
+  {
+    field: 'description',
+    headerName: 'AddressTypes.Description',
+    sortable: true,
+    flex: 1
   },
   {
     field: 'tools',
diff --git a/src/app/pages/admin/salutations/salutations-list/salutations-list.component.html b/src/app/pages/admin/salutations/salutations-list/salutations-list.component.html
index bfca349..f4895fc 100644
--- a/src/app/pages/admin/salutations/salutations-list/salutations-list.component.html
+++ b/src/app/pages/admin/salutations/salutations-list/salutations-list.component.html
@@ -12,31 +12,163 @@
 ********************************************************************************/ -->
 <app-card-layout>
   <div header>
-    <span>{{ 'Salutations.Title' | translate }}</span>
-    <div class="pull-right" *visibleByRight>
-      <button class="btn btn-primary new-button" (click)="salutationsSandbox.setDisplayForm()">
-        {{ 'Salutations.New' | translate }}
-      </button>
-    </div>
+    <span>{{ 'AdminSettings.Title' | translate }}</span>
   </div>
-  <div class="salutations-grid-wrapper" body>
-    <ag-grid-angular
-      autoResizeColumns
-      class="ag-theme-balham ag-grid-height"
-      [ngClass]="salutationsSandbox.displayForm ? 'ag-grid-height-edit' : 'ag-grid-height-list'"
-      [gridOptions]="gridOptions"
-      [columnDefs]="columnDefinition"
-      [rowSelection]="'single'"
-      [frameworkComponents]="frameworkComponents"
-      [rowData]="salutationsSandbox.salutations$ | async"
-      [overlayNoRowsTemplate]="noRowsTemplate"
-    >
-    </ag-grid-angular>
 
-    <app-spinner [isRunning]="salutationsSandbox.salutationsLoading$ | async"></app-spinner>
+  <div body>
 
-    <div *ngIf="salutationsSandbox.displayForm" class="salutations-details">
-      <app-salutations-details></app-salutations-details>
-    </div>
+    <!-- ******************************** Salutations  ********************************  -->
+    <app-expandable class="expandable-salutations">
+      <span header>{{ 'Salutations.Title' | translate }}</span>
+      <div class="salutations-grid-wrapper" body>
+
+        <div class="details-wrapper" *ngIf="salutationsSandbox.displayForm" >
+          <app-salutations-details></app-salutations-details>
+        </div>
+
+        <div class="table-view">
+          <div class="diverse-options">
+            <div class="pull-right" *visibleByRight>
+              <button class="btn btn-sm btn-primary" (click)="salutationsSandbox.setDisplayForm()">
+                {{ 'Salutations.New' | translate }}
+              </button>
+            </div>
+          </div>
+
+          <ag-grid-angular
+            class="ag-theme-balham"
+            [domLayout]="'autoHeight'"
+            [gridOptions]="salutationGridOptions"
+            [columnDefs]="salutationsColDef"
+            [rowSelection]="'single'"
+            [frameworkComponents]="frameworkComponents"
+            [rowData]="salutationsSandbox.salutations$ | async"
+            [overlayNoRowsTemplate]="noRowsTemplate"
+          >
+          </ag-grid-angular>
+
+          <app-spinner [isRunning]="salutationsSandbox.salutationsLoading$ | async"></app-spinner>
+        </div>
+
+      </div>
+    </app-expandable>
+
+    <!-- ******************************** Communications-Types  ********************************  -->
+      <app-expandable class="expandable-salutations">
+        <span header>{{ 'CommunicationTypes.Title' | translate }}</span>
+        <div class="salutations-grid-wrapper" body>
+
+          <div *ngIf="communicationTypesSandbox.displayForm" class="details-wrapper">
+            <app-communication-types-details></app-communication-types-details>
+          </div>
+
+          <div class="table-view">
+            <div class="diverse-options">
+              <div class="pull-right" *visibleByRight>
+                <button class="btn btn-sm btn-primary" (click)="communicationTypesSandbox.setDisplayForm()">
+                  {{ 'Salutations.New' | translate }}
+                </button>
+              </div>
+            </div>
+
+            <ag-grid-angular
+              class="ag-theme-balham"
+              [domLayout]="'autoHeight'"
+              [gridOptions]="communicationTypesGridOptions"
+              [columnDefs]="communicationsTypeColDef"
+              [rowSelection]="'single'"
+              [frameworkComponents]="frameworkComponents"
+              [rowData]="communicationTypesSandbox.communicationTypes$ | async"
+              [overlayNoRowsTemplate]="noRowsTemplate"
+            >
+            </ag-grid-angular>
+
+            <app-spinner [isRunning]="communicationTypesSandbox.communicationTypesLoading$ | async"></app-spinner>
+          </div>
+
+        </div>
+
+      </app-expandable>
+
+    <!-- ******************************** Person-Types  ********************************  -->
+    <app-expandable class="expandable-salutations">
+      <span header>{{ 'PersonTypes.Title' | translate }}</span>
+      <div class="salutations-grid-wrapper" body>
+
+        <div class="details-wrapper" *ngIf="personTypesSandbox.displayForm" >
+          <app-person-types-details></app-person-types-details>
+        </div>
+
+        <div class="table-view">
+          <div class="diverse-options">
+            <div class="pull-right" *visibleByRight>
+              <button class="btn btn-sm btn-primary" (click)="personTypesSandbox.setDisplayForm()">
+                {{ 'PersonTypes.New' | translate }}
+              </button>
+            </div>
+          </div>
+
+          <ag-grid-angular
+            class="ag-theme-balham"
+            [domLayout]="'autoHeight'"
+            [gridOptions]="personTypesGridOptions"
+            [columnDefs]="personTypeColDef"
+            [rowSelection]="'single'"
+            [frameworkComponents]="frameworkComponents"
+            [rowData]="personTypesSandbox.personTypes$ | async"
+            [overlayNoRowsTemplate]="noRowsTemplate"
+          >
+          </ag-grid-angular>
+
+          <app-spinner [isRunning]="personTypesSandbox.personTypesLoading$ | async"></app-spinner>
+        </div>
+
+      </div>
+    </app-expandable>
+
+    <!-- ******************************** Address-Types  ********************************  -->
+    <app-expandable class="expandable-salutations">
+      <span header>{{ 'AddressTypes.Title' | translate }}</span>
+      <div class="salutations-grid-wrapper" body>
+
+        <div class="details-wrapper" *ngIf="addressTypesSandbox.displayForm" >
+          <app-address-types-details></app-address-types-details>
+        </div>
+
+        <div class="table-view">
+          <div class="diverse-options">
+            <div class="pull-right" *visibleByRight>
+              <button class="btn btn-sm btn-primary" (click)="addressTypesSandbox.setDisplayForm()">
+                {{ 'AddressTypes.New' | translate }}
+              </button>
+            </div>
+          </div>
+
+          <ag-grid-angular
+            class="ag-theme-balham"
+            [domLayout]="'autoHeight'"
+            [gridOptions]="addressTypesGridOptions"
+            [columnDefs]="addressTypeColDef"
+            [rowSelection]="'single'"
+            [frameworkComponents]="frameworkComponents"
+            [rowData]="addressTypesSandbox.addressTypes$ | async"
+            [overlayNoRowsTemplate]="noRowsTemplate"
+          >
+          </ag-grid-angular>
+
+          <app-spinner [isRunning]="addressTypesSandbox.addressTypesLoading$ | async"></app-spinner>
+        </div>
+
+      </div>
+    </app-expandable>
+
+
+
+
+
+
+
   </div>
+
+
 </app-card-layout>
diff --git a/src/app/pages/admin/salutations/salutations-list/salutations-list.component.scss b/src/app/pages/admin/salutations/salutations-list/salutations-list.component.scss
index f493401..fdd29d6 100644
--- a/src/app/pages/admin/salutations/salutations-list/salutations-list.component.scss
+++ b/src/app/pages/admin/salutations/salutations-list/salutations-list.component.scss
@@ -10,22 +10,44 @@
  *
  * SPDX-License-Identifier: EPL-2.0
  ********************************************************************************/
- .salutations-grid-wrapper {
-  position: relative;
+ .ag-theme-balham ::ng-deep.ag-root-wrapper {
+  border: none;
+  border-top: 1px solid #bdc3c7;
 }
 
-.salutations-details {
-  margin-top: 20px;
+.salutations-grid-wrapper {
+  display: flex;
+  flex-direction: row;
+  height: 100%;
 }
 
-.ag-grid-height-edit {
-  height: calc(100vh - 450px);
+.table-view {
+  flex-grow: 1;
 }
 
-.ag-grid-height-list {
-  height: calc(100vh - 200px);
+.details-wrapper {
+  width: 461px;
+  min-width: 461px;
+  border-right: 1px solid #bdc3c7;
 }
 
-.new-button {
-  margin-right: 20px;
+.diverse-options {
+	display: flex;
+	justify-content: flex-end;
+	align-content: center;
+	background-color: #f5f7f7;
+	padding: 7px;
+	margin-bottom: 1px;
+}
+
+.diverse-options-item {
+	width: 400px;
+	padding-right: 7px;
+	border-right: solid 1px #ddd;
+}
+
+:host {
+  display: flex;
+  flex-direction: column;
+  height: 100%;
 }
diff --git a/src/app/pages/admin/salutations/salutations-list/salutations-list.component.spec.ts b/src/app/pages/admin/salutations/salutations-list/salutations-list.component.spec.ts
index 1af3a38..387ee6a 100644
--- a/src/app/pages/admin/salutations/salutations-list/salutations-list.component.spec.ts
+++ b/src/app/pages/admin/salutations/salutations-list/salutations-list.component.spec.ts
@@ -15,14 +15,26 @@
 
 describe('SalutationsListComponent', () => {
   let component: SalutationsListComponent;
-  const sandbox: any = {
+  let communicationTypesSandbox: any = {
+    setDisplayForm: () => {},
+    loadCommunicationType: () => {},
+    deleteCommunicationType: () => {},};
+  let personTypesSandbox: any = {
+    setDisplayForm: () => {},
+    loadPersonType: () => {},
+    deletePersonType: () => {},};
+  let addressTypesSandbox: any = {
+    setDisplayForm: () => {},
+    loadAddressType: () => {},
+    deleteAddressType: () => {},};
+  const salutationsSandbox: any = {
     setDisplayForm: () => {},
     loadSalutation: () => {},
     deleteSalutation: () => {},
   };
 
   beforeEach(() => {
-    component = new SalutationsListComponent(sandbox);
+    component = new SalutationsListComponent(salutationsSandbox, communicationTypesSandbox, personTypesSandbox, addressTypesSandbox);
   });
 
   it('should create', () => {
@@ -31,23 +43,71 @@
 
   it('should initialize gridOptions context', () => {
     component.ngOnInit();
-    expect(component.gridOptions.context.icons.edit).toBeTruthy();
-    expect(component.gridOptions.context.icons.delete).toBeTruthy();
+    expect(component.salutationGridOptions.context.icons.edit).toBeTruthy();
+    expect(component.salutationGridOptions.context.icons.delete).toBeTruthy();
   });
 
   it('should call appropriate functions for edit event', () => {
-    const spy1: any = spyOn(sandbox, 'setDisplayForm');
-    const spy2: any = spyOn(sandbox, 'loadSalutation');
+    const spy1: any = spyOn(salutationsSandbox, 'setDisplayForm');
+    const spy2: any = spyOn(salutationsSandbox, 'loadSalutation');
     component.ngOnInit();
-    component.gridOptions.context.eventSubject.next({type: "edit", data: new Salutation()});
+    component.salutationGridOptions.context.eventSubject.next({type: "edit", data: new Salutation()});
     expect(spy1).toHaveBeenCalled();
     expect(spy2).toHaveBeenCalled();
   });
 
   it('should call appropriate functions for delete event', () => {
-    const spy3: any = spyOn(sandbox, 'deleteSalutation');
+    const spy3: any = spyOn(salutationsSandbox, 'deleteSalutation');
     component.ngOnInit();
-    component.gridOptions.context.eventSubject.next({type: "delete", data: new Salutation()});
+    component.salutationGridOptions.context.eventSubject.next({type: "delete", data: new Salutation()});
+    expect(spy3).toHaveBeenCalled();
+  });
+
+  it('should call appropriate functions for edit event', () => {
+    const spy1: any = spyOn(communicationTypesSandbox, 'setDisplayForm');
+    const spy2: any = spyOn(communicationTypesSandbox, 'loadCommunicationType');
+    component.ngOnInit();
+    component.communicationTypesGridOptions.context.eventSubject.next({type: "edit", data: new Salutation()});
+    expect(spy1).toHaveBeenCalled();
+    expect(spy2).toHaveBeenCalled();
+  });
+
+  it('should call appropriate functions for delete event', () => {
+    const spy3: any = spyOn(communicationTypesSandbox, 'deleteCommunicationType');
+    component.ngOnInit();
+    component.communicationTypesGridOptions.context.eventSubject.next({type: "delete", data: new Salutation()});
+    expect(spy3).toHaveBeenCalled();
+  });
+
+  it('should call appropriate functions for edit event', () => {
+    const spy1: any = spyOn(personTypesSandbox, 'setDisplayForm');
+    const spy2: any = spyOn(personTypesSandbox, 'loadPersonType');
+    component.ngOnInit();
+    component.personTypesGridOptions.context.eventSubject.next({type: "edit", data: new Salutation()});
+    expect(spy1).toHaveBeenCalled();
+    expect(spy2).toHaveBeenCalled();
+  });
+
+  it('should call appropriate functions for delete event', () => {
+    const spy3: any = spyOn(personTypesSandbox, 'deletePersonType');
+    component.ngOnInit();
+    component.personTypesGridOptions.context.eventSubject.next({type: "delete", data: new Salutation()});
+    expect(spy3).toHaveBeenCalled();
+  });
+
+  it('should call appropriate functions for edit event', () => {
+    const spy1: any = spyOn(addressTypesSandbox, 'setDisplayForm');
+    const spy2: any = spyOn(addressTypesSandbox, 'loadAddressType');
+    component.ngOnInit();
+    component.addressTypesGridOptions.context.eventSubject.next({type: "edit", data: new Salutation()});
+    expect(spy1).toHaveBeenCalled();
+    expect(spy2).toHaveBeenCalled();
+  });
+
+  it('should call appropriate functions for delete event', () => {
+    const spy3: any = spyOn(addressTypesSandbox, 'deleteAddressType');
+    component.ngOnInit();
+    component.addressTypesGridOptions.context.eventSubject.next({type: "delete", data: new Salutation()});
     expect(spy3).toHaveBeenCalled();
   });
 
diff --git a/src/app/pages/admin/salutations/salutations-list/salutations-list.component.ts b/src/app/pages/admin/salutations/salutations-list/salutations-list.component.ts
index a763ef4..b54925d 100644
--- a/src/app/pages/admin/salutations/salutations-list/salutations-list.component.ts
+++ b/src/app/pages/admin/salutations/salutations-list/salutations-list.component.ts
@@ -11,11 +11,16 @@
  * SPDX-License-Identifier: EPL-2.0
  ********************************************************************************/
 import { SalutationsSandbox } from '@pages/admin/salutations/salutations.sandbox';
-import { SALUTATIONS_COLDEF } from '@pages/admin/salutations/salutations-list/salutations-list-column-definition';
+import { SALUTATIONS_COLDEF, COMMUNICATION_TYPES_COLDEF, PERSON_TYPES_COLDEF, ADDRESS_TYPES_COLDEF} from '@pages/admin/salutations/salutations-list/salutations-list-column-definition';
 import { Component, OnInit, OnDestroy } from '@angular/core';
 import { BaseList } from '@shared/components/base-components/base.list';
 import { SetFilterComponent } from '@shared/filters/ag-grid/set-filter/set-filter.component';
 import { Subscription } from 'rxjs';
+import { CommunicationTypesSandbox } from '../../communication-types/communication-types.sandbox';
+import { GridOptions } from 'ag-grid-community';
+import { Subject } from 'rxjs';
+import { PersonTypesSandbox } from '../../person-types/person-types.sandbox';
+import { AddressTypesSandbox } from '../../address-types/address-types.sandbox';
 
 @Component({
   selector: 'app-salutations-list',
@@ -23,21 +28,77 @@
   styleUrls: ['./salutations-list.component.scss'],
 })
 export class SalutationsListComponent extends BaseList implements OnInit, OnDestroy {
-  public columnDefinition: any = SALUTATIONS_COLDEF;
+  public salutationsColDef: any = SALUTATIONS_COLDEF;
+  public communicationsTypeColDef: any = COMMUNICATION_TYPES_COLDEF;
+  public personTypeColDef: any = PERSON_TYPES_COLDEF;
+  public addressTypeColDef: any = ADDRESS_TYPES_COLDEF;
   public frameworkComponents: { setFilterComponent: any };
   private _subscription: Subscription;
+  public isExpandableVisible = false;
 
-  constructor(public salutationsSandbox: SalutationsSandbox) {
+
+  public salutationEvents$: Subject<any> = new Subject();
+  public salutationGridOptions: GridOptions = {
+    context: {
+      eventSubject: this.salutationEvents$,
+    },
+    defaultColDef: {
+      filter: false,
+    },
+    suppressLoadingOverlay: true,
+  };
+
+  public communicationTypesEvents$: Subject<any> = new Subject();
+  public communicationTypesGridOptions: GridOptions = {
+    context: {
+      eventSubject: this.communicationTypesEvents$,
+    },
+    defaultColDef: {
+      filter: false,
+    },
+    suppressLoadingOverlay: true,
+  };
+
+  public personTypesEvents$: Subject<any> = new Subject();
+  public personTypesGridOptions: GridOptions = {
+    context: {
+      eventSubject: this.personTypesEvents$,
+    },
+    defaultColDef: {
+      filter: false,
+    },
+    suppressLoadingOverlay: true,
+  };
+
+  public addressTypesEvents$: Subject<any> = new Subject();
+  public addressTypesGridOptions: GridOptions = {
+    context: {
+      eventSubject: this.addressTypesEvents$,
+    },
+    defaultColDef: {
+      filter: false,
+    },
+    suppressLoadingOverlay: true,
+  };
+
+
+
+  constructor(public salutationsSandbox: SalutationsSandbox,
+              public communicationTypesSandbox: CommunicationTypesSandbox,
+              public personTypesSandbox: PersonTypesSandbox,
+              public addressTypesSandbox: AddressTypesSandbox) {
     super();
     this.frameworkComponents = { setFilterComponent: SetFilterComponent };
   }
 
   ngOnInit() {
-    this.gridOptions.context = {
-      ...this.gridOptions.context,
+
+    /********************************* Salutations  *********************************/
+    this.salutationGridOptions.context = {
+      ...this.salutationGridOptions.context,
       icons: { edit: true, delete: true },
     };
-    this._subscription = this.gridOptions.context.eventSubject.subscribe(event => {
+    this._subscription = this.salutationGridOptions.context.eventSubject.subscribe(event => {
       if (event.type === 'edit' || event.type === 'readonly') {
         this.salutationsSandbox.setDisplayForm();
         this.salutationsSandbox.loadSalutation(event.data.id);
@@ -46,9 +107,66 @@
         this.salutationsSandbox.deleteSalutation(event.data.id);
       }
     });
+
+
+    /********************************* Communication-Types  *********************************/
+    this.communicationTypesGridOptions.context = {
+      ...this.communicationTypesGridOptions.context,
+      icons: { edit: true, readonly: true, delete: true },
+    };
+    this._subscription = this.communicationTypesGridOptions.context.eventSubject.subscribe(event => {
+      if (event.type === 'edit' || event.type === 'readonly') {
+        this.communicationTypesSandbox.setDisplayForm(event.type);
+        this.communicationTypesSandbox.loadCommunicationType(event.data.id);
+      }
+      if (event.type === 'delete') {
+        this.communicationTypesSandbox.deleteCommunicationType(event.data.id);
+      }
+    });
+
+    /********************************* Person-Types  *********************************/
+    this.personTypesGridOptions.context = {
+      ...this.personTypesGridOptions.context,
+      icons: { edit: true, delete: true },
+    };
+    this._subscription = this.personTypesGridOptions.context.eventSubject.subscribe(event => {
+      if (event.type === 'edit' || event.type === 'readonly') {
+        this.personTypesSandbox.setDisplayForm();
+        this.personTypesSandbox.loadPersonType(event.data.id);
+      }
+      if (event.type === 'delete') {
+        this.personTypesSandbox.deletePersonType(event.data.id);
+      }
+    });
+
+    /********************************* Address-Types  *********************************/
+    this.addressTypesGridOptions.context = {
+      ...this.addressTypesGridOptions.context,
+      icons: { edit: true, delete: true },
+    };
+    this._subscription = this.addressTypesGridOptions.context.eventSubject.subscribe(event => {
+      if (event.type === 'edit' || event.type === 'readonly') {
+        this.addressTypesSandbox.setDisplayForm();
+        this.addressTypesSandbox.loadAddressType(event.data.id);
+      }
+      if (event.type === 'delete') {
+        this.addressTypesSandbox.deleteAddressType(event.data.id);
+      }
+    });
+
   }
 
+
+
+
+
   ngOnDestroy() {
     this._subscription.unsubscribe();
   }
+
+
+  private _initExpandableState() {
+    //this.isExpandableVisible = !!this.salutationsSandbox.companyContactId;
+  }
+
 }
diff --git a/src/app/pages/admin/salutations/salutations.resolver.spec.ts b/src/app/pages/admin/salutations/salutations.resolver.spec.ts
index ad69846..29e6a0e 100644
--- a/src/app/pages/admin/salutations/salutations.resolver.spec.ts
+++ b/src/app/pages/admin/salutations/salutations.resolver.spec.ts
@@ -3,17 +3,26 @@
 
 describe('SalutationsResolver', () => {
   let component: SalutationsResolver;
-  let salutationsSandbox: any;
-
-  beforeEach(async(() => {
-    salutationsSandbox = {
-      clear() {},
-      loadSalutations() {},
-    } as any;
-  }));
+  let communicationTypesSandbox: any = {
+    setDisplayForm: () => {},
+    loadCommunicationTypes: () => {},
+    deleteCommunicationType: () => {},};
+  let personTypesSandbox: any = {
+    setDisplayForm: () => {},
+    loadPersonTypes: () => {},
+    deletePersonType: () => {},};
+  let addressTypesSandbox: any = {
+    setDisplayForm: () => {},
+    loadAddressTypes: () => {},
+    deleteAddressType: () => {},};
+  const salutationsSandbox: any = {
+    setDisplayForm: () => {},
+    loadSalutations: () => {},
+    deleteSalutation: () => {},
+  };
 
   beforeEach(() => {
-    component = new SalutationsResolver(salutationsSandbox);
+    component = new SalutationsResolver(salutationsSandbox, communicationTypesSandbox, personTypesSandbox, addressTypesSandbox);
   });
 
   it('should create', () => {
diff --git a/src/app/pages/admin/salutations/salutations.resolver.ts b/src/app/pages/admin/salutations/salutations.resolver.ts
index 78538c2..f2b1fc3 100644
--- a/src/app/pages/admin/salutations/salutations.resolver.ts
+++ b/src/app/pages/admin/salutations/salutations.resolver.ts
@@ -15,13 +15,23 @@
 import { Injectable } from '@angular/core';
 import { Resolve } from '@angular/router';
 import { ILoadSalutationsSuccess } from '@shared/store/actions/admin/salutations.action';
+import { CommunicationTypesSandbox } from '../communication-types/communication-types.sandbox';
+import { PersonTypesSandbox } from '../person-types/person-types.sandbox';
+import { AddressTypesSandbox } from '../address-types/address-types.sandbox';
 
 @Injectable()
 export class SalutationsResolver implements Resolve<ILoadSalutationsSuccess> {
 
-  constructor(private salutationsSandbox: SalutationsSandbox) {}
+  constructor(private salutationsSandbox: SalutationsSandbox,
+    private communicationTypesSandbox: CommunicationTypesSandbox,
+    private personTypesSandbox: PersonTypesSandbox,
+    private addressTypesSandbox: AddressTypesSandbox) {}
 
   public resolve(): Observable<any> {
+    this.addressTypesSandbox.loadAddressTypes();
+    this.personTypesSandbox.loadPersonTypes();
+    this.communicationTypesSandbox.loadCommunicationTypes();
     return this.salutationsSandbox.loadSalutations();
   }
+
 }
diff --git a/src/app/pages/company/company-details/address-list/address-list.component.html b/src/app/pages/company/company-details/address-list/address-list.component.html
index b7e3056..94b10ad 100644
--- a/src/app/pages/company/company-details/address-list/address-list.component.html
+++ b/src/app/pages/company/company-details/address-list/address-list.component.html
@@ -19,14 +19,15 @@
 </div>
 
 <ag-grid-angular
-  autoResizeColumns
-  class="ag-theme-balham ag-grid-height"
+  class="ag-theme-balham"
   style="width: 100%; height: 100%;"
+  [domLayout]="'autoHeight'"
   [gridOptions]="gridOptions"
   [rowData]="companyDetailsSandBox.addressList$ | async"
   [columnDefs]="columnDefinition"
   [rowSelection]="'single'"
   [overlayNoRowsTemplate]="noRowsTemplate"
+  (gridReady)="onGridReady($event)"
 >
 </ag-grid-angular>
 
diff --git a/src/app/pages/company/company-details/address-list/address-list.component.scss b/src/app/pages/company/company-details/address-list/address-list.component.scss
index 3205657..eaf16e7 100644
--- a/src/app/pages/company/company-details/address-list/address-list.component.scss
+++ b/src/app/pages/company/company-details/address-list/address-list.component.scss
@@ -10,13 +10,17 @@
  *
  * SPDX-License-Identifier: EPL-2.0
  ********************************************************************************/
-.diverse-options {
+ .ag-theme-balham ::ng-deep.ag-root-wrapper {
+  border: none;
+  border-top: 1px solid #bdc3c7;
+}
+
+ .diverse-options {
   display: flex;
   justify-content: flex-end;
   align-content: center;
   background-color: #f5f7f7;
-  border: 1px solid rgb(189, 195, 199);
-  padding: 7px 7px 5px 7px;
+  padding: 7px;
   margin-bottom: 1px;
 }
 
@@ -25,3 +29,9 @@
   padding-right: 7px;
   border-right: solid 1px #ddd;
 }
+
+:host {
+  display: flex;
+  flex-direction: column;
+  height: 100%;
+}
diff --git a/src/app/pages/company/company-details/address-list/address-list.component.spec.ts b/src/app/pages/company/company-details/address-list/address-list.component.spec.ts
index 636deee..f489670 100644
--- a/src/app/pages/company/company-details/address-list/address-list.component.spec.ts
+++ b/src/app/pages/company/company-details/address-list/address-list.component.spec.ts
@@ -17,8 +17,10 @@
 describe('AddressListComponent', () => {
   let component: CompanyAddressListComponent;
   let companySandbox: any;
+  let agApi: any;
 
   beforeEach(async(() => {
+    agApi =  { setDomLayout() {} }
     companySandbox = {
       registerAddressEvents() {},
       registerCompanyEvents() {},
@@ -26,6 +28,8 @@
       deleteAddress() {},
       newAddressData() {},
     } as any;
+    companySandbox.addressAgApi = agApi;
+    //companySandbox.communicationsAgApi = { setDomLayout() {} };
   }));
 
   beforeEach(() => {
diff --git a/src/app/pages/company/company-details/address-list/address-list.component.ts b/src/app/pages/company/company-details/address-list/address-list.component.ts
index 37cf28c..a4d46d0 100644
--- a/src/app/pages/company/company-details/address-list/address-list.component.ts
+++ b/src/app/pages/company/company-details/address-list/address-list.component.ts
@@ -12,20 +12,22 @@
  ********************************************************************************/
 import { CompanyDetailsSandBox } from '@pages/company/company-details/company-details.sandbox';
 import { BaseList } from '@shared/components/base-components/base.list';
-import { Component, EventEmitter, Output } from '@angular/core';
+import { Component, EventEmitter, Output, OnInit } from '@angular/core';
 import { ADDRESS_LIST_COLDEF } from '@shared/components/column-definitions/addresses-data-list-column-definition';
 import { Globals } from '@shared/constants/globals';
+import { Subscription } from 'rxjs';
 
 @Component({
   selector: 'app-company-address-list',
   templateUrl: './address-list.component.html',
   styleUrls: ['./address-list.component.scss'],
 })
-export class CompanyAddressListComponent extends BaseList {
+export class CompanyAddressListComponent extends BaseList implements OnInit {
   @Output() companyDetailsIdLoaded: EventEmitter<string> = new EventEmitter();
   @Output() createNewCompany: EventEmitter<string> = new EventEmitter();
 
   public columnDefinition = ADDRESS_LIST_COLDEF;
+  private _subscription: Subscription;
 
   constructor(public companyDetailsSandBox: CompanyDetailsSandBox) {
     super();
@@ -41,7 +43,7 @@
       icons: { edit: true, delete: true },
     };
 
-    this.gridOptions.context.eventSubject.subscribe(event => {
+    this._subscription = this.gridOptions.context.eventSubject.subscribe(event => {
       if (event.type === 'edit' || event.type === 'readonly') {
         this.companyDetailsIdLoaded.emit(event.data.id);
       }
@@ -54,5 +56,10 @@
   public createNewAddressForm() {
     this.companyDetailsSandBox.newAddressData();
     this.createNewCompany.emit(null);
+    this.companyDetailsSandBox.addressAgApi.setDomLayout('normal');
+  }
+
+  onGridReady(params) {
+    this.companyDetailsSandBox.addressAgApi = params.api;
   }
 }
diff --git a/src/app/pages/company/company-details/communications-data-list/communications-data-list.component.html b/src/app/pages/company/company-details/communications-data-list/communications-data-list.component.html
index bf515bc..93ccf26 100644
--- a/src/app/pages/company/company-details/communications-data-list/communications-data-list.component.html
+++ b/src/app/pages/company/company-details/communications-data-list/communications-data-list.component.html
@@ -18,16 +18,17 @@
   </div>
 </div>
 
-<ag-grid-angular
-  autoResizeColumns
-  class="ag-theme-balham ag-grid-height"
+  <ag-grid-angular
+  class="ag-theme-balham"
   style="width: 100%; height: 100%;"
+  [domLayout]="'autoHeight'"
   [gridOptions]="gridOptions"
   [rowData]="companyDetailsSandBox.communicationsDataList$ | async"
   [columnDefs]="columnDefinition"
   [rowSelection]="'single'"
   [overlayNoRowsTemplate]="noRowsTemplate"
->
+  (gridReady)="onGridReady($event)"
+  >
 </ag-grid-angular>
 
 <app-spinner [isRunning]="companyDetailsSandBox.communicationsDataListLoading$ | async"></app-spinner>
diff --git a/src/app/pages/company/company-details/communications-data-list/communications-data-list.component.scss b/src/app/pages/company/company-details/communications-data-list/communications-data-list.component.scss
index 63a5ad3..e116c52 100644
--- a/src/app/pages/company/company-details/communications-data-list/communications-data-list.component.scss
+++ b/src/app/pages/company/company-details/communications-data-list/communications-data-list.component.scss
@@ -10,13 +10,17 @@
  *
  * SPDX-License-Identifier: EPL-2.0
  ********************************************************************************/
+.ag-theme-balham ::ng-deep.ag-root-wrapper {
+  border: none;
+  border-top: 1px solid #bdc3c7;
+}
+
  .diverse-options {
 	display: flex;
 	justify-content: flex-end;
 	align-content: center;
 	background-color: #f5f7f7;
-	border: 1px solid rgb(189, 195, 199);
-	padding: 7px 7px 5px 7px;
+	padding: 7px;
 	margin-bottom: 1px;
 }
 
@@ -25,3 +29,9 @@
 	padding-right: 7px;
 	border-right: solid 1px #ddd;
 }
+
+:host {
+  display: flex;
+  flex-direction: column;
+  height: 100%;
+}
diff --git a/src/app/pages/company/company-details/communications-data-list/communications-data-list.component.spec.ts b/src/app/pages/company/company-details/communications-data-list/communications-data-list.component.spec.ts
index c5b8adc..2b1293d 100644
--- a/src/app/pages/company/company-details/communications-data-list/communications-data-list.component.spec.ts
+++ b/src/app/pages/company/company-details/communications-data-list/communications-data-list.component.spec.ts
@@ -26,6 +26,7 @@
       deleteCommunicationsData() {},
       newCommunicationsData() {},
     } as any;
+    companySandbox.communicationsAgApi = { setDomLayout() {} };
   }));
 
   beforeEach(() => {
diff --git a/src/app/pages/company/company-details/communications-data-list/communications-data-list.component.ts b/src/app/pages/company/company-details/communications-data-list/communications-data-list.component.ts
index 5472c46..369d5a0 100644
--- a/src/app/pages/company/company-details/communications-data-list/communications-data-list.component.ts
+++ b/src/app/pages/company/company-details/communications-data-list/communications-data-list.component.ts
@@ -12,36 +12,40 @@
  ********************************************************************************/
 import { CompanyDetailsSandBox } from '@pages/company/company-details/company-details.sandbox';
 import { BaseList } from '@shared/components/base-components/base.list';
-import { Component, EventEmitter, Output } from '@angular/core';
+import { Component, EventEmitter, Output, OnInit, OnDestroy } from '@angular/core';
 import { COMMUNICATIONS_DATA_LIST_COLDEF } from '@shared/components/column-definitions/communications-data-list-column-definition';
 import { Globals } from '@shared/constants/globals';
+import { Subscription } from 'rxjs';
 
 @Component({
   selector: 'app-company-communications-data-list',
   templateUrl: './communications-data-list.component.html',
   styleUrls: ['./communications-data-list.component.scss'],
 })
-export class CompanyCommunicationsDataListComponent extends BaseList {
+export class CompanyCommunicationsDataListComponent extends BaseList implements OnInit, OnDestroy {
   @Output() companyDetailsIdLoaded: EventEmitter<string> = new EventEmitter();
   @Output() createNewCompany: EventEmitter<string> = new EventEmitter();
 
   public columnDefinition = COMMUNICATIONS_DATA_LIST_COLDEF;
+  private _subscription: Subscription;
 
   constructor(public companyDetailsSandBox: CompanyDetailsSandBox) {
     super();
   }
 
   ngOnInit() {
+
     this.gridOptions = {
       ...this.gridOptions,
       localeText: Globals.LOCALE_TEXT,
     };
+
     this.gridOptions.context = {
       ...this.gridOptions.context,
       icons: { edit: true, delete: true },
     };
 
-    this.gridOptions.context.eventSubject.subscribe(event => {
+    this._subscription = this.gridOptions.context.eventSubject.subscribe(event => {
       if (event.type === 'edit' || event.type === 'readonly') {
         this.companyDetailsIdLoaded.emit(event.data.id);
       }
@@ -54,5 +58,14 @@
   public createNewCommunicationsDataForm() {
     this.companyDetailsSandBox.newCommunicationsData();
     this.createNewCompany.emit(null);
+    this.companyDetailsSandBox.communicationsAgApi.setDomLayout('normal');
+  }
+
+  onGridReady(params) {
+    this.companyDetailsSandBox.communicationsAgApi = params.api;
+  }
+
+  ngOnDestroy() {
+    this._subscription.unsubscribe();
   }
 }
diff --git a/src/app/pages/company/company-details/company-details.component.html b/src/app/pages/company/company-details/company-details.component.html
index 0833496..0a4025d 100644
--- a/src/app/pages/company/company-details/company-details.component.html
+++ b/src/app/pages/company/company-details/company-details.component.html
@@ -82,7 +82,7 @@
         <div class="row justify-content-between">
           <div>
             <button *visibleByRight type="button" class="btn btn-success company-buttons" (click)="companyDetailsSandBox.persistCompany()">{{ 'SaveBtn' | translate }}</button>
-            <button type="button" class="btn btn-primary cancel-button company-buttons" routerLink="/overview">
+            <button type="button" class="btn btn-primary cancel-button company-buttons" (click)="companyDetailsSandBox.navigateTo('/overview')">
               {{ 'CancelBtn' | translate }}
             </button>
           </div>
diff --git a/src/app/pages/company/company-details/company-details.component.scss b/src/app/pages/company/company-details/company-details.component.scss
index 35a3e5c..4fb220b 100644
--- a/src/app/pages/company/company-details/company-details.component.scss
+++ b/src/app/pages/company/company-details/company-details.component.scss
@@ -13,51 +13,43 @@
 .company-buttons {
   margin: 16px;
 }
+
 .expandable-body-container {
   display: flex;
   flex-direction: row;
   height: 100%;
 }
+
 .table-detail-view-address {
-  height: 756px;
   width: 461px;
   min-width: 461px;
+  border-right: 1px solid #bdc3c7;
 }
+
 .table-view-address {
-  height: 711px;
   flex-grow: 1;
 }
-.expandable-address .collapse5 {
-  height: 758px;
-}
+
 .table-detail-view-communication {
-  height: 296px;
   width: 461px;
   min-width: 461px;
+  border-right: 1px solid #bdc3c7;
 }
+
 .table-view-communication {
-  height: 263px;
   flex-grow: 1;
 }
-.expandable-communication .collapse5 {
-  height: 310px;
-}
+
 .table-view-contact-persons {
-  height: 250px;
   flex-grow: 1;
 }
-.expandable-contact-persons .collapse5 {
-  height: 297px;
-}
+
 .table-detail-view-module-assignment {
-  height: 336px;
   width: 461px;
   min-width: 461px;
+  border-right: 1px solid #bdc3c7;
 }
+
 .table-view-module-assignment {
-  height: 290px;
   flex-grow: 1;
 }
-.expandable-module-assignment .collapse5 {
-  height: 338px;
-}
diff --git a/src/app/pages/company/company-details/company-details.sandbox.spec.ts b/src/app/pages/company/company-details/company-details.sandbox.spec.ts
index ce2f7cf..ff4cc9b 100644
--- a/src/app/pages/company/company-details/company-details.sandbox.spec.ts
+++ b/src/app/pages/company/company-details/company-details.sandbox.spec.ts
@@ -23,17 +23,23 @@
   let actionSubject: any;
   let router: any;
   let modalService: any;
+  let ngZone: any;
+  let agApi: any;
 
   beforeEach(async(() => {
+    agApi =  { setDomLayout() {} }
     router = { navigateByUrl() {} } as any;
     appState = { dispatch: () => {}, pipe: () => of(true), select: () => of(true) } as any;
     actionSubject = { pipe: () => of(true) } as any;
     utilService = { displayNotification: () => {} } as any;
     modalService = { open() {} } as any;
+    ngZone = { run() {} } as any;
   }));
 
   beforeEach(() => {
-    component = new CompanyDetailsSandBox(appState, actionSubject, utilService, router, modalService);
+    component = new CompanyDetailsSandBox(appState, actionSubject, utilService, router, modalService, ngZone);
+    component.communicationsAgApi = agApi;
+    component.addressAgApi = agApi;
   });
 
   it('should create', () => {
diff --git a/src/app/pages/company/company-details/company-details.sandbox.ts b/src/app/pages/company/company-details/company-details.sandbox.ts
index c2367ff..687ceab 100644
--- a/src/app/pages/company/company-details/company-details.sandbox.ts
+++ b/src/app/pages/company/company-details/company-details.sandbox.ts
@@ -11,7 +11,7 @@
  * SPDX-License-Identifier: EPL-2.0
  ********************************************************************************/
 import { BaseSandbox } from '@shared/sandbox/base.sandbox';
-import { Injectable } from '@angular/core';
+import { Injectable, NgZone } from '@angular/core';
 import * as companyActions from '@shared/store/actions/company/company.action';
 import { FormGroupState, SetValueAction, ResetAction } from 'ngrx-forms';
 import { Company, CommunicationsData, CommunicationType, ContactPerson, Address } from '@shared/models';
@@ -52,6 +52,8 @@
   public companyContactId: string;
   public contactPersonsList$: Observable<Array<ContactPerson>> = this.appState$.select(store.getCompanyContactPersonsData);
   public contactPersonsListLoading$: Observable<boolean> = this.appState$.select(store.getCompanyContactPersonsLoading);
+  public communicationsAgApi;
+  public addressAgApi;
 
   private _communicationTypes: Array<CommunicationType> = new Array<CommunicationType>();
   private _mainAddress: Address;
@@ -64,7 +66,8 @@
     protected actionsSubject: ActionsSubject,
     protected utilService: UtilService,
     protected router: Router,
-    protected modalService: NgbModal
+    protected modalService: NgbModal,
+    private ngZone: NgZone
   ) {
     super(appState$);
 
@@ -189,6 +192,7 @@
     this.loadCommunicationsData(this.companyContactId);
     this.clearCommunicationsData();
     this.isCommunicationsDataDetailViewVisible = false;
+    this.communicationsAgApi.setDomLayout('autoHeight');
   }
 
   public newCommunicationsData(): void {
@@ -237,6 +241,7 @@
   public closeAddressDataDetail(): void {
     this.clearAddressData();
     this.isAddressDataDetailViewVisible = false;
+    this.addressAgApi.setDomLayout('autoHeight');
   }
 
   public newAddressData(): void {
@@ -312,4 +317,8 @@
   private _checkIfCurrentAddressIsMainAddress(address: Address): void {
     this.isCurrentAddressMainAddress = address.isMainAddress;
   }
+
+  public navigateTo(url: any) {
+    this.ngZone.run(() => this.router.navigate([url]));
+  }
 }
diff --git a/src/app/pages/company/company-details/contact-person-details/address-list/address-list.component.html b/src/app/pages/company/company-details/contact-person-details/address-list/address-list.component.html
index 69cbcb0..c4ec4b7 100644
--- a/src/app/pages/company/company-details/contact-person-details/address-list/address-list.component.html
+++ b/src/app/pages/company/company-details/contact-person-details/address-list/address-list.component.html
@@ -19,13 +19,15 @@
 </div>
 
 <ag-grid-angular
-  autoResizeColumns
-  class="ag-theme-balham ag-grid-height"
+  class="ag-theme-balham"
   style="width: 100%; height: 100%;"
+  [domLayout]="'autoHeight'"
   [gridOptions]="gridOptions"
   [rowData]="contactPersonDetailsSandbox.addressList$ | async"
   [columnDefs]="columnDefinition"
   [rowSelection]="'single'"
+  [overlayNoRowsTemplate]="noRowsTemplate"
+  (gridReady)="onGridReady($event)"
 >
 </ag-grid-angular>
 <app-spinner [isRunning]="contactPersonDetailsSandbox.addressListLoading$ | async"></app-spinner>
diff --git a/src/app/pages/company/company-details/contact-person-details/address-list/address-list.component.scss b/src/app/pages/company/company-details/contact-person-details/address-list/address-list.component.scss
index 63a5ad3..9b9ebee 100644
--- a/src/app/pages/company/company-details/contact-person-details/address-list/address-list.component.scss
+++ b/src/app/pages/company/company-details/contact-person-details/address-list/address-list.component.scss
@@ -10,13 +10,17 @@
  *
  * SPDX-License-Identifier: EPL-2.0
  ********************************************************************************/
+ .ag-theme-balham ::ng-deep.ag-root-wrapper {
+  border: none;
+  border-top: 1px solid #bdc3c7;
+}
+
  .diverse-options {
 	display: flex;
 	justify-content: flex-end;
 	align-content: center;
 	background-color: #f5f7f7;
-	border: 1px solid rgb(189, 195, 199);
-	padding: 7px 7px 5px 7px;
+  padding: 7px;
 	margin-bottom: 1px;
 }
 
@@ -25,3 +29,9 @@
 	padding-right: 7px;
 	border-right: solid 1px #ddd;
 }
+
+:host {
+  display: flex;
+  flex-direction: column;
+  height: 100%;
+}
diff --git a/src/app/pages/company/company-details/contact-person-details/address-list/address-list.component.spec.ts b/src/app/pages/company/company-details/contact-person-details/address-list/address-list.component.spec.ts
index 4b9486b..f6e2b5a 100644
--- a/src/app/pages/company/company-details/contact-person-details/address-list/address-list.component.spec.ts
+++ b/src/app/pages/company/company-details/contact-person-details/address-list/address-list.component.spec.ts
@@ -17,8 +17,10 @@
 describe('AddressListComponent', () => {
   let component: ContactPersonAddressListComponent;
   let contactPersonDetailsSandbox: any;
+  let agApi: any;
 
   beforeEach(async(() => {
+    agApi =  { setDomLayout() {} }
     contactPersonDetailsSandbox = {
       registerAddressEvents() {},
       registerCompanyEvents() {},
@@ -26,6 +28,7 @@
       deleteAddress() {},
       newAddressData() {},
     } as any;
+    contactPersonDetailsSandbox.addressAgApi = agApi;
   }));
 
   beforeEach(() => {
diff --git a/src/app/pages/company/company-details/contact-person-details/address-list/address-list.component.ts b/src/app/pages/company/company-details/contact-person-details/address-list/address-list.component.ts
index 8431253..cab5844 100644
--- a/src/app/pages/company/company-details/contact-person-details/address-list/address-list.component.ts
+++ b/src/app/pages/company/company-details/contact-person-details/address-list/address-list.component.ts
@@ -56,6 +56,11 @@
   public createNewAddressForm() {
     this.contactPersonDetailsSandbox.newAddressData();
     this.createNewAddress.emit(null);
+    this.contactPersonDetailsSandbox.addressAgApi.setDomLayout('normal');
+  }
+
+  onGridReady(params) {
+    this.contactPersonDetailsSandbox.addressAgApi = params.api;
   }
 
   ngOnDestroy() {
diff --git a/src/app/pages/company/company-details/contact-person-details/communications-data-list/communications-data-list.component.html b/src/app/pages/company/company-details/contact-person-details/communications-data-list/communications-data-list.component.html
index e5638df..234a697 100644
--- a/src/app/pages/company/company-details/contact-person-details/communications-data-list/communications-data-list.component.html
+++ b/src/app/pages/company/company-details/contact-person-details/communications-data-list/communications-data-list.component.html
@@ -19,15 +19,15 @@
 </div>
 
 <ag-grid-angular
-  autoResizeColumns
-  class="ag-theme-balham ag-grid-height"
+  class="ag-theme-balham"
   style="width: 100%; height: 100%;"
+  [domLayout]="'autoHeight'"
   [gridOptions]="gridOptions"
   [rowData]="contactPersonDetailsSandbox.communicationsDataList$ | async"
   [columnDefs]="columnDefinition"
   [rowSelection]="'single'"
-  [overlayLoadingTemplate]="loadingTemplate"
   [overlayNoRowsTemplate]="noRowsTemplate"
+  (gridReady)="onGridReady($event)"
 >
 </ag-grid-angular>
 <app-spinner [isRunning]="contactPersonDetailsSandbox.communicationsDataListLoading$ | async"></app-spinner>
diff --git a/src/app/pages/company/company-details/contact-person-details/communications-data-list/communications-data-list.component.scss b/src/app/pages/company/company-details/contact-person-details/communications-data-list/communications-data-list.component.scss
index 63a5ad3..e116c52 100644
--- a/src/app/pages/company/company-details/contact-person-details/communications-data-list/communications-data-list.component.scss
+++ b/src/app/pages/company/company-details/contact-person-details/communications-data-list/communications-data-list.component.scss
@@ -10,13 +10,17 @@
  *
  * SPDX-License-Identifier: EPL-2.0
  ********************************************************************************/
+.ag-theme-balham ::ng-deep.ag-root-wrapper {
+  border: none;
+  border-top: 1px solid #bdc3c7;
+}
+
  .diverse-options {
 	display: flex;
 	justify-content: flex-end;
 	align-content: center;
 	background-color: #f5f7f7;
-	border: 1px solid rgb(189, 195, 199);
-	padding: 7px 7px 5px 7px;
+	padding: 7px;
 	margin-bottom: 1px;
 }
 
@@ -25,3 +29,9 @@
 	padding-right: 7px;
 	border-right: solid 1px #ddd;
 }
+
+:host {
+  display: flex;
+  flex-direction: column;
+  height: 100%;
+}
diff --git a/src/app/pages/company/company-details/contact-person-details/communications-data-list/communications-data-list.component.spec.ts b/src/app/pages/company/company-details/contact-person-details/communications-data-list/communications-data-list.component.spec.ts
index abb265b..8c3be7f 100644
--- a/src/app/pages/company/company-details/contact-person-details/communications-data-list/communications-data-list.component.spec.ts
+++ b/src/app/pages/company/company-details/contact-person-details/communications-data-list/communications-data-list.component.spec.ts
@@ -17,8 +17,10 @@
 describe('ContactPersonCommunicationsDataListComponent', () => {
   let component: ContactPersonCommunicationsDataListComponent;
   let contactPersonDetailsSandbox: any;
+  let agApi: any;
 
   beforeEach(async(() => {
+    agApi =  { setDomLayout() {} }
     contactPersonDetailsSandbox = {
       registerCommunicationsDataEvents() {},
       registerCompanyEvents() {},
@@ -26,6 +28,7 @@
       deleteCommunicationsData() {},
       newCommunicationsData() {},
     } as any;
+    contactPersonDetailsSandbox.communicationsAgApi = agApi;
   }));
 
   beforeEach(() => {
diff --git a/src/app/pages/company/company-details/contact-person-details/communications-data-list/communications-data-list.component.ts b/src/app/pages/company/company-details/contact-person-details/communications-data-list/communications-data-list.component.ts
index 457a323..6369b86 100644
--- a/src/app/pages/company/company-details/contact-person-details/communications-data-list/communications-data-list.component.ts
+++ b/src/app/pages/company/company-details/contact-person-details/communications-data-list/communications-data-list.component.ts
@@ -55,6 +55,11 @@
   public createNewCommunicationsDataForm() {
     this.contactPersonDetailsSandbox.newCommunicationsData();
     this.createNewCompany.emit(null);
+    this.contactPersonDetailsSandbox.communicationsAgApi.setDomLayout('normal');
+  }
+
+  onGridReady(params) {
+    this.contactPersonDetailsSandbox.communicationsAgApi = params.api;
   }
 
   ngOnDestroy() {
diff --git a/src/app/pages/company/company-details/contact-person-details/contact-person-details.component.scss b/src/app/pages/company/company-details/contact-person-details/contact-person-details.component.scss
index 9de3904..5ba1b88 100644
--- a/src/app/pages/company/company-details/contact-person-details/contact-person-details.component.scss
+++ b/src/app/pages/company/company-details/contact-person-details/contact-person-details.component.scss
@@ -18,41 +18,37 @@
   flex-direction: row;
   height: 100%;
 }
+
 .table-detail-view-address {
-  height: 756px;
-  width: 461px;
-}
-.table-view-address {
-  height: 711px;
-  flex-grow: 1;
-}
-.expandable-address .collapse5 {
-  height: 758px;
-}
-.table-detail-view-communication {
-  height: 296px;
-  width: 461px;
-}
-.table-view-communication {
-  height: 263px;
-  flex-grow: 1;
-}
-.expandable-communication .collapse5 {
-  height: 310px;
-}
-.table-view-contact-persons {
-  height: 250px;
-  flex-grow: 1;
-}
-.table-detail-view-module-assignment {
-  height: 336px;
   width: 461px;
   min-width: 461px;
+  border-right: 1px solid #bdc3c7;
 }
-.table-view-module-assignment {
-  height: 290px;
+
+.table-view-address {
   flex-grow: 1;
 }
-.expandable-module-assignment .collapse5 {
-  height: 338px;
+
+.table-detail-view-communication {
+  width: 461px;
+  min-width: 461px;
+  border-right: 1px solid #bdc3c7;
+}
+
+.table-view-communication {
+  flex-grow: 1;
+}
+
+.table-view-contact-persons {
+  flex-grow: 1;
+}
+
+.table-detail-view-module-assignment {
+  width: 461px;
+  min-width: 461px;
+  border-right: 1px solid #bdc3c7;
+}
+
+.table-view-module-assignment {
+  flex-grow: 1;
 }
diff --git a/src/app/pages/company/company-details/contact-person-details/contact-person-details.sandbox.spec.ts b/src/app/pages/company/company-details/contact-person-details/contact-person-details.sandbox.spec.ts
index 583b1e6..c385db2 100644
--- a/src/app/pages/company/company-details/contact-person-details/contact-person-details.sandbox.spec.ts
+++ b/src/app/pages/company/company-details/contact-person-details/contact-person-details.sandbox.spec.ts
@@ -25,8 +25,10 @@
   let actionSubject: any;
   let router: any;
   let modalService: any;
+  let agApi: any;
 
   beforeEach(async(() => {
+    agApi =  { setDomLayout() {} }
     router = { navigate() {} } as any;
     appState = { dispatch: () => {}, pipe: () => of(true), select: () => of(true) } as any;
     actionSubject = { pipe: () => of(true) } as any;
@@ -36,6 +38,8 @@
 
   beforeEach(() => {
     component = new ContactPersonDetailsSandbox(appState, actionSubject, router, utilService, modalService);
+    component.communicationsAgApi = agApi;
+    component.addressAgApi = agApi;
   });
 
   it('should create', () => {
diff --git a/src/app/pages/company/company-details/contact-person-details/contact-person-details.sandbox.ts b/src/app/pages/company/company-details/contact-person-details/contact-person-details.sandbox.ts
index abc1c1a..ea61025 100644
--- a/src/app/pages/company/company-details/contact-person-details/contact-person-details.sandbox.ts
+++ b/src/app/pages/company/company-details/contact-person-details/contact-person-details.sandbox.ts
@@ -52,6 +52,9 @@
   public companyContactId: string;
   public contactPersonContactId: string;
 
+  public communicationsAgApi;
+  public addressAgApi;
+
   private _communicationTypes: Array<CommunicationType> = new Array<CommunicationType>();
 
   constructor(
@@ -142,6 +145,7 @@
   public closeAddressDataDetail(): void {
     this.clearAddressData();
     this.isAddressDataDetailViewVisible = false;
+    this.addressAgApi.setDomLayout('autoHeight');
   }
 
   public newAddressData(): void {
@@ -227,6 +231,7 @@
     this.loadContactPersonCommunicationsData(this.companyContactId);
     this.clearCommunicationsData();
     this.isCommunicationsDataDetailViewVisible = false;
+    this.communicationsAgApi.setDomLayout('autoHeight');
   }
 
   public newCommunicationsData(): void {
diff --git a/src/app/pages/company/company-details/contact-person-list/contact-person-list-column-definition.ts b/src/app/pages/company/company-details/contact-person-list/contact-person-list-column-definition.ts
index 73324cc..134d9fd 100644
--- a/src/app/pages/company/company-details/contact-person-list/contact-person-list-column-definition.ts
+++ b/src/app/pages/company/company-details/contact-person-list/contact-person-list-column-definition.ts
@@ -17,36 +17,43 @@
     field: 'lastName',
     headerName: 'ContactPerson.LastName',
     sortable: true,
+    flex: 3
   },
   {
     field: 'firstName',
     headerName: 'ContactPerson.FirstName',
     sortable: true,
+    flex: 3
   },
   {
     field: 'salutationType',
     headerName: 'ContactPerson.Salutation',
     sortable: true,
+    flex: 1
   },
   {
     field: 'title',
     headerName: 'ContactPerson.PersonTitle',
     sortable: true,
+    flex: 1
   },
   {
     field: 'email',
     headerName: 'ContactPerson.EMail',
     sortable: true,
+    flex: 3
   },
   {
     field: 'personType',
     headerName: 'ContactPerson.PersonType',
     sortable: true,
+    flex: 2
   },
   {
     field: 'contactNote',
     headerName: 'Contacts.Note',
     sortable: true,
+    flex: 3
   },
   {
     field: 'tools',
diff --git a/src/app/pages/company/company-details/contact-person-list/contact-person-list.component.html b/src/app/pages/company/company-details/contact-person-list/contact-person-list.component.html
index 6f48084..63f76d8 100644
--- a/src/app/pages/company/company-details/contact-person-list/contact-person-list.component.html
+++ b/src/app/pages/company/company-details/contact-person-list/contact-person-list.component.html
@@ -19,9 +19,9 @@
 </div>
 
 <ag-grid-angular
-  autoResizeColumns
-  class="ag-theme-balham ag-grid-height"
+  class="ag-theme-balham"
   style="width: 100%; height: 100%;"
+  [domLayout]="'autoHeight'"
   [gridOptions]="gridOptions"
   [rowData]="companyDetailsSandBox.contactPersonsList$ | async"
   [columnDefs]="columnDefinition"
diff --git a/src/app/pages/company/company-details/contact-person-list/contact-person-list.component.scss b/src/app/pages/company/company-details/contact-person-list/contact-person-list.component.scss
index 3205657..eaf16e7 100644
--- a/src/app/pages/company/company-details/contact-person-list/contact-person-list.component.scss
+++ b/src/app/pages/company/company-details/contact-person-list/contact-person-list.component.scss
@@ -10,13 +10,17 @@
  *
  * SPDX-License-Identifier: EPL-2.0
  ********************************************************************************/
-.diverse-options {
+ .ag-theme-balham ::ng-deep.ag-root-wrapper {
+  border: none;
+  border-top: 1px solid #bdc3c7;
+}
+
+ .diverse-options {
   display: flex;
   justify-content: flex-end;
   align-content: center;
   background-color: #f5f7f7;
-  border: 1px solid rgb(189, 195, 199);
-  padding: 7px 7px 5px 7px;
+  padding: 7px;
   margin-bottom: 1px;
 }
 
@@ -25,3 +29,9 @@
   padding-right: 7px;
   border-right: solid 1px #ddd;
 }
+
+:host {
+  display: flex;
+  flex-direction: column;
+  height: 100%;
+}
diff --git a/src/app/pages/contacts/contacts-list/contacts-list.component.html b/src/app/pages/contacts/contacts-list/contacts-list.component.html
index da0841e..37eaa60 100644
--- a/src/app/pages/contacts/contacts-list/contacts-list.component.html
+++ b/src/app/pages/contacts/contacts-list/contacts-list.component.html
@@ -150,6 +150,7 @@
       autoResizeColumns
       class="ag-theme-balham"
       style="min-width: 1130px; height: calc(100vh - 276px);"
+      (rowDoubleClicked) = "navigateToDetails($event)"
       [gridOptions]="gridOptions"
       [columnDefs]="columnDefinition"
       [rowSelection]="'single'"
diff --git a/src/app/pages/contacts/contacts-list/contacts-list.component.spec.ts b/src/app/pages/contacts/contacts-list/contacts-list.component.spec.ts
index a16f1c1..2d92c7e 100644
--- a/src/app/pages/contacts/contacts-list/contacts-list.component.spec.ts
+++ b/src/app/pages/contacts/contacts-list/contacts-list.component.spec.ts
@@ -20,10 +20,12 @@
   let contactsSandbox: any = {};
   let userModuleAssignmentSandbox: any = {};
   let router: any = {};
+  let ngZone: any = {};
 
   beforeEach(() => {
     router = { navigateByUrl() {}, navigate() {} } as any;
-    component = new ContactsListComponent(contactsSandbox, userModuleAssignmentSandbox, router);
+    ngZone = { run() {} } as any;
+    component = new ContactsListComponent(contactsSandbox, userModuleAssignmentSandbox, router, ngZone);
   });
 
   it('should create', () => {
@@ -61,8 +63,8 @@
     expect(spy).toHaveBeenCalled();
   });
 
-  it('should _navigateToDetails if BusEvents is edit ', () => {
-    const spy = spyOn(component as any, '_navigateToDetails');
+  it('should navigateToDetails if BusEvents is edit ', () => {
+    const spy = spyOn(component as any, 'navigateToDetails');
     const event: any = { type: 'edit' };
     (component as any)._handleBusEvents(event);
 
@@ -84,11 +86,15 @@
   });
 
   it('should navigate to the right url', () => {
-    const spy = spyOn(router, 'navigate');
+    const url = '/test';
+    const spy = spyOn(ngZone, 'run');
+    component.navigateTo(url);
+    expect(spy).toHaveBeenCalled();
+
+    /* const spy = spyOn(router, 'navigate');
     const url = '/test';
     component.navigateTo(url);
-
-    expect(spy).toHaveBeenCalledWith([url]);
+    expect(spy).toHaveBeenCalledWith([url]); */
   });
 
   it('should navigate to the external person details page', () => {
@@ -98,11 +104,15 @@
         uuid: 'uuid',
       },
     };
-    const spy = spyOn(router, 'navigate');
-    (component as any)._navigateToDetails(event);
-    const url = `/${Globals.PATH.PERSONS}/${Globals.PATH.EXTERNAL}/`;
 
-    expect(spy).toHaveBeenCalledWith([url, event.data.uuid]);
+    const spy = spyOn(ngZone, 'run');
+    component.navigateToDetails(event);
+    expect(spy).toHaveBeenCalled();
+
+    /* const spy = spyOn(router, 'navigate');
+    (component as any).navigateToDetails(event);
+    const url = `/${Globals.PATH.PERSONS}/${Globals.PATH.EXTERNAL}/`;
+    expect(spy).toHaveBeenCalledWith([url, event.data.uuid]); */
   });
 
   it('should navigate to the internal person details page', () => {
@@ -112,11 +122,14 @@
         uuid: 'uuid',
       },
     };
-    const spy = spyOn(router, 'navigate');
-    (component as any)._navigateToDetails(event);
-    const url = `/${Globals.PATH.PERSONS}/${Globals.PATH.INTERNAL}/`;
 
-    expect(spy).toHaveBeenCalledWith([url, event.data.uuid]);
+    const spy = spyOn(ngZone, 'run');
+    component.navigateToDetails(event);
+    expect(spy).toHaveBeenCalled();
+    //const spy = spyOn(router, 'navigate');
+    //(component as any).navigateToDetails(event);
+    //const url = `/${Globals.PATH.PERSONS}/${Globals.PATH.INTERNAL}/`;
+    //expect(spy).toHaveBeenCalledWith([url, event.data.uuid]);
   });
 
   it('should navigate to the contact person details page', () => {
@@ -127,11 +140,15 @@
         companyId: 'x',
       },
     };
-    const spy = spyOn(router, 'navigate');
-    (component as any)._navigateToDetails(event);
-    const url = `/${Globals.PATH.COMPANY}/${event.data.companyId}/${Globals.PATH.CONTACT_PERSON}/`;
 
-    expect(spy).toHaveBeenCalledWith([url, event.data.uuid]);
+    const spy = spyOn(ngZone, 'run');
+    component.navigateToDetails(event);
+    expect(spy).toHaveBeenCalled();
+
+    /* const spy = spyOn(router, 'navigate');
+    (component as any).navigateToDetails(event);
+    const url = `/${Globals.PATH.COMPANY}/${event.data.companyId}/${Globals.PATH.CONTACT_PERSON}/`;
+    expect(spy).toHaveBeenCalledWith([url, event.data.uuid]); */
   });
 
   it('should navigate to the company details page', () => {
@@ -141,11 +158,15 @@
         uuid: 'uuid',
       },
     };
-    const spy = spyOn(router, 'navigate');
-    (component as any)._navigateToDetails(event);
-    const url = `/${Globals.PATH.COMPANY}/`;
 
-    expect(spy).toHaveBeenCalledWith([url, event.data.uuid]);
+    const spy = spyOn(ngZone, 'run');
+    component.navigateToDetails(event);
+    expect(spy).toHaveBeenCalled();
+
+    /* const spy = spyOn(router, 'navigate');
+    (component as any).navigateToDetails(event);
+    const url = `/${Globals.PATH.COMPANY}/`;
+    expect(spy).toHaveBeenCalledWith([url, event.data.uuid]); */
   });
 
   it('should navigate to the overview if contactType undefined', () => {
@@ -155,11 +176,15 @@
         uuid: 'uuid',
       },
     };
-    const spy = spyOn(router, 'navigate');
-    (component as any)._navigateToDetails(event);
-    const url = '/overview';
 
-    expect(spy).toHaveBeenCalledWith([url]);
+    const spy = spyOn(ngZone, 'run');
+    component.navigateToDetails(event);
+    expect(spy).toHaveBeenCalled();
+
+    /* const spy = spyOn(router, 'navigate');
+    (component as any).navigateToDetails(event);
+    const url = '/overview';
+    expect(spy).toHaveBeenCalledWith([url]); */
   });
 
   it('checks if function searchContacts() would be called and works', () => {
diff --git a/src/app/pages/contacts/contacts-list/contacts-list.component.ts b/src/app/pages/contacts/contacts-list/contacts-list.component.ts
index 7f61afa..1f957e5 100644
--- a/src/app/pages/contacts/contacts-list/contacts-list.component.ts
+++ b/src/app/pages/contacts/contacts-list/contacts-list.component.ts
@@ -10,7 +10,7 @@
  *
  * SPDX-License-Identifier: EPL-2.0
  ********************************************************************************/
-import { Component, OnInit, OnDestroy } from '@angular/core';
+import { Component, OnInit, OnDestroy, NgZone } from '@angular/core';
 import { ContactsSandbox } from '@pages/contacts/contacts.sandbox';
 import { CONTACTS_COLDEF } from '@pages/contacts/contacts-list/contacts-list-column-definition';
 import { BaseList } from '@shared/components/base-components/base.list';
@@ -49,7 +49,7 @@
   private _deletionLockExceeded = false;
   private _subscription: Subscription;
 
-  constructor(public contactsSandbox: ContactsSandbox, public userModuleAssignmentSandbox: UserModuleAssignmentSandBox, private router: Router) {
+  constructor(public contactsSandbox: ContactsSandbox, public userModuleAssignmentSandbox: UserModuleAssignmentSandBox, private router: Router, private ngZone: NgZone) {
     super();
   }
   // modifiedContacts.sort.split(',')[(modifiedContacts.sort.match(/,/g) || []).length]
@@ -100,9 +100,9 @@
   private _handleBusEvents(event: any): any {
     switch (event.type) {
       case 'readonly':
-        this._navigateToDetails(event);
+        this.navigateToDetails(event);
       case 'edit':
-        this._navigateToDetails(event);
+        this.navigateToDetails(event);
         break;
       default:
         break;
@@ -110,10 +110,10 @@
   }
 
   public navigateTo(url: any) {
-    this.router.navigate([url]);
+    this.ngZone.run(() => this.router.navigate([url]));
   }
 
-  private _navigateToDetails(event: any) {
+  public navigateToDetails(event: any) {
     let route;
     switch (event.data.contactType) {
       case Globals.CONTACT_TYPE_ID.EXTERNAL_PERSON:
@@ -133,7 +133,7 @@
         break;
     }
 
-    this.router.navigate(route !== '/overview' ? [route, event.data.uuid] : [route]);
+    this.ngZone.run(() => this.router.navigate(route !== '/overview' ? [route, event.data.uuid] : [route]));
   }
 
   public setModifiedContactsSearchText(searchText: string) {
diff --git a/src/app/pages/persons/external-person/external-person-details/address-list/address-list.component.html b/src/app/pages/persons/external-person/external-person-details/address-list/address-list.component.html
index 4b7cf3a..db022db 100644
--- a/src/app/pages/persons/external-person/external-person-details/address-list/address-list.component.html
+++ b/src/app/pages/persons/external-person/external-person-details/address-list/address-list.component.html
@@ -19,14 +19,15 @@
 </div>
 
 <ag-grid-angular
-  autoResizeColumns
   class="ag-theme-balham"
   style="width: 100%; height: 100%;"
+  [domLayout]="'autoHeight'"
   [gridOptions]="gridOptions"
   [rowData]="externalPersonDetailsSandBox.addressList$ | async"
   [columnDefs]="columnDefinition"
   [rowSelection]="'single'"
   [overlayNoRowsTemplate]="noRowsTemplate"
+  (gridReady)="onGridReady($event)"
 >
 </ag-grid-angular>
 
diff --git a/src/app/pages/persons/external-person/external-person-details/address-list/address-list.component.scss b/src/app/pages/persons/external-person/external-person-details/address-list/address-list.component.scss
index 63a5ad3..9b9ebee 100644
--- a/src/app/pages/persons/external-person/external-person-details/address-list/address-list.component.scss
+++ b/src/app/pages/persons/external-person/external-person-details/address-list/address-list.component.scss
@@ -10,13 +10,17 @@
  *
  * SPDX-License-Identifier: EPL-2.0
  ********************************************************************************/
+ .ag-theme-balham ::ng-deep.ag-root-wrapper {
+  border: none;
+  border-top: 1px solid #bdc3c7;
+}
+
  .diverse-options {
 	display: flex;
 	justify-content: flex-end;
 	align-content: center;
 	background-color: #f5f7f7;
-	border: 1px solid rgb(189, 195, 199);
-	padding: 7px 7px 5px 7px;
+  padding: 7px;
 	margin-bottom: 1px;
 }
 
@@ -25,3 +29,9 @@
 	padding-right: 7px;
 	border-right: solid 1px #ddd;
 }
+
+:host {
+  display: flex;
+  flex-direction: column;
+  height: 100%;
+}
diff --git a/src/app/pages/persons/external-person/external-person-details/address-list/address-list.component.spec.ts b/src/app/pages/persons/external-person/external-person-details/address-list/address-list.component.spec.ts
index 2f71fcf..53f2348 100644
--- a/src/app/pages/persons/external-person/external-person-details/address-list/address-list.component.spec.ts
+++ b/src/app/pages/persons/external-person/external-person-details/address-list/address-list.component.spec.ts
@@ -17,8 +17,10 @@
 describe('AddressListComponent', () => {
   let component: ExternalPersonAddressListComponent;
   let externalPersonSandbox: any;
+  let agApi: any;
 
   beforeEach(async(() => {
+    agApi =  { setDomLayout() {} }
     externalPersonSandbox = {
       registerAddressEvents() {},
       registerExternalPersonEvents() {},
@@ -26,6 +28,7 @@
       deleteAddress() {},
       clearAddressData() {},
     } as any;
+    externalPersonSandbox.addressAgApi = agApi;
   }));
 
   beforeEach(() => {
diff --git a/src/app/pages/persons/external-person/external-person-details/address-list/address-list.component.ts b/src/app/pages/persons/external-person/external-person-details/address-list/address-list.component.ts
index bbaf354..3baa7e6 100644
--- a/src/app/pages/persons/external-person/external-person-details/address-list/address-list.component.ts
+++ b/src/app/pages/persons/external-person/external-person-details/address-list/address-list.component.ts
@@ -12,20 +12,22 @@
  ********************************************************************************/
 import { ExternalPersonDetailsSandBox } from '@pages/persons/external-person/external-person-details/external-person-details.sandbox';
 import { BaseList } from '@shared/components/base-components/base.list';
-import { Component, EventEmitter, Output } from '@angular/core';
+import { Component, EventEmitter, Output, OnInit, OnDestroy } from '@angular/core';
 import { ADDRESS_LIST_COLDEF } from '@shared/components/column-definitions/addresses-data-list-column-definition';
 import { Globals } from '@shared/constants/globals';
+import { Subscription } from 'rxjs';
 
 @Component({
   selector: 'app-external-person-address-list',
   templateUrl: './address-list.component.html',
   styleUrls: ['./address-list.component.scss'],
 })
-export class ExternalPersonAddressListComponent extends BaseList {
+export class ExternalPersonAddressListComponent extends BaseList implements OnInit, OnDestroy {
   @Output() externalPersonDetailsIdLoaded: EventEmitter<string> = new EventEmitter();
   @Output() createNewExternalPerson: EventEmitter<string> = new EventEmitter();
 
   public columnDefinition = ADDRESS_LIST_COLDEF;
+  private _subscription: Subscription;
 
   constructor(public externalPersonDetailsSandBox: ExternalPersonDetailsSandBox) {
     super();
@@ -41,7 +43,7 @@
       icons: { edit: true, delete: true },
     };
 
-    this.gridOptions.context.eventSubject.subscribe(event => {
+    this._subscription = this.gridOptions.context.eventSubject.subscribe(event => {
       if (event.type === 'edit' || event.type === 'readonly') {
         this.externalPersonDetailsIdLoaded.emit(event.data.id);
       }
@@ -54,5 +56,14 @@
   public createNewAddressForm() {
     this.externalPersonDetailsSandBox.clearAddressData();
     this.createNewExternalPerson.emit(null);
+    this.externalPersonDetailsSandBox.addressAgApi.setDomLayout('normal');
+  }
+
+  onGridReady(params) {
+      this.externalPersonDetailsSandBox.addressAgApi = params.api;
+  }
+
+  ngOnDestroy() {
+      this._subscription.unsubscribe();
   }
 }
diff --git a/src/app/pages/persons/external-person/external-person-details/communications-data-list/communications-data-list.component.html b/src/app/pages/persons/external-person/external-person-details/communications-data-list/communications-data-list.component.html
index d6254f3..3efcda3 100644
--- a/src/app/pages/persons/external-person/external-person-details/communications-data-list/communications-data-list.component.html
+++ b/src/app/pages/persons/external-person/external-person-details/communications-data-list/communications-data-list.component.html
@@ -19,14 +19,15 @@
 </div>
 
 <ag-grid-angular
-  autoResizeColumns
-  class="ag-theme-balham ag-grid-height"
+  class="ag-theme-balham"
   style="width: 100%; height: 100%;"
+  [domLayout]="'autoHeight'"
   [gridOptions]="gridOptions"
   [rowData]="externalPersonDetailsSandBox.communicationsDataList$ | async"
   [columnDefs]="columnDefinition"
   [rowSelection]="'single'"
   [overlayNoRowsTemplate]="noRowsTemplate"
+  (gridReady)="onGridReady($event)"
 >
 </ag-grid-angular>
 
diff --git a/src/app/pages/persons/external-person/external-person-details/communications-data-list/communications-data-list.component.scss b/src/app/pages/persons/external-person/external-person-details/communications-data-list/communications-data-list.component.scss
index 63a5ad3..e116c52 100644
--- a/src/app/pages/persons/external-person/external-person-details/communications-data-list/communications-data-list.component.scss
+++ b/src/app/pages/persons/external-person/external-person-details/communications-data-list/communications-data-list.component.scss
@@ -10,13 +10,17 @@
  *
  * SPDX-License-Identifier: EPL-2.0
  ********************************************************************************/
+.ag-theme-balham ::ng-deep.ag-root-wrapper {
+  border: none;
+  border-top: 1px solid #bdc3c7;
+}
+
  .diverse-options {
 	display: flex;
 	justify-content: flex-end;
 	align-content: center;
 	background-color: #f5f7f7;
-	border: 1px solid rgb(189, 195, 199);
-	padding: 7px 7px 5px 7px;
+	padding: 7px;
 	margin-bottom: 1px;
 }
 
@@ -25,3 +29,9 @@
 	padding-right: 7px;
 	border-right: solid 1px #ddd;
 }
+
+:host {
+  display: flex;
+  flex-direction: column;
+  height: 100%;
+}
diff --git a/src/app/pages/persons/external-person/external-person-details/communications-data-list/communications-data-list.component.spec.ts b/src/app/pages/persons/external-person/external-person-details/communications-data-list/communications-data-list.component.spec.ts
index e813b1f..8b91e0a 100644
--- a/src/app/pages/persons/external-person/external-person-details/communications-data-list/communications-data-list.component.spec.ts
+++ b/src/app/pages/persons/external-person/external-person-details/communications-data-list/communications-data-list.component.spec.ts
@@ -17,8 +17,10 @@
 describe('ExternalPersonCommunicationsDataListComponent', () => {
   let component: ExternalPersonCommunicationsDataListComponent;
   let externalPersonSandbox: any;
+  let agApi: any;
 
   beforeEach(async(() => {
+    agApi =  { setDomLayout() {} }
     externalPersonSandbox = {
       registerCommunicationsDataEvents() {},
       registerExternalPersonEvents() {},
@@ -26,6 +28,7 @@
       deleteCommunicationsData() {},
       clearCommunicationsData() {},
     } as any;
+    externalPersonSandbox.communicationsAgApi = agApi;
   }));
 
   beforeEach(() => {
diff --git a/src/app/pages/persons/external-person/external-person-details/communications-data-list/communications-data-list.component.ts b/src/app/pages/persons/external-person/external-person-details/communications-data-list/communications-data-list.component.ts
index 1c7fae6..7637563 100644
--- a/src/app/pages/persons/external-person/external-person-details/communications-data-list/communications-data-list.component.ts
+++ b/src/app/pages/persons/external-person/external-person-details/communications-data-list/communications-data-list.component.ts
@@ -12,21 +12,23 @@
  ********************************************************************************/
 import { ExternalPersonDetailsSandBox } from '@pages/persons/external-person/external-person-details/external-person-details.sandbox';
 import { BaseList } from '@shared/components/base-components/base.list';
-import { Component, EventEmitter, Output } from '@angular/core';
+import { Component, EventEmitter, Output, OnInit, OnDestroy } from '@angular/core';
 import { COMMUNICATIONS_DATA_LIST_COLDEF } from '@shared/components/column-definitions/communications-data-list-column-definition';
 import { Globals } from '@shared/constants/globals';
+import { Subscription } from 'rxjs';
 
 @Component({
   selector: 'app-external-person-communications-data-list',
   templateUrl: './communications-data-list.component.html',
   styleUrls: ['./communications-data-list.component.scss'],
 })
-export class ExternalPersonCommunicationsDataListComponent extends BaseList {
+export class ExternalPersonCommunicationsDataListComponent extends BaseList implements OnInit, OnDestroy {
   @Output() externalPersonDetailsIdLoaded: EventEmitter<string> = new EventEmitter();
   @Output() createNewExternalPerson: EventEmitter<string> = new EventEmitter();
 
   public columnDefinition = COMMUNICATIONS_DATA_LIST_COLDEF;
   public frameworkComponents: { setFilterComponent: any };
+  private _subscription: Subscription;
 
   constructor(public externalPersonDetailsSandBox: ExternalPersonDetailsSandBox) {
     super();
@@ -42,7 +44,7 @@
       icons: { edit: true, delete: true },
     };
 
-    this.gridOptions.context.eventSubject.subscribe(event => {
+    this._subscription = this.gridOptions.context.eventSubject.subscribe(event => {
       if (event.type === 'edit' || event.type === 'readonly') {
         this.externalPersonDetailsIdLoaded.emit(event.data.id);
       }
@@ -55,5 +57,14 @@
   public createNewCommunicationsDataForm() {
     this.externalPersonDetailsSandBox.clearCommunicationsData();
     this.createNewExternalPerson.emit(null);
+    this.externalPersonDetailsSandBox.communicationsAgApi.setDomLayout('normal');
+  }
+
+  onGridReady(params) {
+    this.externalPersonDetailsSandBox.communicationsAgApi = params.api;
+  }
+
+  ngOnDestroy() {
+    this._subscription.unsubscribe();
   }
 }
diff --git a/src/app/pages/persons/external-person/external-person-details/external-person-details.component.scss b/src/app/pages/persons/external-person/external-person-details/external-person-details.component.scss
index d73298c..659b872 100644
--- a/src/app/pages/persons/external-person/external-person-details/external-person-details.component.scss
+++ b/src/app/pages/persons/external-person/external-person-details/external-person-details.component.scss
@@ -13,42 +13,39 @@
 .person-buttons {
   margin: 16px;
 }
+
 .expandable-body-container {
   display: flex;
   flex-direction: row;
   height: 100%;
 }
+
 .table-detail-view-address {
-  height: 756px;
-  width: 461px;
-}
-.table-view-address {
-  height: 711px;
-  flex-grow: 1;
-}
-.expandable-address .collapse5 {
-  height: 758px;
-}
-.table-detail-view-communication {
-  height: 296px;
-  width: 461px;
-}
-.table-view-communication {
-  height: 263px;
-  flex-grow: 1;
-}
-.expandable-communication .collapse5 {
-  height: 310px;
-}
-.table-detail-view-module-assignment {
-  height: 336px;
   width: 461px;
   min-width: 461px;
+  border-right: 1px solid #bdc3c7;
 }
-.table-view-module-assignment {
-  height: 290px;
+
+.table-view-address {
   flex-grow: 1;
 }
-.expandable-module-assignment .collapse5 {
-  height: 338px;
+
+.table-detail-view-communication {
+  width: 461px;
+  min-width: 461px;
+  border-right: 1px solid #bdc3c7;
+}
+
+.table-view-communication {
+  flex-grow: 1;
+}
+
+.table-detail-view-module-assignment {
+  width: 461px;
+  min-width: 461px;
+  border-right: 1px solid #bdc3c7;
+}
+
+.table-view-module-assignment {
+  flex-grow: 1;
 }
diff --git a/src/app/pages/persons/external-person/external-person-details/external-person-details.sandbox.spec.ts b/src/app/pages/persons/external-person/external-person-details/external-person-details.sandbox.spec.ts
index 80ddb11..9b89daf 100644
--- a/src/app/pages/persons/external-person/external-person-details/external-person-details.sandbox.spec.ts
+++ b/src/app/pages/persons/external-person/external-person-details/external-person-details.sandbox.spec.ts
@@ -23,8 +23,10 @@
   let actionSubject: any;
   let router: any;
   let modalService: any;
+  let agApi: any;
 
   beforeEach(async(() => {
+    agApi =  { setDomLayout() {} }
     router = { navigateByUrl() {} } as any;
     appState = { dispatch: () => {}, pipe: () => of(true), select: () => of(true) } as any;
     actionSubject = { pipe: () => of(true) } as any;
@@ -34,6 +36,8 @@
 
   beforeEach(() => {
     component = new ExternalPersonDetailsSandBox(appState, utilService, actionSubject, router, modalService);
+    component.addressAgApi = agApi;
+    component.communicationsAgApi = agApi;
   });
 
   it('should create', () => {
diff --git a/src/app/pages/persons/external-person/external-person-details/external-person-details.sandbox.ts b/src/app/pages/persons/external-person/external-person-details/external-person-details.sandbox.ts
index 835f733..df17554 100644
--- a/src/app/pages/persons/external-person/external-person-details/external-person-details.sandbox.ts
+++ b/src/app/pages/persons/external-person/external-person-details/external-person-details.sandbox.ts
@@ -52,6 +52,9 @@
   private _communicationTypes: Array<CommunicationType> = new Array<CommunicationType>();
   private _mainAddress: Address;
 
+  public communicationsAgApi;
+  public addressAgApi;
+
   /**
    *  ExternalPerson Sandbox constructor
    */
@@ -144,6 +147,7 @@
   public closeAddressDataDetail(): void {
     this.clearAddressData();
     this.isAddressDataDetailViewVisible = false;
+    this.addressAgApi.setDomLayout('autoHeight');
   }
 
   public newExternalPerson(): void {
@@ -252,6 +256,7 @@
     this.loadCommunicationsData(this.externalPersonContactId);
     this.clearCommunicationsData();
     this.isCommunicationsDataDetailViewVisible = false;
+    this.communicationsAgApi.setDomLayout('autoHeight');
   }
 
   public newCommunicationsData(): void {
diff --git a/src/app/pages/persons/internal-person/internal-person-details/address-list/address-list.component.html b/src/app/pages/persons/internal-person/internal-person-details/address-list/address-list.component.html
index 4ba1d3a..a6ba81d 100644
--- a/src/app/pages/persons/internal-person/internal-person-details/address-list/address-list.component.html
+++ b/src/app/pages/persons/internal-person/internal-person-details/address-list/address-list.component.html
@@ -19,14 +19,15 @@
 </div>
 
 <ag-grid-angular
-  autoResizeColumns
-  class="ag-theme-balham ag-grid-height"
+  class="ag-theme-balham"
   style="width: 100%; height: 100%;"
+  [domLayout]="'autoHeight'"
   [gridOptions]="gridOptions"
   [rowData]="internalPersonDetailsSandBox.addressList$ | async"
   [columnDefs]="columnDefinition"
   [rowSelection]="'single'"
   [overlayNoRowsTemplate]="noRowsTemplate"
+  (gridReady)="onGridReady($event)"
 >
 </ag-grid-angular>
 
diff --git a/src/app/pages/persons/internal-person/internal-person-details/address-list/address-list.component.scss b/src/app/pages/persons/internal-person/internal-person-details/address-list/address-list.component.scss
index 63a5ad3..9b9ebee 100644
--- a/src/app/pages/persons/internal-person/internal-person-details/address-list/address-list.component.scss
+++ b/src/app/pages/persons/internal-person/internal-person-details/address-list/address-list.component.scss
@@ -10,13 +10,17 @@
  *
  * SPDX-License-Identifier: EPL-2.0
  ********************************************************************************/
+ .ag-theme-balham ::ng-deep.ag-root-wrapper {
+  border: none;
+  border-top: 1px solid #bdc3c7;
+}
+
  .diverse-options {
 	display: flex;
 	justify-content: flex-end;
 	align-content: center;
 	background-color: #f5f7f7;
-	border: 1px solid rgb(189, 195, 199);
-	padding: 7px 7px 5px 7px;
+  padding: 7px;
 	margin-bottom: 1px;
 }
 
@@ -25,3 +29,9 @@
 	padding-right: 7px;
 	border-right: solid 1px #ddd;
 }
+
+:host {
+  display: flex;
+  flex-direction: column;
+  height: 100%;
+}
diff --git a/src/app/pages/persons/internal-person/internal-person-details/address-list/address-list.component.spec.ts b/src/app/pages/persons/internal-person/internal-person-details/address-list/address-list.component.spec.ts
index adc088c..833c8e6 100644
--- a/src/app/pages/persons/internal-person/internal-person-details/address-list/address-list.component.spec.ts
+++ b/src/app/pages/persons/internal-person/internal-person-details/address-list/address-list.component.spec.ts
@@ -17,8 +17,10 @@
 describe('AddressListComponent', () => {
   let component: InternalPersonAddressListComponent;
   let internalPersonSandbox: any;
+  let agApi: any;
 
   beforeEach(async(() => {
+    agApi =  { setDomLayout() {} }
     internalPersonSandbox = {
       registerAddressEvents() {},
       registerExternalPersonEvents() {},
@@ -26,6 +28,7 @@
       deleteAddress() {},
       clearAddressData() {},
     } as any;
+    internalPersonSandbox.addressAgApi = agApi;
   }));
 
   beforeEach(() => {
diff --git a/src/app/pages/persons/internal-person/internal-person-details/address-list/address-list.component.ts b/src/app/pages/persons/internal-person/internal-person-details/address-list/address-list.component.ts
index e22a335..d62495a 100644
--- a/src/app/pages/persons/internal-person/internal-person-details/address-list/address-list.component.ts
+++ b/src/app/pages/persons/internal-person/internal-person-details/address-list/address-list.component.ts
@@ -12,20 +12,22 @@
  ********************************************************************************/
 import { InternalPersonDetailsSandBox } from '@pages/persons/internal-person/internal-person-details/internal-person-details.sandbox';
 import { BaseList } from '@shared/components/base-components/base.list';
-import { Component, EventEmitter, Output } from '@angular/core';
+import { Component, EventEmitter, Output, OnInit, OnDestroy } from '@angular/core';
 import { ADDRESS_LIST_COLDEF } from '@shared/components/column-definitions/addresses-data-list-column-definition';
 import { Globals } from '@shared/constants/globals';
+import { Subscription } from 'rxjs';
 
 @Component({
   selector: 'app-internal-person-address-list',
   templateUrl: './address-list.component.html',
   styleUrls: ['./address-list.component.scss'],
 })
-export class InternalPersonAddressListComponent extends BaseList {
+export class InternalPersonAddressListComponent extends BaseList implements OnInit, OnDestroy {
   @Output() internalPersonDetailsId: EventEmitter<string> = new EventEmitter();
   @Output() createNewInternalPerson: EventEmitter<string> = new EventEmitter();
 
   public columnDefinition = ADDRESS_LIST_COLDEF;
+  private _subscription: Subscription;
 
   constructor(public internalPersonDetailsSandBox: InternalPersonDetailsSandBox) {
     super();
@@ -41,7 +43,7 @@
       icons: { edit: true, delete: true },
     };
 
-    this.gridOptions.context.eventSubject.subscribe(event => {
+    this._subscription = this.gridOptions.context.eventSubject.subscribe(event => {
       if (event.type === 'edit' || event.type === 'readonly') {
         this.internalPersonDetailsId.emit(event.data.id);
       }
@@ -54,5 +56,14 @@
   public createNewAddressForm() {
     this.internalPersonDetailsSandBox.clearAddressData();
     this.createNewInternalPerson.emit(null);
+    this.internalPersonDetailsSandBox.addressAgApi.setDomLayout('normal');
+  }
+
+  onGridReady(params) {
+      this.internalPersonDetailsSandBox.addressAgApi = params.api;
+  }
+
+  ngOnDestroy() {
+      this._subscription.unsubscribe();
   }
 }
diff --git a/src/app/pages/persons/internal-person/internal-person-details/communications-data-list/communications-data-list.component.html b/src/app/pages/persons/internal-person/internal-person-details/communications-data-list/communications-data-list.component.html
index f77f018..4a809d0 100644
--- a/src/app/pages/persons/internal-person/internal-person-details/communications-data-list/communications-data-list.component.html
+++ b/src/app/pages/persons/internal-person/internal-person-details/communications-data-list/communications-data-list.component.html
@@ -19,14 +19,15 @@
 </div>
 
 <ag-grid-angular
-  autoResizeColumns
-  class="ag-theme-balham ag-grid-height"
+  class="ag-theme-balham"
   style="width: 100%; height: 100%;"
+  [domLayout]="'autoHeight'"
   [gridOptions]="gridOptions"
   [rowData]="internalPersonDetailsSandBox.communicationsDataList$ | async"
   [columnDefs]="columnDefinition"
   [rowSelection]="'single'"
   [overlayNoRowsTemplate]="noRowsTemplate"
+  (gridReady)="onGridReady($event)"
 >
 </ag-grid-angular>
 
diff --git a/src/app/pages/persons/internal-person/internal-person-details/communications-data-list/communications-data-list.component.scss b/src/app/pages/persons/internal-person/internal-person-details/communications-data-list/communications-data-list.component.scss
index 63a5ad3..e116c52 100644
--- a/src/app/pages/persons/internal-person/internal-person-details/communications-data-list/communications-data-list.component.scss
+++ b/src/app/pages/persons/internal-person/internal-person-details/communications-data-list/communications-data-list.component.scss
@@ -10,13 +10,17 @@
  *
  * SPDX-License-Identifier: EPL-2.0
  ********************************************************************************/
+.ag-theme-balham ::ng-deep.ag-root-wrapper {
+  border: none;
+  border-top: 1px solid #bdc3c7;
+}
+
  .diverse-options {
 	display: flex;
 	justify-content: flex-end;
 	align-content: center;
 	background-color: #f5f7f7;
-	border: 1px solid rgb(189, 195, 199);
-	padding: 7px 7px 5px 7px;
+	padding: 7px;
 	margin-bottom: 1px;
 }
 
@@ -25,3 +29,9 @@
 	padding-right: 7px;
 	border-right: solid 1px #ddd;
 }
+
+:host {
+  display: flex;
+  flex-direction: column;
+  height: 100%;
+}
diff --git a/src/app/pages/persons/internal-person/internal-person-details/communications-data-list/communications-data-list.component.spec.ts b/src/app/pages/persons/internal-person/internal-person-details/communications-data-list/communications-data-list.component.spec.ts
index bda4706..a871dd2 100644
--- a/src/app/pages/persons/internal-person/internal-person-details/communications-data-list/communications-data-list.component.spec.ts
+++ b/src/app/pages/persons/internal-person/internal-person-details/communications-data-list/communications-data-list.component.spec.ts
@@ -17,8 +17,10 @@
 describe('InternalPersonCommunicationsDataListComponent', () => {
   let component: InternalPersonCommunicationsDataListComponent;
   let internalPersonSandbox: any;
+  let agApi: any;
 
   beforeEach(async(() => {
+    agApi =  { setDomLayout() {} }
     internalPersonSandbox = {
       registerCommunicationsDataEvents() {},
       registerInternalPersonEvents() {},
@@ -26,6 +28,7 @@
       deleteCommunicationsData() {},
       newCommunicationsData() {},
     } as any;
+    internalPersonSandbox.communicationsAgApi = agApi;
   }));
 
   beforeEach(() => {
diff --git a/src/app/pages/persons/internal-person/internal-person-details/communications-data-list/communications-data-list.component.ts b/src/app/pages/persons/internal-person/internal-person-details/communications-data-list/communications-data-list.component.ts
index b577a5c..9852500 100644
--- a/src/app/pages/persons/internal-person/internal-person-details/communications-data-list/communications-data-list.component.ts
+++ b/src/app/pages/persons/internal-person/internal-person-details/communications-data-list/communications-data-list.component.ts
@@ -12,20 +12,22 @@
  ********************************************************************************/
 import { InternalPersonDetailsSandBox } from '@pages/persons/internal-person/internal-person-details/internal-person-details.sandbox';
 import { BaseList } from '@shared/components/base-components/base.list';
-import { Component, EventEmitter, Output } from '@angular/core';
+import { Component, EventEmitter, Output, OnInit, OnDestroy } from '@angular/core';
 import { COMMUNICATIONS_DATA_LIST_COLDEF } from '@shared/components/column-definitions/communications-data-list-column-definition';
 import { Globals } from '@shared/constants/globals';
+import { Subscription } from 'rxjs';
 
 @Component({
   selector: 'app-internal-person-communications-data-list',
   templateUrl: './communications-data-list.component.html',
   styleUrls: ['./communications-data-list.component.scss'],
 })
-export class InternalPersonCommunicationsDataListComponent extends BaseList {
+export class InternalPersonCommunicationsDataListComponent extends BaseList implements OnInit, OnDestroy {
   @Output() internalPersonDetailsId: EventEmitter<string> = new EventEmitter();
   @Output() createNewInternalPerson: EventEmitter<string> = new EventEmitter();
 
   public columnDefinition = COMMUNICATIONS_DATA_LIST_COLDEF;
+  private _subscription: Subscription;
 
   constructor(public internalPersonDetailsSandBox: InternalPersonDetailsSandBox) {
     super();
@@ -41,7 +43,7 @@
       icons: { edit: true, delete: true },
     };
 
-    this.gridOptions.context.eventSubject.subscribe(event => {
+    this._subscription = this.gridOptions.context.eventSubject.subscribe(event => {
       if (event.type === 'edit' || event.type === 'readonly') {
         this.internalPersonDetailsId.emit(event.data.id);
       }
@@ -54,5 +56,14 @@
   public createNewCommunicationsDataForm() {
     this.internalPersonDetailsSandBox.newCommunicationsData();
     this.createNewInternalPerson.emit(null);
+    this.internalPersonDetailsSandBox.communicationsAgApi.setDomLayout('normal');
+  }
+
+  onGridReady(params) {
+    this.internalPersonDetailsSandBox.communicationsAgApi = params.api;
+  }
+
+  ngOnDestroy() {
+    this._subscription.unsubscribe();
   }
 }
diff --git a/src/app/pages/persons/internal-person/internal-person-details/internal-person-details.component.html b/src/app/pages/persons/internal-person/internal-person-details/internal-person-details.component.html
index a8950ec..aa0fb54 100644
--- a/src/app/pages/persons/internal-person/internal-person-details/internal-person-details.component.html
+++ b/src/app/pages/persons/internal-person/internal-person-details/internal-person-details.component.html
@@ -101,7 +101,7 @@
           </div>
         </div>
 
-        <!-- Uid -->
+        <!-- Uid LDAP-->
         <div class="form-group row">
           <label for="uid" class="col-sm-2 col-form-label">{{ 'Internal.Uid' | translate }}</label>
           <div class="col-sm-4">
@@ -119,8 +119,14 @@
               [inputFormatter]="internalPersonSandBox.formatter"
             />
           </div>
-          <div class="col-sm-4">
-            <input
+
+          <div class="col-sm-info-icon">
+            <i [hidden]="!internalPersonSandBox.showInfoIconLdap"
+            class="fa fa-info-circle info-icon" aria-hidden="true" placement="auto" [ngbTooltip]="((internalPersonSandBox.internalPersonDetailsFormState$ | async)?.controls)['syncNote'].value"
+             tooltipClass="custom-info-tooltip" triggers="hover"></i>
+          </div>
+          <div class="col-sm-4" style="padding: 0 7px">
+            <input [ngClass]="{'error': internalPersonSandBox.isSyncErrorLdap, 'success': internalPersonSandBox.isSyncSuccessLdap }"
               readonly="readonly"
               type="text"
               maxlength="255"
@@ -130,12 +136,14 @@
               autocomplete="off"
             />
           </div>
-          <button type="button" style="flex-basis: 10px;" (click)="internalPersonSandBox.setLdapUidValue(null)" class="tool-icon">
-            <fa name="trash"></fa>
+
+          <button type="button" style="flex-basis: 10px;" (click)="internalPersonSandBox.setLdapUidValue(null)" class="btn btn-primary btn-sm">
+            <i class="fa fa-trash-o" aria-hidden="true"></i>
           </button>
+
         </div>
 
-        <!-- Userref -->
+        <!-- Userref Portal User-->
         <div class="form-group row">
           <label for="userRef" class="col-sm-2 col-form-label">{{ 'Internal.Userref' | translate }}</label>
           <div class="col-sm-4">
@@ -151,7 +159,11 @@
               autocomplete="off"
             />
           </div>
-          <div class="col-sm-4">
+
+          <div class="col-sm-info-icon">
+            <!-- placeholder -->
+          </div>
+          <div class="col-sm-4" style="padding: 0 7px">
             <input
               readonly="readonly"
               type="text"
@@ -162,8 +174,9 @@
               autocomplete="off"
             />
           </div>
-          <button type="button" (click)="internalPersonSandBox.setUserRefValue(null)" class="tool-icon">
-            <fa name="trash"></fa>
+
+          <button type="button" (click)="internalPersonSandBox.setUserRefValue(null)" class="btn btn-primary btn-sm">
+            <i class="fa fa-trash-o" aria-hidden="true"></i>
           </button>
         </div>
 
diff --git a/src/app/pages/persons/internal-person/internal-person-details/internal-person-details.component.scss b/src/app/pages/persons/internal-person/internal-person-details/internal-person-details.component.scss
index 336f295..958cc48 100644
--- a/src/app/pages/persons/internal-person/internal-person-details/internal-person-details.component.scss
+++ b/src/app/pages/persons/internal-person/internal-person-details/internal-person-details.component.scss
@@ -13,45 +13,43 @@
 .person-buttons {
   margin: 16px;
 }
+
 .expandable-body-container {
   display: flex;
   flex-direction: row;
   height: 100%;
 }
+
 .table-detail-view-address {
-  height: 756px;
-  width: 461px;
-}
-.table-view-address {
-  height: 711px;
-  flex-grow: 1;
-}
-.expandable-address .collapse5 {
-  height: 758px;
-}
-.table-detail-view-communication {
-  height: 296px;
-  width: 461px;
-}
-.table-view-communication {
-  height: 263px;
-  flex-grow: 1;
-}
-.expandable-communication .collapse5 {
-  height: 310px;
-}
-.table-detail-view-module-assignment {
-  height: 336px;
   width: 461px;
   min-width: 461px;
+  border-right: 1px solid #bdc3c7;
 }
-.table-view-module-assignment {
-  height: 290px;
+
+.table-view-address {
   flex-grow: 1;
 }
-.expandable-module-assignment .collapse5 {
-  height: 338px;
+
+.table-detail-view-communication {
+  width: 461px;
+  min-width: 461px;
+  border-right: 1px solid #bdc3c7;
 }
+
+.table-view-communication {
+  flex-grow: 1;
+}
+
+.table-detail-view-module-assignment {
+  width: 461px;
+  min-width: 461px;
+  border-right: 1px solid #bdc3c7;
+}
+
+.table-view-module-assignment {
+  flex-grow: 1;
+}
+
 .syncAlertMessage {
   position: absolute;
   top: 0px;
diff --git a/src/app/pages/persons/internal-person/internal-person-details/internal-person-details.sandbox.spec.ts b/src/app/pages/persons/internal-person/internal-person-details/internal-person-details.sandbox.spec.ts
index 4b9531b..f23b112 100644
--- a/src/app/pages/persons/internal-person/internal-person-details/internal-person-details.sandbox.spec.ts
+++ b/src/app/pages/persons/internal-person/internal-person-details/internal-person-details.sandbox.spec.ts
@@ -23,8 +23,10 @@
   let actionSubject: any;
   let router: any;
   let modalService: any;
+  let agApi: any;
 
   beforeEach(async(() => {
+    agApi =  { setDomLayout() {} }
     router = { navigateByUrl() {} } as any;
     appState = { dispatch: () => {}, pipe: () => of(true), select: () => of(true) } as any;
     actionSubject = { pipe: () => of([]) } as any;
@@ -34,6 +36,8 @@
 
   beforeEach(() => {
     component = new InternalPersonDetailsSandBox(appState, utilService, actionSubject, router, modalService);
+    component.addressAgApi = agApi;
+    component.communicationsAgApi = agApi;
   });
 
   it('should create', () => {
@@ -317,22 +321,22 @@
 
   it('should call dispatch and clear the userref if setLdapUidValue called with null', () => {
     component.internalPersonDetailsCurrentFormState = {
-      controls: { uid: { id: 'test1' }, firstName: { id: 'test2' }, lastName: { id: 'test3' } },
+      controls: { uid: { id: 'test1' }, firstName: { id: 'test2' }, lastName: { id: 'test3' } , isSyncError: { id: 'test4' }, syncNote: { id: 'test5' }},
       value: { uid: 'test1', firstName: 'test2', lastName: 'test3' },
     } as any;
     const spy = spyOn(appState, 'dispatch').and.callThrough();
     component.setLdapUidValue(null);
-    expect(spy).toHaveBeenCalledTimes(3);
+    expect(spy).toHaveBeenCalledTimes(5);
   });
 
   it('should call dispatch and set the userref if setLdapUidValue called with a value', () => {
     component.internalPersonDetailsCurrentFormState = {
-      controls: { uid: { id: 'test1' }, firstName: { id: 'test2' }, lastName: { id: 'test3' } },
+      controls: { uid: { id: 'test1' }, firstName: { id: 'test2' }, lastName: { id: 'test3' } , isSyncError: { id: 'test4' }, syncNote: { id: 'test5' }},
       value: { uid: 'test1', firstName: 'test2', lastName: 'test3' },
     } as any;
     let ldapUser = { firstName: 'Muster', lastName: 'Administrator', uid: 'admin' };
     const spy = spyOn(appState, 'dispatch').and.callThrough();
     component.setLdapUidValue({ item: ldapUser });
-    expect(spy).toHaveBeenCalledTimes(3);
+    expect(spy).toHaveBeenCalledTimes(5);
   });
 });
diff --git a/src/app/pages/persons/internal-person/internal-person-details/internal-person-details.sandbox.ts b/src/app/pages/persons/internal-person/internal-person-details/internal-person-details.sandbox.ts
index b242671..e85c041 100644
--- a/src/app/pages/persons/internal-person/internal-person-details/internal-person-details.sandbox.ts
+++ b/src/app/pages/persons/internal-person/internal-person-details/internal-person-details.sandbox.ts
@@ -21,7 +21,7 @@
 import { ActionsSubject, Store } from '@ngrx/store';
 import { Address, CommunicationsData, CommunicationType, InternalPerson, KeycloakUser, LdapUser } from '@shared/models';
 import { BaseSandbox } from '@shared/sandbox/base.sandbox';
-import { FormGroupState, MarkAsTouchedAction, ResetAction, SetValueAction } from 'ngrx-forms';
+import { FormGroupState, MarkAsTouchedAction, ResetAction, setValue, SetValueAction } from 'ngrx-forms';
 import { Injectable } from '@angular/core';
 import { map, take, takeUntil, debounceTime, distinctUntilChanged } from 'rxjs/operators';
 import { NgbModal } from '@ng-bootstrap/ng-bootstrap';
@@ -50,6 +50,11 @@
   public isAddressDataDetailViewVisible: boolean = false;
   public existMainAddress = false;
   public showSyncAlertMessage = false;
+
+  public showInfoIconLdap = false;
+  public isSyncErrorLdap = false;
+  public isSyncSuccessLdap = false;
+
   public isCurrentAddressMainAddress = false;
   public internalPersonContactId: string;
   private _currentInternalPerson: InternalPerson = null;
@@ -58,6 +63,9 @@
   private _ldapUsers: Array<LdapUser> = new Array<LdapUser>();
   private _mainAddress: Address;
 
+  public communicationsAgApi;
+  public addressAgApi;
+
   constructor(
     public appState$: Store<store.State>,
     public utilService: UtilService,
@@ -228,6 +236,7 @@
   public closeAddressDataDetail(): void {
     this.clearAddressData();
     this.isAddressDataDetailViewVisible = false;
+    this.addressAgApi.setDomLayout('autoHeight');
   }
 
   public newInternalPerson(): void {
@@ -257,6 +266,9 @@
       this.internalPersonDetailsCurrentFormState = formState;
 
       this.showSyncAlertMessage = !!formState.value && (!!formState.value.uid || !!formState.value.userRef) ? true : false;
+      this.showInfoIconLdap = !!formState.value && (!!formState.value.uid && !!formState.value.syncNote && (formState.value.isSyncError !== undefined || formState.value.isSyncError !== null))  ? true : false;
+      this.isSyncErrorLdap = !!formState.value && (!!formState.value.uid && !!formState.value.isSyncError )  ? true : false;
+      this.isSyncSuccessLdap = !!this.showInfoIconLdap && !formState.value.isSyncError  ? true : false;
     });
   }
 
@@ -333,6 +345,7 @@
     this.loadCommunicationsData(this.internalPersonContactId);
     this.clearCommunicationsData();
     this.isCommunicationsDataDetailViewVisible = false;
+    this.communicationsAgApi.setDomLayout('autoHeight');
   }
 
   public newCommunicationsData(): void {
@@ -399,6 +412,9 @@
   public formatter = (x: LdapUser) => x.ldapSearchString;
 
   public setLdapUidValue(event: any): void {
+    this.appState$.dispatch(new SetValueAction(this.internalPersonDetailsCurrentFormState.controls.isSyncError.id, null));
+    this.appState$.dispatch(new SetValueAction(this.internalPersonDetailsCurrentFormState.controls.syncNote.id, null));
+
     // set the value only if exists - take only the username from the rounded bruckets
     this.appState$.dispatch(new SetValueAction(this.internalPersonDetailsCurrentFormState.controls.uid.id, event == null ? null : event.item.uid));
     this.appState$.dispatch(new SetValueAction(this.internalPersonDetailsCurrentFormState.controls.firstName.id, event == null ? null : event.item.firstName));
diff --git a/src/app/shared/components/column-definitions/addresses-data-list-column-definition.ts b/src/app/shared/components/column-definitions/addresses-data-list-column-definition.ts
index c4d33d3..a0d21e9 100644
--- a/src/app/shared/components/column-definitions/addresses-data-list-column-definition.ts
+++ b/src/app/shared/components/column-definitions/addresses-data-list-column-definition.ts
@@ -19,6 +19,7 @@
     colId: 'addressTypeType',
     headerName: 'Address.AddressType',
     sortable: true,
+    flex: 3
   },
   {
     field: 'isMainAddress',
@@ -26,42 +27,51 @@
     headerName: 'Address.MainAddress',
     sortable: true,
     cellRendererFramework: BoolCellRendererComponent,
+    flex: 1,
+    minWidth: 100
   },
   {
     field: 'postcode',
     colId: 'postcode',
     headerName: 'Address.Postcode',
     sortable: true,
+    flex: 2
   },
   {
     field: 'community',
     colId: 'community',
     headerName: 'Address.Community',
     sortable: true,
+    flex: 4
   },
   {
     field: 'communitySuffix',
     colId: 'communitySuffix',
     headerName: 'Address.CommunitySuffix',
     sortable: true,
+    flex: 4
   },
   {
     field: 'street',
     colId: 'street',
     headerName: 'Address.Street',
     sortable: true,
+    flex: 4
   },
   {
     field: 'housenumber',
     colId: 'housenumber',
     headerName: 'Address.Housenumber',
     sortable: true,
+    flex: 1,
+    minWidth: 100
   },
   {
     field: 'note',
     colId: 'note',
     headerName: 'Address.Note',
     sortable: true,
+    flex: 4
   },
   {
     field: 'tools',
diff --git a/src/app/shared/components/column-definitions/communications-data-list-column-definition.ts b/src/app/shared/components/column-definitions/communications-data-list-column-definition.ts
index 56c1a20..666c374 100644
--- a/src/app/shared/components/column-definitions/communications-data-list-column-definition.ts
+++ b/src/app/shared/components/column-definitions/communications-data-list-column-definition.ts
@@ -18,29 +18,36 @@
     colId: 'communicationTypeType',
     headerName: 'CommunicationsData.CommunicationType',
     sortable: true,
+    minWidth: 120,
+    maxWidth: 320,
+    flex: 1
   },
   {
     field: 'communicationData',
     colId: 'communicationData',
     headerName: 'CommunicationsData.CommunicationData',
     sortable: true,
+    minWidth: 50,
+    flex: 3
   },
   {
     field: 'note',
     colId: 'note',
     headerName: 'CommunicationsData.Note',
     sortable: true,
+    minWidth: 50,
+    flex: 3
   },
   {
     field: 'tools',
     headerName: ' ',
     pinned: 'right',
-    maxWidth: 110,
-    minWidth: 110,
+    minWidth: 120,
+    maxWidth: 120,
     lockPosition: true,
-    sortable: false,
-    suppressMenu: true,
     suppressSizeToFit: true,
+    suppressMenu: true,
+    sortable: false,
     cellRendererFramework: IconCellRendererComponent,
   },
 ];
diff --git a/src/app/shared/components/expandable/expandable.component.scss b/src/app/shared/components/expandable/expandable.component.scss
index e081e75..a370cca 100644
--- a/src/app/shared/components/expandable/expandable.component.scss
+++ b/src/app/shared/components/expandable/expandable.component.scss
@@ -41,7 +41,9 @@
 }
 
 .collapse5 {
-  border: 1px solid #ddd;
+  border-right: 1px solid #ddd;
+  border-left: 1px solid #ddd;
+  border-bottom: 1px solid #ddd;
 }
 
 .panel-body {
diff --git a/src/app/shared/components/header/header.component.html b/src/app/shared/components/header/header.component.html
index de3846b..50b3aef 100644
--- a/src/app/shared/components/header/header.component.html
+++ b/src/app/shared/components/header/header.component.html
@@ -23,24 +23,9 @@
         <fa name="home"></fa>
       </button>
       <ng-template visibleByRight [onlyForAdmin]="true">
-        <div class="dropdown">
-          <button
-            class="btn btn-link navbar-btn dropdown-toggle"
-            type="button"
-            id="dropdownMenuButton"
-            data-toggle="dropdown"
-            aria-haspopup="true"
-            aria-expanded="false"
-          >
-            <fa name="server"></fa>
-          </button>
-          <div class="dropdown-menu" aria-labelledby="dropdownMenuButton">
-            <a class="dropdown-item" routerLink="/admin/salutations">{{ 'Salutations.Link' | translate }}</a>
-            <a class="dropdown-item" routerLink="/admin/communication-types">{{ 'CommunicationTypes.Link' | translate }}</a>
-            <a class="dropdown-item" routerLink="/admin/person-types">{{ 'PersonTypes.Link' | translate }}</a>
-            <a class="dropdown-item" routerLink="/admin/address-types">{{ 'AddressTypes.Link' | translate }}</a>
-          </div>
-        </div>
+        <button type="button" class="btn btn-link navbar-btn" (click)="navigateToAdminPage()">
+          <fa name="server"></fa>
+        </button>
       </ng-template>
       <a class="btn btn-link navbar-btn" href="./assets/userDocumentation/userDocumentation.html" title="Hilfe" target="_blank">
         <fa name="question-circle"></fa>
@@ -48,6 +33,7 @@
       <span class="divider"></span>
       <div class="dropdown-open nav-user nav-overview-user">
         <a class="btn btn-logout dropdown-toggle" style="min-width: 160px;" data-toggle="dropdown" href="#" aria-expanded="true">
+          <i class="fa fa-user fa-fw"></i>
           {{ userName }}
           <span class="caret"></span>
         </a>
@@ -57,5 +43,5 @@
       </div>
     </div>
   </div>
-  <!-- <app-version-info class="version-info-simple"></app-version-info> -->
+  <app-version-info class="version-info-simple"></app-version-info>
 </nav>
diff --git a/src/app/shared/components/header/header.component.ts b/src/app/shared/components/header/header.component.ts
index 4ec298d..48dea88 100644
--- a/src/app/shared/components/header/header.component.ts
+++ b/src/app/shared/components/header/header.component.ts
@@ -35,6 +35,11 @@
 
     navigateToOverview(this.router).then(this._winLocReload);
   }
+
+  public navigateToAdminPage(): void {
+    this.router.navigate(['/admin/salutations']);
+  }
+
   private _winLocReload(): void {
     window.location.reload();
   }
diff --git a/src/app/shared/components/list-details-view/user-module-assignment/list/list.component.html b/src/app/shared/components/list-details-view/user-module-assignment/list/list.component.html
index 0125b52..61a97f5 100644
--- a/src/app/shared/components/list-details-view/user-module-assignment/list/list.component.html
+++ b/src/app/shared/components/list-details-view/user-module-assignment/list/list.component.html
@@ -22,11 +22,13 @@
   autoResizeColumns
   class="ag-theme-balham"
   style="width: 100%; height: 100%;"
+  [domLayout]="'autoHeight'"
   [gridOptions]="gridOptions"
   [rowData]="userModuleAssignmentSandBox.userModuleAssignmentList$ | async"
   [columnDefs]="columnDefinition"
   [rowSelection]="'single'"
   [overlayNoRowsTemplate]="noRowsTemplate"
+  (gridReady)="onGridReady($event)"
 >
 </ag-grid-angular>
 <app-spinner [isRunning]="userModuleAssignmentSandBox.userModuleAssignmentListLoading$ | async"></app-spinner>
diff --git a/src/app/shared/components/list-details-view/user-module-assignment/list/list.component.scss b/src/app/shared/components/list-details-view/user-module-assignment/list/list.component.scss
index 63a5ad3..5dfe05a 100644
--- a/src/app/shared/components/list-details-view/user-module-assignment/list/list.component.scss
+++ b/src/app/shared/components/list-details-view/user-module-assignment/list/list.component.scss
@@ -10,13 +10,17 @@
  *
  * SPDX-License-Identifier: EPL-2.0
  ********************************************************************************/
+ .ag-theme-balham ::ng-deep.ag-root-wrapper {
+  border: none;
+  border-top: 1px solid #bdc3c7;
+}
+
  .diverse-options {
 	display: flex;
 	justify-content: flex-end;
 	align-content: center;
 	background-color: #f5f7f7;
-	border: 1px solid rgb(189, 195, 199);
-	padding: 7px 7px 5px 7px;
+	padding: 7px;
 	margin-bottom: 1px;
 }
 
@@ -25,3 +29,9 @@
 	padding-right: 7px;
 	border-right: solid 1px #ddd;
 }
+
+:host {
+  display: flex;
+  flex-direction: column;
+  height: 100%;
+}
diff --git a/src/app/shared/components/list-details-view/user-module-assignment/list/list.component.spec.ts b/src/app/shared/components/list-details-view/user-module-assignment/list/list.component.spec.ts
index 87ef92e..51e7fd6 100644
--- a/src/app/shared/components/list-details-view/user-module-assignment/list/list.component.spec.ts
+++ b/src/app/shared/components/list-details-view/user-module-assignment/list/list.component.spec.ts
@@ -17,13 +17,16 @@
 describe('ListComponent', () => {
   let component: UserModuleAssignmentDataListComponent;
   let userModuleAssignmentSandBox: any;
+  let agApi: any;
 
   beforeEach(async(() => {
+    agApi =  { setDomLayout() {} }
     userModuleAssignmentSandBox = {
       registerUserModuleAssignmentEvents() {},
       deleteUserModuleAssignment() {},
       clearUserModuleAssignmentData() {},
     } as any;
+    userModuleAssignmentSandBox.userModuleAgApi = agApi;
   }));
 
   beforeEach(() => {
diff --git a/src/app/shared/components/list-details-view/user-module-assignment/list/list.component.ts b/src/app/shared/components/list-details-view/user-module-assignment/list/list.component.ts
index 9cd8255..c07503a 100644
--- a/src/app/shared/components/list-details-view/user-module-assignment/list/list.component.ts
+++ b/src/app/shared/components/list-details-view/user-module-assignment/list/list.component.ts
@@ -43,5 +43,10 @@
   public createNewUserModuleAssignmentForm() {
     this.userModuleAssignmentSandBox.clearUserModuleAssignmentData();
     this.createNewUserModuleAssignment.emit(null);
+    this.userModuleAssignmentSandBox.userModuleAgApi.setDomLayout('normal');
+  }
+
+  onGridReady(params) {
+    this.userModuleAssignmentSandBox.userModuleAgApi = params.api;
   }
 }
diff --git a/src/app/shared/components/list-details-view/user-module-assignment/user-module-assignment.sandbox.spec.ts b/src/app/shared/components/list-details-view/user-module-assignment/user-module-assignment.sandbox.spec.ts
index c72133d..3975c71 100644
--- a/src/app/shared/components/list-details-view/user-module-assignment/user-module-assignment.sandbox.spec.ts
+++ b/src/app/shared/components/list-details-view/user-module-assignment/user-module-assignment.sandbox.spec.ts
@@ -24,8 +24,10 @@
   let actionSubject: any;
   let router: any;
   let modalService: any;
+  let agApi: any;
 
   beforeEach(async(() => {
+    agApi =  { setDomLayout() {} }
     router = { navigateByUrl() {} } as any;
     appState = { dispatch: () => {}, pipe: () => of(true), select: () => of(true) } as any;
     actionSubject = { pipe: () => of(true) } as any;
@@ -35,6 +37,7 @@
 
   beforeEach(() => {
     component = new UserModuleAssignmentSandBox(appState, actionSubject, utilService, router, modalService);
+    component.userModuleAgApi = agApi;
   });
 
   it('should create', () => {
diff --git a/src/app/shared/components/list-details-view/user-module-assignment/user-module-assignment.sandbox.ts b/src/app/shared/components/list-details-view/user-module-assignment/user-module-assignment.sandbox.ts
index 674220c..18bc75a 100644
--- a/src/app/shared/components/list-details-view/user-module-assignment/user-module-assignment.sandbox.ts
+++ b/src/app/shared/components/list-details-view/user-module-assignment/user-module-assignment.sandbox.ts
@@ -39,6 +39,7 @@
 
   public isUserModuleAssignmentDataDetailViewVisible: boolean = false;
   public contactId: string;
+  public userModuleAgApi;
 
   private _userModuleTypes: Array<UserModuleType> = new Array<UserModuleType>();
 
@@ -127,6 +128,7 @@
     this.loadUserModuleAssignments(this.contactId);
     this.clearUserModuleAssignmentData();
     this.isUserModuleAssignmentDataDetailViewVisible = false;
+    this.userModuleAgApi.setDomLayout('autoHeight');
   }
 
   public newUserModuleAssignmentData(): void {
diff --git a/src/app/shared/components/version-info/version-info.component.html b/src/app/shared/components/version-info/version-info.component.html
index 7057e40..184b46b 100644
--- a/src/app/shared/components/version-info/version-info.component.html
+++ b/src/app/shared/components/version-info/version-info.component.html
@@ -12,5 +12,5 @@
 ********************************************************************************/ -->
 
 <div class="version-info">
-        Version: {{currVersion.frontendVersion}} / {{currVersion.backendVersion}} / {{currVersion.dbVersion}}
+        Version: {{currVersion.frontendVersion}}f / {{currVersion.backendVersion}}b / {{currVersion.dbVersion}}d
 </div>
diff --git a/src/app/shared/components/version-info/version-info.component.ts b/src/app/shared/components/version-info/version-info.component.ts
index c5e9213..be502ba 100644
--- a/src/app/shared/components/version-info/version-info.component.ts
+++ b/src/app/shared/components/version-info/version-info.component.ts
@@ -12,6 +12,7 @@
  ********************************************************************************/
 
 import { Component, OnInit } from '@angular/core';
+import { Globals } from '@app/shared/constants/globals';
 // import { VersionInfo } from '../../model/version-info';
 // import { VersionInfoService } from '../../services/version-info.service';
 // import { Globals } from '../../common/globals';
@@ -37,6 +38,6 @@
 
   private setVersionInfo(vinfo: any) {
     this.currVersion = vinfo;
-    // this.currVersion.frontendVersion = Globals.FRONTEND_VERSION;
+    this.currVersion.frontendVersion = Globals.FRONTEND_VERSION;
   }
 }
diff --git a/src/app/shared/constants/globals.ts b/src/app/shared/constants/globals.ts
index 60d8d59..0156dcf 100644
--- a/src/app/shared/constants/globals.ts
+++ b/src/app/shared/constants/globals.ts
@@ -11,6 +11,8 @@
  * SPDX-License-Identifier: EPL-2.0
  ********************************************************************************/
 export class Globals {
+  static FRONTEND_VERSION = '1.1.0';
+
   static CONTACT_TYPE = class ContactType {
     static INTERNAL_PERSON = 'interne Person';
     static EXTERNAL_PERSON = 'externe Person';
diff --git a/src/app/shared/directives/agGrid/server-side.directive.ts b/src/app/shared/directives/agGrid/server-side.directive.ts
index cca3fe2..1a361fe 100644
--- a/src/app/shared/directives/agGrid/server-side.directive.ts
+++ b/src/app/shared/directives/agGrid/server-side.directive.ts
@@ -1,4 +1,4 @@
-import { EventEmitter } from '@angular/core';
+import { EventEmitter, OnDestroy } from '@angular/core';
 /********************************************************************************
  * Copyright (c) 2020 Contributors to the Eclipse Foundation
  *
@@ -15,7 +15,7 @@
 import { PageEvent } from '@shared/models/PageEvent';
 import { PageModel } from '@shared/models/page/page.model';
 import { AgGridAngular } from 'ag-grid-angular';
-import { take, map } from 'rxjs/operators';
+import { take, map, takeUntil } from 'rxjs/operators';
 import { ServerSideModel } from '@shared/models/server-side.model';
 import { Directive, Input, ComponentFactoryResolver, ViewContainerRef, ComponentFactory, OnInit, Output } from '@angular/core';
 import { Store, ActionsSubject } from '@ngrx/store';
@@ -23,6 +23,7 @@
 import * as store from '@shared/store';
 import { PageRequestInterface } from '@shared/models/page/page-request.interface';
 import { ofType } from '@ngrx/effects';
+import { Subject } from 'rxjs';
 
 /**
  * Realises serverside paging
@@ -36,9 +37,10 @@
   selector: 'ag-grid-angular[serverside]',
   host: {},
 })
-export class ServerSideDirective implements OnInit {
+export class ServerSideDirective implements OnInit, OnDestroy {
   private _currentPageNumber: number;
   private _queryParameter: any;
+  public endOfSubscribtion = new Subject<boolean>();
 
   private _matPaginator: PaginatorComponent;
 
@@ -80,6 +82,10 @@
     private _agGrid: AgGridAngular
   ) {}
 
+  ngOnDestroy(): void {
+    this.endOfSubscribtion.next(true);
+  }
+
   /**
    * @author Martin Gardyan <martin.gardyan@pta.de>
    * @memberof ServerSideDirective
@@ -90,7 +96,8 @@
     this._actionsSubject
       .pipe(
         ofType(this.serverside.successAction.type),
-        map(item => item.payload)
+        map(item => item.payload),
+        takeUntil(this.endOfSubscribtion)
       )
       .subscribe((pagedItem: PageModel<any>) => {
         if (!this._matPaginator) {
diff --git a/src/app/shared/models/persons/internal-person.model.ts b/src/app/shared/models/persons/internal-person.model.ts
index 81453f9..550f8c3 100644
--- a/src/app/shared/models/persons/internal-person.model.ts
+++ b/src/app/shared/models/persons/internal-person.model.ts
@@ -23,6 +23,8 @@
   public personTypeId: string = null;
   public salutationId: string = null;
   public salutationType: string = null;
+  public syncNote: string = null;
+  public isSyncError: boolean = null;
   public uid: string = null;
   public title: string = null;
   public userRef: string = null;
diff --git a/src/app/shared/utility/utilityHelpers.ts b/src/app/shared/utility/utilityHelpers.ts
index d33c3da..3029309 100644
--- a/src/app/shared/utility/utilityHelpers.ts
+++ b/src/app/shared/utility/utilityHelpers.ts
@@ -48,5 +48,5 @@
 };
 
 export function navigateToOverview(router: Router): Promise<boolean> {
-  return router.navigateByUrl(`/overview`);
+  return router.navigateByUrl('/overview');
 }
diff --git a/src/styles.scss b/src/styles.scss
index 2f3c29f..bb45e00 100644
--- a/src/styles.scss
+++ b/src/styles.scss
@@ -700,6 +700,7 @@
   min-height: 1px;
   padding-right: 15px;
   padding-left: 15px;
+  align-self: center;
 }
 .col {
   flex-basis: 0;
@@ -7022,8 +7023,7 @@
 }
 
 ag-grid-angular {
-  width: 100%;
-  height: calc(100vh - 210px);
+  height: 100%;
 }
 
 .ngrx-forms-valid[required],
@@ -7041,6 +7041,10 @@
   border-left: 5px solid #a94442;
 }
 
+.success {
+  border-left: 5px solid #42a948;
+}
+
 // toaster error font color
 .simple-notification.error {
   color: white !important;
@@ -7050,3 +7054,34 @@
   max-height: 300px;
   overflow-y: auto;
 }
+
+.info-icon {
+  align-self: center;
+  color: #003a5f;
+  font-size: 1.5em;
+}
+
+.tooltip.bs-tooltip-top .arrow::before {
+  border-top-color: #005e8d;
+  border-top-color: #003a5f;
+  margin-left: 0;
+}
+
+.custom-info-tooltip .tooltip-inner {
+  max-width: 490px;
+  text-align: left;
+  background-color: #e8eeea;
+  color: #000;
+  box-shadow: 0 0 3px #00000040;
+  border: 1px solid #005e8d;
+  border: 1px solid #003a5f;
+}
+
+.ag-center-cols-viewport{
+  overflow: hidden !important;
+}
+
+.col-sm-info-icon {
+  width: 21px;
+  display: flex;
+}