diff --git a/alfa-client/libs/admin/settings/src/lib/organisationseinheit/organisationseinheit-container/organisationseinheit-container.component.spec.ts b/alfa-client/libs/admin/settings/src/lib/organisationseinheit/organisationseinheit-container/organisationseinheit-container.component.spec.ts
index ff5d2905ee7f60f01e81d6927585617c0729bc3d..4df2de4c73425c2807d46e7d01d53d4839eb34af 100644
--- a/alfa-client/libs/admin/settings/src/lib/organisationseinheit/organisationseinheit-container/organisationseinheit-container.component.spec.ts
+++ b/alfa-client/libs/admin/settings/src/lib/organisationseinheit/organisationseinheit-container/organisationseinheit-container.component.spec.ts
@@ -21,9 +21,13 @@ describe('OrganisationsEinheitContainerComponent', () => {
     createAdminOrganisationsEinheitListResource(),
   );
 
+  const listSelector: string = getDataTestIdOf('organisations-einheit-list');
+
   beforeEach(async () => {
-    organisationsEinheitService = mock(OrganisationsEinheitService);
-    organisationsEinheitService.getList = jest.fn().mockReturnValue(of(organisationsEinheitListStateResource));
+    organisationsEinheitService = {
+      ...mock(OrganisationsEinheitService),
+      getList: jest.fn().mockReturnValue(of(organisationsEinheitListStateResource)),
+    };
 
     await TestBed.configureTestingModule({
       declarations: [
@@ -71,8 +75,6 @@ describe('OrganisationsEinheitContainerComponent', () => {
 
   describe('template', () => {
     describe('organisationsEinheiten list', () => {
-      const listSelector: string = getDataTestIdOf('organisations-einheit-list');
-
       it('should show list', () => {
         existsAsHtmlElement(fixture, listSelector);
       });
diff --git a/alfa-client/libs/admin/settings/src/lib/organisationseinheit/organisationseinheit-container/organisationseinheit-container.component.ts b/alfa-client/libs/admin/settings/src/lib/organisationseinheit/organisationseinheit-container/organisationseinheit-container.component.ts
index ca1097d75771a13f6ff1af77edf30cb55b83c8d5..c862b254f5100430ac6f1f6fdd522511465864bb 100644
--- a/alfa-client/libs/admin/settings/src/lib/organisationseinheit/organisationseinheit-container/organisationseinheit-container.component.ts
+++ b/alfa-client/libs/admin/settings/src/lib/organisationseinheit/organisationseinheit-container/organisationseinheit-container.component.ts
@@ -12,11 +12,11 @@ import { OrganisationsEinheitService } from '../organisationseinheit.service';
 export class OrganisationsEinheitContainerComponent implements OnInit {
   organisationsEinheitListStateResource$: Observable<StateResource<AdminOrganisationsEinheitListResource>>;
 
+  public readonly organisationsEinheitListLinkRel = OrganisationsEinheitListLinkRel;
+
   constructor(private organisationsEinheitService: OrganisationsEinheitService) {}
 
   ngOnInit(): void {
     this.organisationsEinheitListStateResource$ = this.organisationsEinheitService.getList();
   }
-
-  public readonly organisationsEinheitListLinkRel = OrganisationsEinheitListLinkRel;
 }
diff --git a/alfa-client/libs/admin/settings/src/lib/organisationseinheit/organisationseinheit-container/organisationseinheit-list/organisationseinheit-list.component.html b/alfa-client/libs/admin/settings/src/lib/organisationseinheit/organisationseinheit-container/organisationseinheit-list/organisationseinheit-list.component.html
index 9d95617c210484008aa836d6894cdcfbdb4e19e9..982a56b5f01c99c6fd451fe2579e1361de22f2b9 100644
--- a/alfa-client/libs/admin/settings/src/lib/organisationseinheit/organisationseinheit-container/organisationseinheit-list/organisationseinheit-list.component.html
+++ b/alfa-client/libs/admin/settings/src/lib/organisationseinheit/organisationseinheit-container/organisationseinheit-list/organisationseinheit-list.component.html
@@ -1,7 +1,7 @@
 <ods-list *ngIf="organisationsEinheitResources.length > 0" data-test-id="organisations-einheit-list">
   <ods-list-item
     *ngFor="let organisationsEinheitResource of organisationsEinheitResources"
-    [routerLink]="organisationsEinheitResource | toResourceUri: OrganisationsEinheitLinkRel.SELF"
+    [routerLink]="organisationsEinheitResource | toResourceUri"
     [class.text-red-500]="
       organisationsEinheitResource.syncResult === AdminOrganisationsEinheitSyncResult.NOT_FOUND_IN_PVOG ||
       organisationsEinheitResource.syncResult === AdminOrganisationsEinheitSyncResult.ORGANISATIONSEINHEIT_ID_NOT_UNIQUE
diff --git a/alfa-client/libs/admin/settings/src/lib/organisationseinheit/organisationseinheit-container/organisationseinheit-list/organisationseinheit-list.component.spec.ts b/alfa-client/libs/admin/settings/src/lib/organisationseinheit/organisationseinheit-container/organisationseinheit-list/organisationseinheit-list.component.spec.ts
index 3daf06a6739796c053335cbddc9f79a37587ca7f..1ed84ced8bdd0a6662cb17d9d227c1b3a2a46b31 100644
--- a/alfa-client/libs/admin/settings/src/lib/organisationseinheit/organisationseinheit-container/organisationseinheit-list/organisationseinheit-list.component.spec.ts
+++ b/alfa-client/libs/admin/settings/src/lib/organisationseinheit/organisationseinheit-container/organisationseinheit-list/organisationseinheit-list.component.spec.ts
@@ -3,6 +3,7 @@ import { ConvertForDataTestPipe, ToResourceUriPipe } from '@alfa-client/tech-sha
 import {
   existsAsHtmlElement,
   getElementFromFixture,
+  getElementFromFixtureByType,
   getElementsFromFixture,
   mock,
   notExistsAsHtmlElement,
@@ -22,9 +23,13 @@ describe('OrganisationsEinheitListComponent', () => {
 
   const listSelector: string = getDataTestIdOf('organisations-einheit-list');
   const listItemSelector: string = getDataTestIdOf('organisations-einheit-list-item');
+  const organisationsEinheitNameSelector: string = getDataTestIdOf('organisations-einheit-name');
+  const organisationsEinheitIdSelector: string = getDataTestIdOf('organisations-einheit-id');
 
-  const organisationsEinheitResource: AdminOrganisationsEinheitResource = createAdminOrganisationsEinheitResource();
-  organisationsEinheitResource.syncResult = AdminOrganisationsEinheitSyncResult.NOT_FOUND_IN_PVOG;
+  const organisationsEinheitResource: AdminOrganisationsEinheitResource = {
+    ...createAdminOrganisationsEinheitResource(),
+    syncResult: AdminOrganisationsEinheitSyncResult.NOT_FOUND_IN_PVOG,
+  };
 
   beforeEach(async () => {
     await TestBed.configureTestingModule({
@@ -49,30 +54,26 @@ describe('OrganisationsEinheitListComponent', () => {
 
   describe('input', () => {
     describe('organisationsEinheitResources', () => {
-      let listItemElement: HTMLElement;
-      let nameElement: Element;
-      let idElement: Element;
-      let iconElement: Element;
-
       beforeEach(() => {
         component.organisationsEinheitResources = [organisationsEinheitResource];
         fixture.detectChanges();
-
-        listItemElement = getElementFromFixture(fixture, listItemSelector);
-        nameElement = listItemElement.querySelector('[data-test-id="organisations-einheit-name"]');
-        idElement = listItemElement.querySelector('[data-test-id="organisations-einheit-id"]');
-        iconElement = listItemElement.querySelector('ods-exclamation-icon');
       });
 
       it('should set organisationsEinheitResource name', () => {
+        const nameElement: HTMLElement = getElementFromFixture(fixture, organisationsEinheitNameSelector);
+
         expect(nameElement.textContent).toBe(organisationsEinheitResource.name);
       });
 
       it('should set organisationsEinheitResource organisationsEinheitId', () => {
+        const idElement: HTMLElement = getElementFromFixture(fixture, organisationsEinheitIdSelector);
+
         expect(idElement.textContent).toBe(organisationsEinheitResource.organisationsEinheitId);
       });
 
       it('should set exclamation icon', () => {
+        const iconElement: ExclamationIconComponent = getElementFromFixtureByType(fixture, ExclamationIconComponent);
+
         expect(iconElement).toBeTruthy();
       });
     });
diff --git a/alfa-client/libs/admin/settings/src/lib/organisationseinheit/organisationseinheit-container/organisationseinheit-list/organisationseinheit-list.component.ts b/alfa-client/libs/admin/settings/src/lib/organisationseinheit/organisationseinheit-container/organisationseinheit-list/organisationseinheit-list.component.ts
index 390737c28a28a76edc10fa6fe8b9e44519270239..51937dcb6d5bc30bec596b5514879c14fca79dcc 100644
--- a/alfa-client/libs/admin/settings/src/lib/organisationseinheit/organisationseinheit-container/organisationseinheit-list/organisationseinheit-list.component.ts
+++ b/alfa-client/libs/admin/settings/src/lib/organisationseinheit/organisationseinheit-container/organisationseinheit-list/organisationseinheit-list.component.ts
@@ -1,6 +1,5 @@
 import { AdminOrganisationsEinheitResource, AdminOrganisationsEinheitSyncResult } from '@admin-client/admin-settings';
 import { Component, Input } from '@angular/core';
-import { OrganisationsEinheitLinkRel } from '../../organisations-einheit.linkrel';
 
 @Component({
   selector: 'admin-organisationseinheit-list',
@@ -18,6 +17,8 @@ export class OrganisationsEinheitListComponent {
     this.moveChildrenIntoParentLevel(list);
   }
 
+  public readonly AdminOrganisationsEinheitSyncResult = AdminOrganisationsEinheitSyncResult;
+
   moveChildrenIntoParentLevel(list: AdminOrganisationsEinheitResource[]): void {
     list.forEach((parent: AdminOrganisationsEinheitResource) => {
       this._organisationsEinheitResources.push(parent);
@@ -30,7 +31,4 @@ export class OrganisationsEinheitListComponent {
       }
     });
   }
-
-  public readonly AdminOrganisationsEinheitSyncResult = AdminOrganisationsEinheitSyncResult;
-  public readonly OrganisationsEinheitLinkRel = OrganisationsEinheitLinkRel;
 }
diff --git a/alfa-client/libs/admin/settings/src/lib/organisationseinheit/organisationseinheit-form-container/organisationseinheit-form-container.component.spec.ts b/alfa-client/libs/admin/settings/src/lib/organisationseinheit/organisationseinheit-form-container/organisationseinheit-form-container.component.spec.ts
index fae8d021d698cbb8c2dead8ecf0e789d97468c39..5c1c87686355ef766dc5ff2afabf7b04308bb28d 100644
--- a/alfa-client/libs/admin/settings/src/lib/organisationseinheit/organisationseinheit-form-container/organisationseinheit-form-container.component.spec.ts
+++ b/alfa-client/libs/admin/settings/src/lib/organisationseinheit/organisationseinheit-form-container/organisationseinheit-form-container.component.spec.ts
@@ -18,9 +18,14 @@ describe('OrganisationsEinheitFormContainerComponent', () => {
   const organisationsEinheitStateResource: StateResource<AdminOrganisationsEinheitResource> =
     createStateResource(organisationsEinheitResource);
 
+  const headlineSelector: string = getDataTestIdOf('organisations-form-container-headline');
+  const formSelector: string = getDataTestIdOf('organisations-form');
+
   beforeEach(async () => {
-    organisationsEinheitService = mock(OrganisationsEinheitService);
-    organisationsEinheitService.get = jest.fn().mockReturnValue(of(organisationsEinheitStateResource));
+    organisationsEinheitService = {
+      ...mock(OrganisationsEinheitService),
+      get: jest.fn().mockReturnValue(of(organisationsEinheitStateResource)),
+    };
 
     await TestBed.configureTestingModule({
       declarations: [OrganisationsEinheitFormContainerComponent, MockComponent(OrganisationsEinheitFormComponent)],
@@ -62,8 +67,6 @@ describe('OrganisationsEinheitFormContainerComponent', () => {
 
   describe('template', () => {
     describe('headline', () => {
-      const headlineSelector: string = getDataTestIdOf('organisations-form-container-headline');
-
       it('should show headline', () => {
         existsAsHtmlElement(fixture, headlineSelector);
       });
@@ -76,8 +79,6 @@ describe('OrganisationsEinheitFormContainerComponent', () => {
     });
 
     describe('organisationsEinheit form', () => {
-      const formSelector: string = getDataTestIdOf('organisations-form');
-
       it('should show form', () => {
         existsAsHtmlElement(fixture, formSelector);
       });
diff --git a/alfa-client/libs/admin/settings/src/lib/organisationseinheit/organisationseinheit-form-container/organisationseinheit-form/organisationseinheit-form.component.spec.ts b/alfa-client/libs/admin/settings/src/lib/organisationseinheit/organisationseinheit-form-container/organisationseinheit-form/organisationseinheit-form.component.spec.ts
index ff2443a53a10269a02cd9f210738e317ba2b7f79..ad4f7bd11d40c6444ba2fdbbc169cd0b81aff0f4 100644
--- a/alfa-client/libs/admin/settings/src/lib/organisationseinheit/organisationseinheit-form-container/organisationseinheit-form/organisationseinheit-form.component.spec.ts
+++ b/alfa-client/libs/admin/settings/src/lib/organisationseinheit/organisationseinheit-form-container/organisationseinheit-form/organisationseinheit-form.component.spec.ts
@@ -21,6 +21,10 @@ describe('OrganisationsEinheitFormComponent', () => {
   let formService: OrganisationsEinheitFormService;
   let organisationsEinheitService: Mock<OrganisationsEinheitService>;
 
+  const signaturComponentSelector: string = getDataTestIdOf('organisations-einheit-signatur-component');
+  const saveButtonSelector: string = getDataTestIdOf('save-button');
+  const invalidMessageSpanSelector: string = getDataTestIdOf('invalid-empty-message-span');
+
   beforeEach(async () => {
     organisationsEinheitService = mock(OrganisationsEinheitService);
 
@@ -84,24 +88,18 @@ describe('OrganisationsEinheitFormComponent', () => {
 
   describe('template', () => {
     describe('organisationsEinheit signatur component', () => {
-      const signaturComponentSelector: string = getDataTestIdOf('organisations-einheit-signatur-component');
-
       it('should show signatur component', () => {
         existsAsHtmlElement(fixture, signaturComponentSelector);
       });
     });
 
     describe('save button', () => {
-      const saveButtonSelector: string = getDataTestIdOf('save-button');
-
       it('should show save button', () => {
         existsAsHtmlElement(fixture, saveButtonSelector);
       });
     });
 
     describe('invalid message', () => {
-      const invalidMessageSpanSelector: string = getDataTestIdOf('invalid-empty-message-span');
-
       it('should show if form is invalid', () => {
         const problemDetail: ProblemDetail = {
           ...createProblemDetail(),
diff --git a/alfa-client/libs/admin/settings/src/lib/organisationseinheit/organisationseinheit-form-container/organisationseinheit-form/organisationseinheit-signatur/organisationseinheit-signatur.component.spec.ts b/alfa-client/libs/admin/settings/src/lib/organisationseinheit/organisationseinheit-form-container/organisationseinheit-form/organisationseinheit-signatur/organisationseinheit-signatur.component.spec.ts
index 4d70986f632f6b67780bd12444d8bdd61916e907..9f47fc9511c867a415ced0e677eb486c083a970c 100644
--- a/alfa-client/libs/admin/settings/src/lib/organisationseinheit/organisationseinheit-form-container/organisationseinheit-form/organisationseinheit-signatur/organisationseinheit-signatur.component.spec.ts
+++ b/alfa-client/libs/admin/settings/src/lib/organisationseinheit/organisationseinheit-form-container/organisationseinheit-form/organisationseinheit-signatur/organisationseinheit-signatur.component.spec.ts
@@ -16,6 +16,8 @@ describe('OrganisationsEinheitSignaturComponent', () => {
   let fixture: ComponentFixture<OrganisationsEinheitSignaturComponent>;
   let formService: OrganisationsEinheitFormService;
 
+  const signaturTextareaSelector: string = getDataTestIdOf('signatur-text');
+
   beforeEach(async () => {
     formService = new OrganisationsEinheitFormService(new FormBuilder(), useFromMock(mock(OrganisationsEinheitService)));
 
@@ -42,8 +44,6 @@ describe('OrganisationsEinheitSignaturComponent', () => {
   describe('template', () => {
     describe('ods-textarea-editor', () => {
       describe('input', () => {
-        const signaturTextareaSelector: string = getDataTestIdOf('signatur-text');
-
         it('should set signatur field', () => {
           const textAreaEditor: HTMLElement = getElementFromFixture(fixture, signaturTextareaSelector);
 
diff --git a/alfa-client/libs/admin/settings/src/lib/postfach/postfach-container/postfach-form/postfach-form.component.spec.ts b/alfa-client/libs/admin/settings/src/lib/postfach/postfach-container/postfach-form/postfach-form.component.spec.ts
index 59075f400d6472a12e718ade672dde58d60ba851..8c8096d7df647918130510a8ac0fad54499064f7 100644
--- a/alfa-client/libs/admin/settings/src/lib/postfach/postfach-container/postfach-form/postfach-form.component.spec.ts
+++ b/alfa-client/libs/admin/settings/src/lib/postfach/postfach-container/postfach-form/postfach-form.component.spec.ts
@@ -57,12 +57,12 @@ describe('PostfachFormComponent', () => {
 
   describe('set postfachStateResource', () => {
     it('should return resource', () => {
-      const updatePostfachResourceFn: jest.SpyInstance = jest.spyOn(component, 'updatePostfachResource');
-      const postfachResource: PostfachResource = createPostfachResource();
+      component.updatePostfachResource = jest.fn();
 
+      const postfachResource: PostfachResource = createPostfachResource();
       component.postfachStateResource = createStateResource(postfachResource);
 
-      expect(updatePostfachResourceFn).toHaveBeenCalledWith(postfachResource);
+      expect(component.updatePostfachResource).toHaveBeenCalledWith(postfachResource);
     });
   });
 
diff --git a/alfa-client/libs/tech-shared/src/lib/resource/resource.service.ts b/alfa-client/libs/tech-shared/src/lib/resource/resource.service.ts
index a19ce64d7eaaa7d7163636dae46701ebf3b7aa00..1b5ea7e05416786b91861e5f79a247501076fed3 100644
--- a/alfa-client/libs/tech-shared/src/lib/resource/resource.service.ts
+++ b/alfa-client/libs/tech-shared/src/lib/resource/resource.service.ts
@@ -120,19 +120,17 @@ export abstract class ResourceService<B extends Resource, T extends Resource> {
   }
 
   public save(toSave: unknown): Observable<StateResource<T>> {
-    return this.persist(this.doSave.bind(this), toSave);
+    const previousResource: T = this.stateResource.value.resource;
+    return this.handleSave(this.doSave(previousResource, toSave));
   }
 
   public patch(toPatch: unknown): Observable<StateResource<T>> {
-    return this.persist(this.doPatch.bind(this), toPatch);
+    const previousResource: T = this.stateResource.value.resource;
+    return this.handleSave(this.doPatch(previousResource, toPatch));
   }
 
-  private persist(
-    action: (previousResource: T, payload: unknown) => Observable<T>,
-    payload: unknown,
-  ): Observable<StateResource<T>> {
-    const previousResource: T = this.stateResource.value.resource;
-    return action(previousResource, payload).pipe(
+  private handleSave(response$: Observable<T>): Observable<StateResource<T>> {
+    return response$.pipe(
       tap((loadedResource: T) => this.stateResource.next(createStateResource(loadedResource))),
       map(() => this.stateResource.value),
       catchError((errorResponse: HttpErrorResponse) => this.handleError(errorResponse)),
diff --git a/alfa-client/libs/tech-shared/src/lib/service/formservice.abstract.spec.ts b/alfa-client/libs/tech-shared/src/lib/service/formservice.abstract.spec.ts
index ea2d29cd9a61e729d6267d4029c14f6e13757d02..d525b273f7de7b9f8e79b596c4ff58b128e23796 100644
--- a/alfa-client/libs/tech-shared/src/lib/service/formservice.abstract.spec.ts
+++ b/alfa-client/libs/tech-shared/src/lib/service/formservice.abstract.spec.ts
@@ -167,13 +167,17 @@ describe('AbstractFormService', () => {
 
   describe('isInvalid', () => {
     it('should return false on valid state', () => {
-      expect(formService.isInvalid()).toBeFalsy();
+      const isInvalid: boolean = formService.isInvalid();
+
+      expect(isInvalid).toBeFalsy();
     });
 
     it('should return true on invalid state', () => {
       formService.form.controls[TestFormService.FIELD].setErrors({ required: true });
 
-      expect(formService.isInvalid()).toBeTruthy();
+      const isInvalid: boolean = formService.isInvalid();
+
+      expect(isInvalid).toBeTruthy();
     });
   });
 });