diff --git a/smp-angular/src/app/alerts/alertsentry.ts b/smp-angular/src/app/alerts/alertsentry.ts
index 6d03991f6408c5370c7442f61a50e4c0407db9df..f4b4001693340d5b617f92d8641a8303e3895917 100644
--- a/smp-angular/src/app/alerts/alertsentry.ts
+++ b/smp-angular/src/app/alerts/alertsentry.ts
@@ -1,13 +1,10 @@
-export class AlertsEntry {
-  constructor(public processed: boolean,
-              public alertId: string,
-              public alertType: string,
-              public alertLevel: string,
-              public alertText: string,
-              public creationTime: Date,
-              public reportingTime: Date,
-              public parameters: string[])
-  {
-
-  }
+export interface AlertsEntry {
+  processed: boolean;
+  alertId: string;
+  alertType: string;
+  alertLevel: string;
+  alertText: string;
+  creationTime: Date;
+  reportingTime: Date;
+  parameters: string[];
 }
diff --git a/smp-angular/src/app/alerts/alertsresult.ts b/smp-angular/src/app/alerts/alertsresult.ts
index 04ebfbf5830272b3be47e6dece6faf3edea9b675..5343389e1fcf4cbbc3ddcf34d90e0dcfdbd98279 100644
--- a/smp-angular/src/app/alerts/alertsresult.ts
+++ b/smp-angular/src/app/alerts/alertsresult.ts
@@ -1,14 +1,10 @@
 import {AlertsEntry} from "./alertsentry";
 
-export class AlertsResult {
-
-  constructor(public alertsEntries: Array<AlertsEntry>,
-              public pageSize: number,
-              public count: number,
-              public filter: any,
-              public alertsType: Array<string>,
-              public alertsLevels: Array<string>
-  ) {
-
-  }
+export interface AlertsResult {
+  alertsEntries: Array<AlertsEntry>;
+  pageSize: number;
+  count: number;
+  filter: any;
+  alertsType: Array<string>;
+  alertsLevels: Array<string>;
 }
diff --git a/smp-angular/src/app/appinfo/domibusinfo.service.ts b/smp-angular/src/app/appinfo/domibusinfo.service.ts
index 5f77bc69719770f49d58590879f779cc05623aef..443dba6f507aa66c5d694541dd21203acd1b1eb0 100644
--- a/smp-angular/src/app/appinfo/domibusinfo.service.ts
+++ b/smp-angular/src/app/appinfo/domibusinfo.service.ts
@@ -16,7 +16,7 @@ export class DomibusInfoService {
     let subject = new ReplaySubject();
     this.http.get('rest/application/info')
       .map((response: Response) => {
-        let domibusInfo = new DomibusInfo(response.json().version);
+        const domibusInfo:DomibusInfo = { version: response.json().version };
         return domibusInfo;
       })
       .subscribe((res: DomibusInfo) => {
diff --git a/smp-angular/src/app/appinfo/domibusinfo.ts b/smp-angular/src/app/appinfo/domibusinfo.ts
index cc5af6e74f46982d18a773e217403a30a728d67a..83a8ef212ce80fecec54ac7820e12b4ecd5c3fe3 100644
--- a/smp-angular/src/app/appinfo/domibusinfo.ts
+++ b/smp-angular/src/app/appinfo/domibusinfo.ts
@@ -1,5 +1,3 @@
-export class DomibusInfo {
-
-  constructor(public version:string) {
-  }
+export interface DomibusInfo {
+  version:string;
 }
diff --git a/smp-angular/src/app/common/searchtable/searchtable-controller.ts b/smp-angular/src/app/common/searchtable/searchtable-controller.ts
index 16cb32050992ecf7e79866127e119aab1a54c3e8..4bce65d93f7828ef707393e616d5496e47455a4a 100644
--- a/smp-angular/src/app/common/searchtable/searchtable-controller.ts
+++ b/smp-angular/src/app/common/searchtable/searchtable-controller.ts
@@ -1,15 +1,5 @@
-export class SearchTableController {
-
-
-  showDetails(row: any) {
-
-  }
-
-  edit(row: any) {
-
-  }
-
-  delete(row: any) {
-
-  }
+export interface SearchTableController {
+  showDetails(row);
+  edit(row);
+  delete(row);
 }
diff --git a/smp-angular/src/app/common/searchtable/searchtableresult.ts b/smp-angular/src/app/common/searchtable/searchtableresult.ts
index f09349b02956f3a6ddd94e0f5f9bdb01c53270bc..9c6c6ad72156b1f4a1906e5adc2f0310deb99b1f 100644
--- a/smp-angular/src/app/common/searchtable/searchtableresult.ts
+++ b/smp-angular/src/app/common/searchtable/searchtableresult.ts
@@ -1,11 +1,6 @@
-
-export class SearchTableResult {
-
-  constructor(public serviceEntities: Array<any>,
-              public pageSize: number,
-              public count: number,
-              public filter: any
-              ) {
-
-  }
+export interface SearchTableResult {
+  serviceEntities: Array<any>;
+  pageSize: number;
+  count: number;
+  filter: any;
 }
diff --git a/smp-angular/src/app/domain/domain-controller.ts b/smp-angular/src/app/domain/domain-controller.ts
index e650bc376746e1f6df4083f5519d075ea27d594d..2913a2e350c631e79b2d4c55b7e9947f53fbd971 100644
--- a/smp-angular/src/app/domain/domain-controller.ts
+++ b/smp-angular/src/app/domain/domain-controller.ts
@@ -2,13 +2,9 @@ import {SearchTableController} from "../common/searchtable/searchtable-controlle
 import {MdDialog, MdDialogRef} from "@angular/material";
 import {DomainDetailsDialogComponent} from "./domain-details-dialog/domain-details-dialog.component";
 
+export class DomainController implements SearchTableController {
 
-export class DomainController extends SearchTableController {
-
-  constructor(public dialog: MdDialog) {
-    super();
-  }
-
+  constructor(public dialog: MdDialog) { }
 
   public showDetails(row: any) {
     let dialogRef: MdDialogRef<DomainDetailsDialogComponent> = this.dialog.open(DomainDetailsDialogComponent);
@@ -16,17 +12,9 @@ export class DomainController extends SearchTableController {
     dialogRef.afterClosed().subscribe(result => {
       //Todo:
     });
-
   }
 
+  public edit(row: any) { }
 
-
-
-  public edit(row: any) {
-
-  }
-
-  public  delete(row: any) {
-
-  }
+  public  delete(row: any) { }
 }
diff --git a/smp-angular/src/app/domain/domainresult.ts b/smp-angular/src/app/domain/domainresult.ts
index 57bd728b6f46302560d4d29a5bff57f343f24167..a727245d13a0a6c33753b8a257f2535100e720b2 100644
--- a/smp-angular/src/app/domain/domainresult.ts
+++ b/smp-angular/src/app/domain/domainresult.ts
@@ -1,12 +1,8 @@
 import {DomainRO} from "./domainro";
 
-export class DomainResult {
-
-  constructor(public serviceEntities: Array<DomainRO>,
-              public pageSize: number,
-              public count: number,
-              public filter: any
-              ) {
-
-  }
+export interface DomainResult {
+  serviceEntities: Array<DomainRO>;
+  pageSize: number;
+  count: number;
+  filter: any;
 }
diff --git a/smp-angular/src/app/domain/domainro.ts b/smp-angular/src/app/domain/domainro.ts
index f13a69c48a4062913d9fe33d8ba19aff56bd6516..1660ccb70ac15aa43982e404a75b165c06ee6f41 100644
--- a/smp-angular/src/app/domain/domainro.ts
+++ b/smp-angular/src/app/domain/domainro.ts
@@ -1,14 +1,9 @@
-export class DomainRO {
-  constructor(public domainId: string,
-              public bdmslClientCertHeader: string,
-              public bdmslClientCertAlias: string,
-              public bdmslSmpId: string,
-              public signatureCertAlias: string
-
-
-  ) {
-
-  }
+export interface DomainRO {
+  domainId: string;
+  bdmslClientCertHeader: string;
+  bdmslClientCertAlias: string;
+  bdmslSmpId: string;
+  signatureCertAlias: string;
 }
 
 
diff --git a/smp-angular/src/app/errorlog/errorlogentry.ts b/smp-angular/src/app/errorlog/errorlogentry.ts
index 9c6b2a28544398cd87471a689916a530136b942f..9e27c2ba342a09222c82299d95d0f9f21a21c919 100644
--- a/smp-angular/src/app/errorlog/errorlogentry.ts
+++ b/smp-angular/src/app/errorlog/errorlogentry.ts
@@ -1,11 +1,8 @@
-export class ErrorLogEntry {
-
-
-  constructor(errorSignalMessageId: string,
-              mshRole: string,
-              messageInErrorId: string,
-              errorCode: string,
-              timestamp: Date,
-              notified: Date) {
-  }
+export interface ErrorLogEntry {
+  errorSignalMessageId: string,
+  mshRole: string;
+  messageInErrorId: string;
+  errorCode: string;
+  timestamp: Date;
+  notified: Date;
 }
diff --git a/smp-angular/src/app/errorlog/errorlogresult.ts b/smp-angular/src/app/errorlog/errorlogresult.ts
index ae9114f268298cfc8a703fe848f2c8a1535e18c2..fed43f6cebfa59247253661311e6c520d0f1c560 100644
--- a/smp-angular/src/app/errorlog/errorlogresult.ts
+++ b/smp-angular/src/app/errorlog/errorlogresult.ts
@@ -1,14 +1,13 @@
 import {ErrorLogEntry} from "./errorlogentry";
-export class ErrorLogResult {
 
-  constructor(public errorLogEntries: Array<ErrorLogEntry>,
-              // public offset: number,
-              public pageSize: number,
-              // public orderBy: string,
-              // public asc: boolean,
-              public count: number,
-              public filter: any,
-              public mshRoles: Array<string>,
-              public errorCodes: Array<string>) {
-  }
+export interface ErrorLogResult {
+  errorLogEntries: Array<ErrorLogEntry>;
+  // offset: number;
+  pageSize: number;
+  // orderBy: string;
+  // asc: boolean;
+  count: number;
+  filter: any;
+  mshRoles: Array<string>;
+  errorCodes: Array<string>;
 }
diff --git a/smp-angular/src/app/messagefilter/messagefilter.component.ts b/smp-angular/src/app/messagefilter/messagefilter.component.ts
index 53096b7cb13d87873811a36a9afba03fd232b44b..e652745e5afbabbd4849f94411e3678e6866ff17 100644
--- a/smp-angular/src/app/messagefilter/messagefilter.component.ts
+++ b/smp-angular/src/app/messagefilter/messagefilter.component.ts
@@ -117,16 +117,16 @@ export class MessageFilterComponent implements DirtyOperations {
       if (result == true) {
         let routingCriterias: Array<RoutingCriteriaEntry> = [];
         if (!isNullOrUndefined(formRef.componentInstance.from) && formRef.componentInstance.from != "") {
-          routingCriterias.push(new RoutingCriteriaEntry(0, 'from', formRef.componentInstance.from));
+          routingCriterias.push({ entityId: 0, name: 'from', expression: formRef.componentInstance.from });
         }
         if (!isNullOrUndefined(formRef.componentInstance.to) && formRef.componentInstance.to != "") {
-          routingCriterias.push(new RoutingCriteriaEntry(0, 'to', formRef.componentInstance.to));
+          routingCriterias.push({ entityId: 0, name: 'to', expression: formRef.componentInstance.to });
         }
         if (!isNullOrUndefined(formRef.componentInstance.action) && formRef.componentInstance.action != "") {
-          routingCriterias.push(new RoutingCriteriaEntry(0, 'action', formRef.componentInstance.action));
+          routingCriterias.push({ entityId: 0, name: 'action', expression: formRef.componentInstance.action });
         }
         if (!isNullOrUndefined(formRef.componentInstance.service) && formRef.componentInstance.service != "") {
-          routingCriterias.push(new RoutingCriteriaEntry(0, 'service', formRef.componentInstance.service));
+          routingCriterias.push({ entityId: 0, name: 'service', expression: formRef.componentInstance.service });
         }
         let backendEntry = new BackendFilterEntry(0, this.rowNumber + 1, formRef.componentInstance.plugin, routingCriterias, false);
         if (this.findRowsIndex(backendEntry) == -1) {
@@ -178,16 +178,16 @@ export class MessageFilterComponent implements DirtyOperations {
       if (result == true) {
         let routingCriterias: Array<RoutingCriteriaEntry> = [];
         if (!isNullOrUndefined(formRef.componentInstance.from)) {
-          routingCriterias.push(new RoutingCriteriaEntry(0, 'from', formRef.componentInstance.from));
+          routingCriterias.push({ entityId: 0, name: 'from', expression: formRef.componentInstance.from });
         }
         if (!isNullOrUndefined(formRef.componentInstance.to)) {
-          routingCriterias.push(new RoutingCriteriaEntry(0, 'to', formRef.componentInstance.to));
+          routingCriterias.push({ entityId: 0, name: 'to', expression: formRef.componentInstance.to });
         }
         if (!isNullOrUndefined(formRef.componentInstance.action)) {
-          routingCriterias.push(new RoutingCriteriaEntry(0, 'action', formRef.componentInstance.action));
+          routingCriterias.push({ entityId: 0, name: 'action', expression: formRef.componentInstance.action });
         }
         if (!isNullOrUndefined(formRef.componentInstance.service)) {
-          routingCriterias.push(new RoutingCriteriaEntry(0, 'service', formRef.componentInstance.service));
+          routingCriterias.push({ entityId: 0, name: 'service', expression: formRef.componentInstance.service });
         }
         let backendEntry = new BackendFilterEntry(0, this.rowNumber + 1, formRef.componentInstance.plugin, routingCriterias, false);
         let backendEntryPos = this.findRowsIndex(backendEntry);
@@ -224,7 +224,7 @@ export class MessageFilterComponent implements DirtyOperations {
     if (value.length == 0) {
       return;
     }
-    let newRC = new RoutingCriteriaEntry(null, rc, value);
+    let newRC = { name: rc, expression: value };
     this.rows[this.rowNumber].routingCriterias.push(newRC);
     this.createValueProperty(rc, newRC, this.rowNumber);
   }
diff --git a/smp-angular/src/app/messagefilter/messagefilterresult.ts b/smp-angular/src/app/messagefilter/messagefilterresult.ts
index 9e98822ed77e90002e437e10ea184a3367087a12..acd62b75f7a76698a7f00cd414f357b6fdfae9c0 100644
--- a/smp-angular/src/app/messagefilter/messagefilterresult.ts
+++ b/smp-angular/src/app/messagefilter/messagefilterresult.ts
@@ -1,6 +1,6 @@
 import {BackendFilterEntry} from "./backendfilterentry";
-export class MessageFilterResult {
 
-  constructor(public messageFilterEntries: Array<BackendFilterEntry>, public areFiltersPersisted: boolean) {
-  }
+export interface MessageFilterResult {
+  messageFilterEntries: Array<BackendFilterEntry>;
+  areFiltersPersisted: boolean;
 }
diff --git a/smp-angular/src/app/messagefilter/routingcriteriaentry.ts b/smp-angular/src/app/messagefilter/routingcriteriaentry.ts
index 44df5794bf91961c3779ea8c2aa050a288fe4a16..05f64a5c6a2da77527797feef0b1c918a4ca8e49 100644
--- a/smp-angular/src/app/messagefilter/routingcriteriaentry.ts
+++ b/smp-angular/src/app/messagefilter/routingcriteriaentry.ts
@@ -1,9 +1,5 @@
-export class RoutingCriteriaEntry {
-
-  public constructor(
-    public entityId: number,
-    public name: string,
-    public expression: string
-  ) {
-  }
+export interface RoutingCriteriaEntry {
+  entityId?: number;
+  name: string;
+  expression: string;
 }
diff --git a/smp-angular/src/app/security/domain.ts b/smp-angular/src/app/security/domain.ts
index aba5088dced939ccbb3c6914a364edd4232d0bf1..b6af78f7838ee26990c9b8c79129431220e9714f 100644
--- a/smp-angular/src/app/security/domain.ts
+++ b/smp-angular/src/app/security/domain.ts
@@ -1,7 +1,4 @@
-export class Domain { 
+export interface Domain {
   code: string;
-  name: string; 
-
-  constructor(code: string, name: string) {
-  }
+  name: string;
 }
diff --git a/smp-angular/src/app/security/user.ts b/smp-angular/src/app/security/user.ts
index f793d56cf2935c5c41f62baa84039fd151d7a064..d0042d6c0b64c7da99b34a477634d8fd85754654 100644
--- a/smp-angular/src/app/security/user.ts
+++ b/smp-angular/src/app/security/user.ts
@@ -1,9 +1,6 @@
-export class User {
+export interface User {
   id: number;
   username: string;
   authorities: Array<string>;
-  defaultPasswordUsed:boolean;
-
-  constructor(id: number, login: string, profile: string, authorities: Array<string>,defaultPasswordUsed:boolean) {
-  }
+  defaultPasswordUsed: boolean;
 }
diff --git a/smp-angular/src/app/servicegroup/servicegroup-controller.ts b/smp-angular/src/app/servicegroup/servicegroup-controller.ts
index 7e761fac90547afeb04f9a4ddf3b10fbfe536b8e..cb347f44605f46028f39718cc86d34079baa593f 100644
--- a/smp-angular/src/app/servicegroup/servicegroup-controller.ts
+++ b/smp-angular/src/app/servicegroup/servicegroup-controller.ts
@@ -6,12 +6,9 @@ import {AlertService} from "../alert/alert.service";
 import {ServiceGroupExtensionDialogComponent} from "./servicegroup-extension-dialog/servicegroup-extension-dialog.component";
 import {ServicegroupMetadatalistDialogComponent} from "./servicegroup-metadatalist-dialog/servicegroup-metadatalist-dialog.component";
 
-export class ServiceGroupController extends SearchTableController {
-
-  constructor(public dialog: MdDialog) {
-    super();
-  }
+export class ServiceGroupController implements SearchTableController {
 
+  constructor(public dialog: MdDialog) { }
 
   public showDetails(row: any) {
     let dialogRef: MdDialogRef<ServicegroupDetailsDialogComponent> = this.dialog.open(ServicegroupDetailsDialogComponent);
@@ -19,7 +16,6 @@ export class ServiceGroupController extends SearchTableController {
     dialogRef.afterClosed().subscribe(result => {
       //Todo:
     });
-
   }
 
   public showExtension(row: any) {
@@ -36,15 +32,10 @@ export class ServiceGroupController extends SearchTableController {
     dialogRef.afterClosed().subscribe(result => {
       //Todo:
     });
-
   }
 
 
-  public edit(row: any) {
+  public edit(row: any) { }
 
-  }
-
-  public  delete(row: any) {
-
-  }
+  public  delete(row: any) { }
 }
diff --git a/smp-angular/src/app/servicegroup/servicegroupro.ts b/smp-angular/src/app/servicegroup/servicegroupro.ts
index c733d50848cb859e9158d5f7e32aee84a2b5fc35..3e0da84a048126bff17c7080fe00e42dcc88a5d6 100644
--- a/smp-angular/src/app/servicegroup/servicegroupro.ts
+++ b/smp-angular/src/app/servicegroup/servicegroupro.ts
@@ -1,18 +1,10 @@
-export class ServiceGroupRO {
-  constructor(public serviceGroupROId: ServiceGroupROId,
-              public domain: string
-
-  ) {
-
-  }
+export interface ServiceGroupRO {
+  serviceGroupROId: ServiceGroupROId;
+  domain: string;
 }
 
-
-class ServiceGroupROId {
-  constructor(public participantId: string,
-              public participantSchema: string
-  ) {
-
-  }
+export interface ServiceGroupROId {
+  participantId: string;
+  participantSchema: string;
 }
 
diff --git a/smp-angular/src/app/truststore/trustore.model.ts b/smp-angular/src/app/truststore/trustore.model.ts
index e8371127fe1e2fa4e74762c10bd371b31fc45425..61fac53014edba9ee9316d5f47b9d9017662a65e 100644
--- a/smp-angular/src/app/truststore/trustore.model.ts
+++ b/smp-angular/src/app/truststore/trustore.model.ts
@@ -1,9 +1,8 @@
 /**
  * @author Thomas Dussart
- * @since 3.3
  */
-export class TrustStoreEntry {
-  name: string
+export interface TrustStoreEntry {
+  name: string;
   subject: string;
   issuer: string;
   validFrom: string;
diff --git a/smp-angular/src/app/user/user-controller.ts b/smp-angular/src/app/user/user-controller.ts
index 22bc02d8d7e1084b39f0f524af6fb59edcb239bd..37f2f617161403df53f10756fc756df50731d449 100644
--- a/smp-angular/src/app/user/user-controller.ts
+++ b/smp-angular/src/app/user/user-controller.ts
@@ -2,13 +2,9 @@ import {SearchTableController} from "../common/searchtable/searchtable-controlle
 import {MdDialog, MdDialogRef} from "@angular/material";
 import {UserDetailsDialogComponent} from "./user-details-dialog/user-details-dialog.component";
 
+export class UserController implements SearchTableController {
 
-export class UserController extends SearchTableController {
-
-  constructor(public dialog: MdDialog) {
-    super();
-  }
-
+  constructor(public dialog: MdDialog) { }
 
   public showDetails(row: any) {
     let dialogRef: MdDialogRef<UserDetailsDialogComponent> = this.dialog.open(UserDetailsDialogComponent);
@@ -16,17 +12,9 @@ export class UserController extends SearchTableController {
     dialogRef.afterClosed().subscribe(result => {
       //Todo:
     });
-
   }
 
+  public edit(row: any) { }
 
-
-
-  public edit(row: any) {
-
-  }
-
-  public  delete(row: any) {
-
-  }
+  public  delete(row: any) { }
 }
diff --git a/smp-angular/src/app/user/userro.ts b/smp-angular/src/app/user/userro.ts
index 1220afa7f4a0576167f7e9d8e821fa7a4ee67370..c6a1cd2d4a40c4a8cd07abc209330889a3d4cdd4 100644
--- a/smp-angular/src/app/user/userro.ts
+++ b/smp-angular/src/app/user/userro.ts
@@ -1,10 +1,4 @@
-export class UserRO {
-  constructor(public username: string,
-              public admin: string,
-  ) {
-
-  }
+export interface UserRO {
+  username: string;
+  admin: string;
 }
-
-
-