diff --git a/proxy.conf-integration.json b/proxy.conf-integration.json
index 27430d8..ace58c5 100644
--- a/proxy.conf-integration.json
+++ b/proxy.conf-integration.json
@@ -1,6 +1,6 @@
 {
   "/api": {
-    "target": "http://entdockergss:9155",
+    "target": "http://entdockergss:9156",
     "secure": false,
     "pathRewrite": {
       "^/api": ""
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 6a44871..c73910e 100644
--- a/src/app/pages/contacts/contacts-list/contacts-list.component.html
+++ b/src/app/pages/contacts/contacts-list/contacts-list.component.html
@@ -19,7 +19,7 @@
       <div class="search-options diverse-options-item">
         <input
           type="text"
-          class="item"
+          class="form-control item"
           id="search-text"
           style="position: 0px;font-size: 13px; line-height:21px; color: #495057;"
           placeholder="Suche"
@@ -150,7 +150,7 @@
       [queryParameter]="modifiedContacts"
       autoResizeColumns
       class="ag-theme-balham"
-      style="min-width: 982px; height: calc(100vh - 276px);"
+      style="min-width: 984px; height: calc(100vh - 279px);"
       [gridOptions]="gridOptions"
       [columnDefs]="columnDefinition"
       [rowSelection]="'single'"
diff --git a/src/app/shared/components/paginator/paginator.component.ts b/src/app/shared/components/paginator/paginator.component.ts
index 12f00b4..8a40216 100644
--- a/src/app/shared/components/paginator/paginator.component.ts
+++ b/src/app/shared/components/paginator/paginator.component.ts
@@ -29,7 +29,7 @@
   pageSize: number;
 
   @Input()
-  public set currrentPageNumber(pageNumber: number) {
+  public set currentPageNumber(pageNumber: number) {
     this._setActivePage({ pageIndex: pageNumber });
   }
 
@@ -116,12 +116,15 @@
       return;
     }
     this._init(1);
+
+    this.setSelectedPage({ pageIndex: 1 });
   }
 
   public isLastPage(): boolean {
     const activeItem = this.pageEventItems[this.currentPageIndex];
     return !!activeItem && activeItem.pageIndex == this.totalPages;
   }
+
   public isLastPageLastIcon(): boolean {
     const activeItem = this.pageEventItems[this.currentPageIndex];
     return !!activeItem && activeItem.pageIndex >= this.totalPages - this.visibleItemsAmount;
diff --git a/src/app/shared/directives/agGrid/server-side.directive.ts b/src/app/shared/directives/agGrid/server-side.directive.ts
index b8da780..8a4f633 100644
--- a/src/app/shared/directives/agGrid/server-side.directive.ts
+++ b/src/app/shared/directives/agGrid/server-side.directive.ts
@@ -13,7 +13,7 @@
  ********************************************************************************/
 import { PaginatorComponent } from '@shared/components/paginator/paginator.component';
 import { PageEvent } from '@shared/models/PageEvent';
-import { PageModel } from './../../models/page/page.model';
+import { PageModel } from '@shared/models/page/page.model';
 import { AgGridAngular } from 'ag-grid-angular';
 import { take, map } from 'rxjs/operators';
 import { ServerSideModel } from '@shared/models/server-side.model';
@@ -49,17 +49,16 @@
 
   @Input()
   public set queryParameter(query: any) {
-    if (!!query) {
-      this.appState$.dispatch(
-        this.serverside.loadAction({
-          payload: {
-            queryParameter: query,
-            pageSize: this.serverside.pageSize,
-            pageNumber: this.serverside.pageNumber,
-          } as PageRequestInterface,
-        })
-      );
-    }
+    this.appState$.dispatch(
+      this.serverside.loadAction({
+        payload: {
+          queryParameter: query,
+          pageSize: this.serverside.pageSize,
+          pageNumber: this.serverside.pageNumber,
+        } as PageRequestInterface,
+      })
+    );
+
     this._queryParameter = query;
   }
 
@@ -102,18 +101,16 @@
         this._matPaginator.length = pagedItem.totalElements;
         this._matPaginator.pageSize = pagedItem.pageable.pageSize || 1;
         this._matPaginator.hidePageSize = false;
-        this._matPaginator.page.subscribe((selectedpage: PageEvent) => {
-          this._retrievePage(selectedpage);
+        this._matPaginator.page.pipe(take(1)).subscribe((selectedPage: PageEvent) => {
+          this._retrievePage(selectedPage);
         });
-        this._matPaginator.currrentPageNumber = this.serverside.pageNumber;
+        this._matPaginator.currentPageNumber = this.serverside.pageNumber;
         if (!!this._agGrid.api) {
           this._agGrid.api.setRowData(pagedItem.content);
         } else {
           this._agGrid.rowData = pagedItem.content;
         }
       });
-
-    this._retrievePage({ pageIndex: this.serverside.pageNumber });
   }
 
   /**
diff --git a/src/app/shared/sandbox/base-list.sandbox.ts b/src/app/shared/sandbox/base-list.sandbox.ts
index bc4440a..fe15a3d 100644
--- a/src/app/shared/sandbox/base-list.sandbox.ts
+++ b/src/app/shared/sandbox/base-list.sandbox.ts
@@ -14,7 +14,7 @@
 import { ServerSideModel } from '@shared/models/server-side.model';
 
 export abstract class BaseListSandbox extends BaseSandbox {
-  protected pageSize: number = 10;
+  protected pageSize: number = 3;
   public serversideModel: ServerSideModel = new ServerSideModel();
 
   public setCurrentPageNumber(pageNumber: number): void {
