diff --git a/alfa-client/apps/admin/src/app/app.component.html b/alfa-client/apps/admin/src/app/app.component.html
index 66f83dc085317b14d81ad4a3b54fec85b9f88890..aec8d53fbb5c0848c05817014a197e6fbec5ccdf 100644
--- a/alfa-client/apps/admin/src/app/app.component.html
+++ b/alfa-client/apps/admin/src/app/app.component.html
@@ -18,9 +18,9 @@
   <div class="flex h-screen w-full justify-center overflow-y-auto">
     <ods-navbar data-test-id="navigation">
       <ng-container *ngIf="apiRoot | hasLink: ApiRootLinkRel.CONFIGURATION">
-        <ods-nav-item caption="Organisationseinheiten" to="/organisationseinheiten">
-          <ods-orga-unit-icon icon />
-        </ods-nav-item>
+        <!--        <ods-nav-item caption="Organisationseinheiten" to="/organisationseinheiten">-->
+        <!--          <ods-orga-unit-icon icon />-->
+        <!--        </ods-nav-item>-->
         <ods-nav-item caption="Postfach" to="/postfach">
           <ods-mailbox-icon icon />
         </ods-nav-item>
diff --git a/alfa-client/apps/admin/src/app/app.component.spec.ts b/alfa-client/apps/admin/src/app/app.component.spec.ts
index 9dc1460ef48786b4278b89bc2fef350c0e5d45f1..d10cfd74e6f7e55e727bf6779c494f0f5311f8b7 100644
--- a/alfa-client/apps/admin/src/app/app.component.spec.ts
+++ b/alfa-client/apps/admin/src/app/app.component.spec.ts
@@ -22,7 +22,7 @@ import {
   OrgaUnitIconComponent,
 } from '@ods/system';
 import { AuthenticationService } from 'authentication';
-import { NavigationComponent } from 'libs/admin-settings/src/lib/navigation/navigation.component';
+import { NavigationComponent } from 'libs/admin/settings/src/lib/navigation/navigation.component';
 import { createApiRootResource } from 'libs/api-root-shared/test/api-root';
 import { getDataTestIdOf } from 'libs/tech-shared/test/data-test';
 import { MockComponent, MockDirective } from 'ng-mocks';
diff --git a/alfa-client/apps/admin/src/app/app.routes.ts b/alfa-client/apps/admin/src/app/app.routes.ts
index 80dafdcc1dfdf77729e2041e3ca263ac9a0cd2fe..fdff512b76c4e15d4026c8c250cce90357cf98be 100644
--- a/alfa-client/apps/admin/src/app/app.routes.ts
+++ b/alfa-client/apps/admin/src/app/app.routes.ts
@@ -1,5 +1,4 @@
 import { Route } from '@angular/router';
-import { OrganisationseinheitPageComponent } from '../pages/organisationseinheit/organisationseinheit-page/organisationseinheit-page.component';
 import { PostfachPageComponent } from '../pages/postfach/postfach-page/postfach-page.component';
 
 export const appRoutes: Route[] = [
@@ -13,9 +12,9 @@ export const appRoutes: Route[] = [
     component: PostfachPageComponent,
     title: 'Admin | Postfach',
   },
-  {
-    path: 'organisationseinheiten',
-    component: OrganisationseinheitPageComponent,
-    title: 'Admin | Organisationseinheiten',
-  },
+  // {
+  //   path: 'organisationseinheiten',
+  //   component: OrganisationseinheitPageComponent,
+  //   title: 'Admin | Organisationseinheiten',
+  // },
 ];
diff --git a/alfa-client/apps/admin/src/styles.scss b/alfa-client/apps/admin/src/styles.scss
index d4e151f329f1cefda33709ace138cd39fb383a7a..9a4448d0f9c72e50e1aac1b190f36cf3118d060a 100644
--- a/alfa-client/apps/admin/src/styles.scss
+++ b/alfa-client/apps/admin/src/styles.scss
@@ -1,8 +1,14 @@
+@use '@angular/material' as mat;
+
 @tailwind base;
 @tailwind components;
 @tailwind utilities;
 
 @import 'libs/design-system/src/lib/tailwind-preset/root.css';
+@import 'libs/ui/src/lib/font/font_material';
+
+@include mat.all-component-typographies();
+@include mat.core();
 
 .heading-1 {
   @apply text-3xl font-medium text-text;
diff --git a/alfa-client/libs/admin-settings/src/lib/navigation/navigation.component.html b/alfa-client/libs/admin-settings/src/lib/navigation/navigation.component.html
deleted file mode 100644
index 73fdc05b075776a3751e4f04ef7f6ebf08eb0e78..0000000000000000000000000000000000000000
--- a/alfa-client/libs/admin-settings/src/lib/navigation/navigation.component.html
+++ /dev/null
@@ -1,2 +0,0 @@
-<admin-organisationseinheit-navigation-item></admin-organisationseinheit-navigation-item>
-<admin-postfach-navigation-item></admin-postfach-navigation-item>
diff --git a/alfa-client/libs/admin-settings/src/lib/postfach/postfach.service.ts b/alfa-client/libs/admin-settings/src/lib/postfach/postfach.service.ts
deleted file mode 100644
index 24eb2f3b5b2ad34101a7ba4cfe920a709949e88c..0000000000000000000000000000000000000000
--- a/alfa-client/libs/admin-settings/src/lib/postfach/postfach.service.ts
+++ /dev/null
@@ -1,26 +0,0 @@
-import { HttpError, StateResource } from '@alfa-client/tech-shared';
-import { Injectable } from '@angular/core';
-import { Observable } from 'rxjs';
-import { SettingName } from '../admin-settings.model';
-import { PostfachResourceService } from './postfach-resource.service';
-import { Postfach, PostfachResource, PostfachSettingsItem } from './postfach.model';
-
-@Injectable()
-export class PostfachService {
-  constructor(private postfachResourceService: PostfachResourceService) {}
-
-  public get(): Observable<StateResource<PostfachResource>> {
-    return this.postfachResourceService.get();
-  }
-
-  public save(postfach: Postfach): Observable<StateResource<PostfachResource | HttpError>> {
-    return this.postfachResourceService.save(this.buildPostfachSettingItem(postfach));
-  }
-
-  private buildPostfachSettingItem(postfach: Postfach): PostfachSettingsItem {
-    return {
-      name: SettingName.POSTFACH,
-      settingBody: postfach,
-    };
-  }
-}
diff --git a/alfa-client/libs/admin-settings/.eslintrc.json b/alfa-client/libs/admin/settings/.eslintrc.json
similarity index 90%
rename from alfa-client/libs/admin-settings/.eslintrc.json
rename to alfa-client/libs/admin/settings/.eslintrc.json
index adbe7ae2dfabd4a42804f00846baec80877f4c5c..3230caf3d2f01580c97f01513e96c9c4727c91c9 100644
--- a/alfa-client/libs/admin-settings/.eslintrc.json
+++ b/alfa-client/libs/admin/settings/.eslintrc.json
@@ -1,5 +1,5 @@
 {
-  "extends": ["../../.eslintrc.json"],
+  "extends": ["../../../.eslintrc.json"],
   "ignorePatterns": ["!**/*"],
   "overrides": [
     {
diff --git a/alfa-client/libs/admin-settings/README.md b/alfa-client/libs/admin/settings/README.md
similarity index 100%
rename from alfa-client/libs/admin-settings/README.md
rename to alfa-client/libs/admin/settings/README.md
diff --git a/alfa-client/libs/admin-settings/jest.config.ts b/alfa-client/libs/admin/settings/jest.config.ts
similarity index 88%
rename from alfa-client/libs/admin-settings/jest.config.ts
rename to alfa-client/libs/admin/settings/jest.config.ts
index 6a725dafe3e164fd3e957164738b3e29170811d2..26fb88d9012f3d3b3a4c62e37d28fe0849337433 100644
--- a/alfa-client/libs/admin-settings/jest.config.ts
+++ b/alfa-client/libs/admin/settings/jest.config.ts
@@ -3,10 +3,10 @@
 const esModules = ['@keycloak/keycloak-admin-client', 'url-join', 'url-template', 'camelize-ts'];
 export default {
   displayName: 'admin-settings',
-  preset: '../../jest.preset.js',
+  preset: '../../../jest.preset.js',
   setupFilesAfterEnv: ['<rootDir>/src/test-setup.ts'],
   globals: {},
-  coverageDirectory: '../../coverage/libs/admin-settings',
+  coverageDirectory: '../../coverage/libs/admin/settings',
   transform: {
     '^.+\\.(ts|mjs|js|html)$': [
       'jest-preset-angular',
diff --git a/alfa-client/libs/admin-settings/project.json b/alfa-client/libs/admin/settings/project.json
similarity index 60%
rename from alfa-client/libs/admin-settings/project.json
rename to alfa-client/libs/admin/settings/project.json
index 2d85134f707e7aed82bbe30a08be2b01fea3a8c4..2749cb93e4ed471d107b091fece1a677debe2edc 100644
--- a/alfa-client/libs/admin-settings/project.json
+++ b/alfa-client/libs/admin/settings/project.json
@@ -1,7 +1,7 @@
 {
   "name": "admin-settings",
-  "$schema": "../../node_modules/nx/schemas/project-schema.json",
-  "sourceRoot": "libs/admin-settings/src",
+  "$schema": "../../../node_modules/nx/schemas/project-schema.json",
+  "sourceRoot": "libs/admin/settings/src",
   "projectType": "library",
   "prefix": "admin",
   "tags": [],
@@ -14,8 +14,8 @@
       "executor": "@nx/jest:jest",
       "outputs": ["{workspaceRoot}/coverage/{projectRoot}"],
       "options": {
-        "tsConfig": "libs/admin-settings/tsconfig.spec.json",
-        "jestConfig": "libs/admin-settings/jest.config.ts"
+        "tsConfig": "libs/admin/settings/tsconfig.spec.json",
+        "jestConfig": "libs/admin/settings/jest.config.ts"
       }
     }
   }
diff --git a/alfa-client/libs/admin-settings/src/index.ts b/alfa-client/libs/admin/settings/src/index.ts
similarity index 100%
rename from alfa-client/libs/admin-settings/src/index.ts
rename to alfa-client/libs/admin/settings/src/index.ts
diff --git a/alfa-client/libs/admin-settings/src/lib/admin-settings-resource.service.ts b/alfa-client/libs/admin/settings/src/lib/admin-settings-resource.service.ts
similarity index 100%
rename from alfa-client/libs/admin-settings/src/lib/admin-settings-resource.service.ts
rename to alfa-client/libs/admin/settings/src/lib/admin-settings-resource.service.ts
diff --git a/alfa-client/libs/admin-settings/src/lib/admin-settings.linkrel.ts b/alfa-client/libs/admin/settings/src/lib/admin-settings.linkrel.ts
similarity index 100%
rename from alfa-client/libs/admin-settings/src/lib/admin-settings.linkrel.ts
rename to alfa-client/libs/admin/settings/src/lib/admin-settings.linkrel.ts
diff --git a/alfa-client/libs/admin-settings/src/lib/admin-settings.model.ts b/alfa-client/libs/admin/settings/src/lib/admin-settings.model.ts
similarity index 100%
rename from alfa-client/libs/admin-settings/src/lib/admin-settings.model.ts
rename to alfa-client/libs/admin/settings/src/lib/admin-settings.model.ts
diff --git a/alfa-client/libs/admin-settings/src/lib/admin-settings.module.spec.ts b/alfa-client/libs/admin/settings/src/lib/admin-settings.module.spec.ts
similarity index 100%
rename from alfa-client/libs/admin-settings/src/lib/admin-settings.module.spec.ts
rename to alfa-client/libs/admin/settings/src/lib/admin-settings.module.spec.ts
diff --git a/alfa-client/libs/admin-settings/src/lib/admin-settings.module.ts b/alfa-client/libs/admin/settings/src/lib/admin-settings.module.ts
similarity index 89%
rename from alfa-client/libs/admin-settings/src/lib/admin-settings.module.ts
rename to alfa-client/libs/admin/settings/src/lib/admin-settings.module.ts
index 99b04e136805e4fec867cfe801aa82ab6ded3936..a6865423b56b2537999ce25764a3357a883fe0da 100644
--- a/alfa-client/libs/admin-settings/src/lib/admin-settings.module.ts
+++ b/alfa-client/libs/admin/settings/src/lib/admin-settings.module.ts
@@ -6,6 +6,8 @@ import { NgModule } from '@angular/core';
 import { ReactiveFormsModule } from '@angular/forms';
 import { RouterModule } from '@angular/router';
 import KcAdminClient from '@keycloak/keycloak-admin-client';
+import { ButtonWithSpinnerComponent, TextareaEditorComponent } from '@ods/component';
+import { TextInputComponent } from '@ods/system';
 import {
   createSettingListResourceService,
   SettingListResourceService,
@@ -23,6 +25,7 @@ import { OrganisationseinheitListComponent } from './organisationseinheit/organi
 import { OrganisationseinheitNavigationItemComponent } from './organisationseinheit/organisationseinheit-navigation-item/organisationseinheit-navigation-item.component';
 import { PostfachContainerComponent } from './postfach/postfach-container/postfach-container.component';
 import { PostfachFormComponent } from './postfach/postfach-container/postfach-form/postfach-form.component';
+import { PostfachSignaturComponent } from './postfach/postfach-container/postfach-form/postfach-signatur/postfach-signatur.component';
 import { PostfachNavigationItemComponent } from './postfach/postfach-navigation-item/postfach-navigation-item.component';
 import {
   createPostfachResourceService,
@@ -41,6 +44,7 @@ import { TextFieldComponent } from './shared/text-field/text-field.component';
   declarations: [
     PostfachContainerComponent,
     PostfachFormComponent,
+    PostfachSignaturComponent,
     NavigationItemComponent,
     TextFieldComponent,
     PostfachNavigationItemComponent,
@@ -55,7 +59,15 @@ import { TextFieldComponent } from './shared/text-field/text-field.component';
     MoreItemButtonComponent,
     SpinnerComponent,
   ],
-  imports: [CommonModule, TechSharedModule, RouterModule, ReactiveFormsModule],
+  imports: [
+    CommonModule,
+    TechSharedModule,
+    RouterModule,
+    ReactiveFormsModule,
+    TextInputComponent,
+    ButtonWithSpinnerComponent,
+    TextareaEditorComponent,
+  ],
   exports: [
     PostfachContainerComponent,
     OrganisationseinheitContainerComponent,
diff --git a/alfa-client/libs/admin-settings/src/lib/admin-settings.service.spec.ts b/alfa-client/libs/admin/settings/src/lib/admin-settings.service.spec.ts
similarity index 97%
rename from alfa-client/libs/admin-settings/src/lib/admin-settings.service.spec.ts
rename to alfa-client/libs/admin/settings/src/lib/admin-settings.service.spec.ts
index 0dae05ec7a255b758dc57b5041376fafc1894b7f..b46edf6f96f8a3f74808786111071d045dbf5329 100644
--- a/alfa-client/libs/admin-settings/src/lib/admin-settings.service.spec.ts
+++ b/alfa-client/libs/admin/settings/src/lib/admin-settings.service.spec.ts
@@ -4,8 +4,8 @@ import {
   createStateResource,
 } from '@alfa-client/tech-shared';
 import { Mock, mock, useFromMock } from '@alfa-client/test-utils';
+import { singleCold } from 'libs/tech-shared/test/marbles';
 import { Observable, of } from 'rxjs';
-import { singleCold } from '../../../tech-shared/test/marbles';
 import { createSettingsListResource } from '../../test/admin-settings';
 import { createPostfachResource, createSettingItemResource } from '../../test/postfach/postfach';
 import { SettingListResourceService } from './admin-settings-resource.service';
diff --git a/alfa-client/libs/admin-settings/src/lib/admin-settings.service.ts b/alfa-client/libs/admin/settings/src/lib/admin-settings.service.ts
similarity index 100%
rename from alfa-client/libs/admin-settings/src/lib/admin-settings.service.ts
rename to alfa-client/libs/admin/settings/src/lib/admin-settings.service.ts
diff --git a/alfa-client/libs/admin-settings/src/lib/admin-settings.util.spec.ts b/alfa-client/libs/admin/settings/src/lib/admin-settings.util.spec.ts
similarity index 100%
rename from alfa-client/libs/admin-settings/src/lib/admin-settings.util.spec.ts
rename to alfa-client/libs/admin/settings/src/lib/admin-settings.util.spec.ts
diff --git a/alfa-client/libs/admin-settings/src/lib/admin-settings.util.ts b/alfa-client/libs/admin/settings/src/lib/admin-settings.util.ts
similarity index 100%
rename from alfa-client/libs/admin-settings/src/lib/admin-settings.util.ts
rename to alfa-client/libs/admin/settings/src/lib/admin-settings.util.ts
diff --git a/alfa-client/libs/admin-settings/src/lib/configuration/configuration-resource.service.ts b/alfa-client/libs/admin/settings/src/lib/configuration/configuration-resource.service.ts
similarity index 100%
rename from alfa-client/libs/admin-settings/src/lib/configuration/configuration-resource.service.ts
rename to alfa-client/libs/admin/settings/src/lib/configuration/configuration-resource.service.ts
diff --git a/alfa-client/libs/admin-settings/src/lib/configuration/configuration.linkrel.ts b/alfa-client/libs/admin/settings/src/lib/configuration/configuration.linkrel.ts
similarity index 100%
rename from alfa-client/libs/admin-settings/src/lib/configuration/configuration.linkrel.ts
rename to alfa-client/libs/admin/settings/src/lib/configuration/configuration.linkrel.ts
diff --git a/alfa-client/libs/admin-settings/src/lib/configuration/configuration.model.ts b/alfa-client/libs/admin/settings/src/lib/configuration/configuration.model.ts
similarity index 100%
rename from alfa-client/libs/admin-settings/src/lib/configuration/configuration.model.ts
rename to alfa-client/libs/admin/settings/src/lib/configuration/configuration.model.ts
diff --git a/alfa-client/libs/admin-settings/src/lib/configuration/configuration.service.spec.ts b/alfa-client/libs/admin/settings/src/lib/configuration/configuration.service.spec.ts
similarity index 95%
rename from alfa-client/libs/admin-settings/src/lib/configuration/configuration.service.spec.ts
rename to alfa-client/libs/admin/settings/src/lib/configuration/configuration.service.spec.ts
index df7a4250f9fdd077594d0743e2c82cef23c5b059..5a581ac9ad22f23d01d328450b2d7d3e079bde8d 100644
--- a/alfa-client/libs/admin-settings/src/lib/configuration/configuration.service.spec.ts
+++ b/alfa-client/libs/admin/settings/src/lib/configuration/configuration.service.spec.ts
@@ -1,7 +1,7 @@
 import { StateResource, createStateResource } from '@alfa-client/tech-shared';
 import { Mock, mock, useFromMock } from '@alfa-client/test-utils';
+import { singleCold, singleHot } from 'libs/tech-shared/test/marbles';
 import { Observable } from 'rxjs';
-import { singleCold, singleHot } from '../../../../tech-shared/test/marbles';
 import { createConfigurationResource } from '../../../test/configuration/configuration';
 import { ConfigurationResourceService } from './configuration-resource.service';
 import { ConfigurationResource } from './configuration.model';
diff --git a/alfa-client/libs/admin-settings/src/lib/configuration/configuration.service.ts b/alfa-client/libs/admin/settings/src/lib/configuration/configuration.service.ts
similarity index 100%
rename from alfa-client/libs/admin-settings/src/lib/configuration/configuration.service.ts
rename to alfa-client/libs/admin/settings/src/lib/configuration/configuration.service.ts
diff --git a/alfa-client/libs/admin/settings/src/lib/navigation/navigation.component.html b/alfa-client/libs/admin/settings/src/lib/navigation/navigation.component.html
new file mode 100644
index 0000000000000000000000000000000000000000..aa69f82b45426328c850c413c0653d4a074c7ac5
--- /dev/null
+++ b/alfa-client/libs/admin/settings/src/lib/navigation/navigation.component.html
@@ -0,0 +1,2 @@
+<!--<admin-organisationseinheit-navigation-item></admin-organisationseinheit-navigation-item>-->
+<admin-postfach-navigation-item></admin-postfach-navigation-item>
diff --git a/alfa-client/libs/admin-settings/src/lib/navigation/navigation.component.scss b/alfa-client/libs/admin/settings/src/lib/navigation/navigation.component.scss
similarity index 100%
rename from alfa-client/libs/admin-settings/src/lib/navigation/navigation.component.scss
rename to alfa-client/libs/admin/settings/src/lib/navigation/navigation.component.scss
diff --git a/alfa-client/libs/admin-settings/src/lib/navigation/navigation.component.spec.ts b/alfa-client/libs/admin/settings/src/lib/navigation/navigation.component.spec.ts
similarity index 100%
rename from alfa-client/libs/admin-settings/src/lib/navigation/navigation.component.spec.ts
rename to alfa-client/libs/admin/settings/src/lib/navigation/navigation.component.spec.ts
diff --git a/alfa-client/libs/admin-settings/src/lib/navigation/navigation.component.ts b/alfa-client/libs/admin/settings/src/lib/navigation/navigation.component.ts
similarity index 100%
rename from alfa-client/libs/admin-settings/src/lib/navigation/navigation.component.ts
rename to alfa-client/libs/admin/settings/src/lib/navigation/navigation.component.ts
diff --git a/alfa-client/libs/admin-settings/src/lib/organisationseinheit/organisationseinheit-container/organisationseinheit-container.component.html b/alfa-client/libs/admin/settings/src/lib/organisationseinheit/organisationseinheit-container/organisationseinheit-container.component.html
similarity index 100%
rename from alfa-client/libs/admin-settings/src/lib/organisationseinheit/organisationseinheit-container/organisationseinheit-container.component.html
rename to alfa-client/libs/admin/settings/src/lib/organisationseinheit/organisationseinheit-container/organisationseinheit-container.component.html
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
similarity index 98%
rename from alfa-client/libs/admin-settings/src/lib/organisationseinheit/organisationseinheit-container/organisationseinheit-container.component.spec.ts
rename to alfa-client/libs/admin/settings/src/lib/organisationseinheit/organisationseinheit-container/organisationseinheit-container.component.spec.ts
index 417eec4616318c4c8b39eb639906e3433eaa78fe..50aed3b14f080f41d6dd560101a3c1a358bc5b8f 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
@@ -8,9 +8,9 @@ import {
 } from '@alfa-client/test-utils';
 import { ComponentFixture, TestBed } from '@angular/core/testing';
 import { getDataTestIdOf } from 'libs/tech-shared/test/data-test';
+import { singleCold } from 'libs/tech-shared/test/marbles';
 import { MockComponent } from 'ng-mocks';
 import { of } from 'rxjs';
-import { singleCold } from '../../../../../tech-shared/test/marbles';
 import {
   createOrganisationseinheit,
   createOrganisationseinheitState,
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
similarity index 100%
rename from alfa-client/libs/admin-settings/src/lib/organisationseinheit/organisationseinheit-container/organisationseinheit-container.component.ts
rename to alfa-client/libs/admin/settings/src/lib/organisationseinheit/organisationseinheit-container/organisationseinheit-container.component.ts
diff --git a/alfa-client/libs/admin-settings/src/lib/organisationseinheit/organisationseinheit-container/organisationseinheit-form/organisationseinheit-form.component.html b/alfa-client/libs/admin/settings/src/lib/organisationseinheit/organisationseinheit-container/organisationseinheit-form/organisationseinheit-form.component.html
similarity index 100%
rename from alfa-client/libs/admin-settings/src/lib/organisationseinheit/organisationseinheit-container/organisationseinheit-form/organisationseinheit-form.component.html
rename to alfa-client/libs/admin/settings/src/lib/organisationseinheit/organisationseinheit-container/organisationseinheit-form/organisationseinheit-form.component.html
diff --git a/alfa-client/libs/admin-settings/src/lib/organisationseinheit/organisationseinheit-container/organisationseinheit-form/organisationseinheit-form.component.spec.ts b/alfa-client/libs/admin/settings/src/lib/organisationseinheit/organisationseinheit-container/organisationseinheit-form/organisationseinheit-form.component.spec.ts
similarity index 100%
rename from alfa-client/libs/admin-settings/src/lib/organisationseinheit/organisationseinheit-container/organisationseinheit-form/organisationseinheit-form.component.spec.ts
rename to alfa-client/libs/admin/settings/src/lib/organisationseinheit/organisationseinheit-container/organisationseinheit-form/organisationseinheit-form.component.spec.ts
diff --git a/alfa-client/libs/admin-settings/src/lib/organisationseinheit/organisationseinheit-container/organisationseinheit-form/organisationseinheit-form.component.ts b/alfa-client/libs/admin/settings/src/lib/organisationseinheit/organisationseinheit-container/organisationseinheit-form/organisationseinheit-form.component.ts
similarity index 100%
rename from alfa-client/libs/admin-settings/src/lib/organisationseinheit/organisationseinheit-container/organisationseinheit-form/organisationseinheit-form.component.ts
rename to alfa-client/libs/admin/settings/src/lib/organisationseinheit/organisationseinheit-container/organisationseinheit-form/organisationseinheit-form.component.ts
diff --git a/alfa-client/libs/admin-settings/src/lib/organisationseinheit/organisationseinheit-container/organisationseinheit-form/organisationseinheit.formservice.spec.ts b/alfa-client/libs/admin/settings/src/lib/organisationseinheit/organisationseinheit-container/organisationseinheit-form/organisationseinheit.formservice.spec.ts
similarity index 99%
rename from alfa-client/libs/admin-settings/src/lib/organisationseinheit/organisationseinheit-container/organisationseinheit-form/organisationseinheit.formservice.spec.ts
rename to alfa-client/libs/admin/settings/src/lib/organisationseinheit/organisationseinheit-container/organisationseinheit-form/organisationseinheit.formservice.spec.ts
index 03bef4912b7d8a510ee06cfaa2ec438ae318b278..c43144f6a8730dd6c81ed73aaef73aa4f0b4b5ef 100644
--- a/alfa-client/libs/admin-settings/src/lib/organisationseinheit/organisationseinheit-container/organisationseinheit-form/organisationseinheit.formservice.spec.ts
+++ b/alfa-client/libs/admin/settings/src/lib/organisationseinheit/organisationseinheit-container/organisationseinheit-form/organisationseinheit.formservice.spec.ts
@@ -2,8 +2,8 @@ import { Mock, mock, useFromMock } from '@alfa-client/test-utils';
 import { fakeAsync, tick } from '@angular/core/testing';
 import { AbstractControl, FormBuilder } from '@angular/forms';
 import { hot } from 'jest-marbles';
+import { singleCold, singleHot } from 'libs/tech-shared/test/marbles';
 import { Observable, lastValueFrom, throwError } from 'rxjs';
-import { singleCold, singleHot } from '../../../../../../tech-shared/test/marbles';
 import {
   createOrganisationseinheit,
   createOrganisationseinheitError,
diff --git a/alfa-client/libs/admin-settings/src/lib/organisationseinheit/organisationseinheit-container/organisationseinheit-form/organisationseinheit.formservice.ts b/alfa-client/libs/admin/settings/src/lib/organisationseinheit/organisationseinheit-container/organisationseinheit-form/organisationseinheit.formservice.ts
similarity index 100%
rename from alfa-client/libs/admin-settings/src/lib/organisationseinheit/organisationseinheit-container/organisationseinheit-form/organisationseinheit.formservice.ts
rename to alfa-client/libs/admin/settings/src/lib/organisationseinheit/organisationseinheit-container/organisationseinheit-form/organisationseinheit.formservice.ts
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
similarity index 100%
rename from alfa-client/libs/admin-settings/src/lib/organisationseinheit/organisationseinheit-container/organisationseinheit-list/organisationseinheit-list.component.html
rename to alfa-client/libs/admin/settings/src/lib/organisationseinheit/organisationseinheit-container/organisationseinheit-list/organisationseinheit-list.component.html
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
similarity index 100%
rename from alfa-client/libs/admin-settings/src/lib/organisationseinheit/organisationseinheit-container/organisationseinheit-list/organisationseinheit-list.component.spec.ts
rename to alfa-client/libs/admin/settings/src/lib/organisationseinheit/organisationseinheit-container/organisationseinheit-list/organisationseinheit-list.component.spec.ts
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
similarity index 100%
rename from alfa-client/libs/admin-settings/src/lib/organisationseinheit/organisationseinheit-container/organisationseinheit-list/organisationseinheit-list.component.ts
rename to alfa-client/libs/admin/settings/src/lib/organisationseinheit/organisationseinheit-container/organisationseinheit-list/organisationseinheit-list.component.ts
diff --git a/alfa-client/libs/admin-settings/src/lib/organisationseinheit/organisationseinheit-navigation-item/organisationseinheit-navigation-item.component.html b/alfa-client/libs/admin/settings/src/lib/organisationseinheit/organisationseinheit-navigation-item/organisationseinheit-navigation-item.component.html
similarity index 100%
rename from alfa-client/libs/admin-settings/src/lib/organisationseinheit/organisationseinheit-navigation-item/organisationseinheit-navigation-item.component.html
rename to alfa-client/libs/admin/settings/src/lib/organisationseinheit/organisationseinheit-navigation-item/organisationseinheit-navigation-item.component.html
diff --git a/alfa-client/libs/admin-settings/src/lib/organisationseinheit/organisationseinheit-navigation-item/organisationseinheit-navigation-item.component.spec.ts b/alfa-client/libs/admin/settings/src/lib/organisationseinheit/organisationseinheit-navigation-item/organisationseinheit-navigation-item.component.spec.ts
similarity index 100%
rename from alfa-client/libs/admin-settings/src/lib/organisationseinheit/organisationseinheit-navigation-item/organisationseinheit-navigation-item.component.spec.ts
rename to alfa-client/libs/admin/settings/src/lib/organisationseinheit/organisationseinheit-navigation-item/organisationseinheit-navigation-item.component.spec.ts
diff --git a/alfa-client/libs/admin-settings/src/lib/organisationseinheit/organisationseinheit-navigation-item/organisationseinheit-navigation-item.component.ts b/alfa-client/libs/admin/settings/src/lib/organisationseinheit/organisationseinheit-navigation-item/organisationseinheit-navigation-item.component.ts
similarity index 100%
rename from alfa-client/libs/admin-settings/src/lib/organisationseinheit/organisationseinheit-navigation-item/organisationseinheit-navigation-item.component.ts
rename to alfa-client/libs/admin/settings/src/lib/organisationseinheit/organisationseinheit-navigation-item/organisationseinheit-navigation-item.component.ts
diff --git a/alfa-client/libs/admin-settings/src/lib/postfach/postfach-container/postfach-container.component.html b/alfa-client/libs/admin/settings/src/lib/postfach/postfach-container/postfach-container.component.html
similarity index 71%
rename from alfa-client/libs/admin-settings/src/lib/postfach/postfach-container/postfach-container.component.html
rename to alfa-client/libs/admin/settings/src/lib/postfach/postfach-container/postfach-container.component.html
index 8a68a1e11400f2ece06013fc60f1d2a13f1d1b50..8c406667e45b4bba2c8a1aeb31599df687338c45 100644
--- a/alfa-client/libs/admin-settings/src/lib/postfach/postfach-container/postfach-container.component.html
+++ b/alfa-client/libs/admin/settings/src/lib/postfach/postfach-container/postfach-container.component.html
@@ -1 +1,2 @@
+<h1 class="heading-1">Postfach</h1>
 <postfach-form [postfachStateResource]="postfachStateResource$ | async"></postfach-form>
diff --git a/alfa-client/libs/admin-settings/src/lib/postfach/postfach-container/postfach-container.component.spec.ts b/alfa-client/libs/admin/settings/src/lib/postfach/postfach-container/postfach-container.component.spec.ts
similarity index 92%
rename from alfa-client/libs/admin-settings/src/lib/postfach/postfach-container/postfach-container.component.spec.ts
rename to alfa-client/libs/admin/settings/src/lib/postfach/postfach-container/postfach-container.component.spec.ts
index 49de353525058623dc206167d4e3344437ffc439..d00f5aa44d6e99755de7e5464a289aed6ea22a79 100644
--- a/alfa-client/libs/admin-settings/src/lib/postfach/postfach-container/postfach-container.component.spec.ts
+++ b/alfa-client/libs/admin/settings/src/lib/postfach/postfach-container/postfach-container.component.spec.ts
@@ -1,9 +1,9 @@
 import { StateResource, createStateResource } from '@alfa-client/tech-shared';
 import { ComponentFixture, TestBed } from '@angular/core/testing';
 import { ReactiveFormsModule } from '@angular/forms';
+import { singleCold, singleHot } from 'libs/tech-shared/test/marbles';
+import { Mock, mock } from 'libs/test-utils/src/lib/mocking';
 import { MockComponent } from 'ng-mocks';
-import { singleCold, singleHot } from '../../../../../tech-shared/test/marbles';
-import { Mock, mock } from '../../../../../test-utils/src/lib/mocking';
 import { createPostfachResource } from '../../../../test/postfach/postfach';
 import { PostfachResource } from '../postfach.model';
 import { PostfachService } from '../postfach.service';
diff --git a/alfa-client/libs/admin-settings/src/lib/postfach/postfach-container/postfach-container.component.ts b/alfa-client/libs/admin/settings/src/lib/postfach/postfach-container/postfach-container.component.ts
similarity index 100%
rename from alfa-client/libs/admin-settings/src/lib/postfach/postfach-container/postfach-container.component.ts
rename to alfa-client/libs/admin/settings/src/lib/postfach/postfach-container/postfach-container.component.ts
diff --git a/alfa-client/libs/admin-settings/src/lib/postfach/postfach-container/postfach-form/postfach-form.component.html b/alfa-client/libs/admin/settings/src/lib/postfach/postfach-container/postfach-form/postfach-form.component.html
similarity index 69%
rename from alfa-client/libs/admin-settings/src/lib/postfach/postfach-container/postfach-form/postfach-form.component.html
rename to alfa-client/libs/admin/settings/src/lib/postfach/postfach-container/postfach-form/postfach-form.component.html
index cf06ca1af3045314ba30e32d03ac45b8aa5c7203..a5aace656e46f148670b719e35a52d23df73ec4b 100644
--- a/alfa-client/libs/admin-settings/src/lib/postfach/postfach-container/postfach-form/postfach-form.component.html
+++ b/alfa-client/libs/admin/settings/src/lib/postfach/postfach-container/postfach-form/postfach-form.component.html
@@ -1,6 +1,6 @@
 <form class="form flex-col" [formGroup]="formService.form">
-  <h1 class="heading-1">Postfach</h1>
-  <h2 class="heading-2">Absender</h2>
+  <!--
+  <h2 class="heading-2">Absender</h1>
   <p id="absender-desc" class="p-1">Hinterlegen Sie Absenderinformationen zu Ihrem Postfach.</p>
   <div
     [formGroupName]="PostfachFormService.ASBSENDER_GROUP"
@@ -34,26 +34,21 @@
     ></text-field>
   </div>
   <div class="h-20"></div>
-  <h2 class="heading-2">Signatur</h2>
-  <p id="signatur-desc">Erstellen oder ändern Sie die Signatur für Nachrichten.</p>
-  <textarea
-    data-test-id="signatur-text"
-    aria-describedby="signatur-desc"
-    [formControlName]="PostfachFormService.SIGNATUR_FIELD"
-    class="mb-2 mt-2 block h-40 w-96 p-1"
-  ></textarea>
+-->
+  <postfach-signatur class="mb-6 block" />
 
-  <admin-primary-button
-    (clickEmitter)="submit()"
-    [submitInProgress]="this.submitInProgress$ | async"
+  <ods-button-with-spinner
     data-test-id="save-button"
-    label="Speichern"
-  ></admin-primary-button>
+    text="Speichern"
+    [stateResource]="submitInProgress$ | async"
+    (clickEmitter)="submit()"
+  ></ods-button-with-spinner>
 
   <span
     *ngIf="formService.invalidEmpty"
     data-test-id="invalid-empty-message-span"
     class="m-2 text-red-500"
-    >*Es müssen alle Felder ausgefüllt sein.</span
   >
+    *Es müssen alle Felder ausgefüllt sein.
+  </span>
 </form>
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
similarity index 56%
rename from alfa-client/libs/admin-settings/src/lib/postfach/postfach-container/postfach-form/postfach-form.component.spec.ts
rename to alfa-client/libs/admin/settings/src/lib/postfach/postfach-container/postfach-form/postfach-form.component.spec.ts
index f3e6c68f3f15f51d766224ea4add00605a4e05be..3470d76a49844b39ea90737b2474d95c76ff5a2c 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
@@ -1,26 +1,29 @@
-import { ProblemDetail, createStateResource } from '@alfa-client/tech-shared';
 import {
-  Mock,
+  createEmptyStateResource,
+  createStateResource,
+  ProblemDetail,
+} from '@alfa-client/tech-shared';
+import {
   dispatchEventFromFixture,
   existsAsHtmlElement,
-  getDebugElementFromFixtureByCss,
-  getElementFromFixture,
+  Mock,
   mock,
   notExistsAsHtmlElement,
 } from '@alfa-client/test-utils';
 import { ComponentFixture, TestBed } from '@angular/core/testing';
 import { FormsModule, ReactiveFormsModule } from '@angular/forms';
+import { ButtonWithSpinnerComponent } from '@ods/component';
 import { getDataTestIdOf } from 'libs/tech-shared/test/data-test';
-import { MockComponent, ngMocks } from 'ng-mocks';
-import { EMPTY, of } from 'rxjs';
-import { createInvalidParam, createProblemDetail } from '../../../../../../tech-shared/test/error';
-import { singleCold } from '../../../../../../tech-shared/test/marbles';
+import { createInvalidParam, createProblemDetail } from 'libs/tech-shared/test/error';
+import { singleCold } from 'libs/tech-shared/test/marbles';
+import { MockComponent } from 'ng-mocks';
+import { EMPTY } from 'rxjs';
 import { createPostfachResource } from '../../../../../test/postfach/postfach';
-import { PrimaryButtonComponent } from '../../../shared/primary-button/primary-button.component';
 import { TextFieldComponent } from '../../../shared/text-field/text-field.component';
 import { PostfachResource } from '../../postfach.model';
 import { PostfachService } from '../../postfach.service';
 import { PostfachFormComponent } from './postfach-form.component';
+import { PostfachSignaturComponent } from './postfach-signatur/postfach-signatur.component';
 import { PostfachFormService } from './postfach.formservice';
 
 describe('PostfachFormComponent', () => {
@@ -37,8 +40,9 @@ describe('PostfachFormComponent', () => {
     await TestBed.configureTestingModule({
       declarations: [
         PostfachFormComponent,
-        MockComponent(PrimaryButtonComponent),
         MockComponent(TextFieldComponent),
+        MockComponent(PostfachSignaturComponent),
+        MockComponent(ButtonWithSpinnerComponent),
       ],
       imports: [ReactiveFormsModule, FormsModule],
       providers: [
@@ -86,59 +90,43 @@ describe('PostfachFormComponent', () => {
     });
   });
 
-  describe('Absender section', () => {
-    const fields: string[][] = [
-      [PostfachFormService.NAME_FIELD, 'Name', 'absender-name'],
-      [PostfachFormService.ANSCHRIFT_FIELD, 'Anschrift', 'absender-anschrift'],
-      [PostfachFormService.DIENST_FIELD, 'Dienst', 'absender-dienst'],
-      [PostfachFormService.MANDANT_FIELD, 'Mandant', 'absender-mandant'],
-      [
-        PostfachFormService.GEMEINDESCHLUESSEL_FIELD,
-        'Gemeindeschlüssel',
-        'absender-gemeindeschluessel',
-      ],
-    ];
-
-    test.each(fields)(
-      'should bind form for text-field "%s"',
-      async (fieldName, text, dataTestId) => {
-        const fieldValue = `some text-field ${text}`;
-        const absenderGroup = formService.form.get(PostfachFormService.ASBSENDER_GROUP);
-        const formControl = absenderGroup.get(fieldName);
-
-        const textFieldComponent = getDebugElementFromFixtureByCss(
-          fixture,
-          getDataTestIdOf(dataTestId),
-        );
-        ngMocks.change(textFieldComponent, fieldValue);
-        expect(formControl.value).toBe(fieldValue);
-      },
-    );
-
-    test.each(fields)(
-      'should have label for field "%s" with name "%s"',
-      (fieldName, text, dataTestId) => {
-        const textFieldElement = getElementFromFixture(fixture, getDataTestIdOf(dataTestId));
-        expect(textFieldElement.getAttribute('ng-reflect-label')).toBe(text);
-      },
-    );
-  });
-
-  describe('Signatur section', () => {
-    const signaturTextarea = getDataTestIdOf('signatur-text');
-
-    it('should have signatur-text', () => {
-      existsAsHtmlElement(fixture, signaturTextarea);
-    });
-
-    it('should set form-control-name', () => {
-      const text = 'some signature text';
-      formService.form.get(PostfachFormService.SIGNATUR_FIELD).setValue(text);
-
-      const textareaElement = getElementFromFixture(fixture, signaturTextarea);
-      expect(textareaElement.value).toBe(text);
-    });
-  });
+  // describe('Absender section', () => {
+  //   const fields: string[][] = [
+  //     [PostfachFormService.NAME_FIELD, 'Name', 'absender-name'],
+  //     [PostfachFormService.ANSCHRIFT_FIELD, 'Anschrift', 'absender-anschrift'],
+  //     [PostfachFormService.DIENST_FIELD, 'Dienst', 'absender-dienst'],
+  //     [PostfachFormService.MANDANT_FIELD, 'Mandant', 'absender-mandant'],
+  //     [
+  //       PostfachFormService.GEMEINDESCHLUESSEL_FIELD,
+  //       'Gemeindeschlüssel',
+  //       'absender-gemeindeschluessel',
+  //     ],
+  //   ];
+  //
+  //   test.each(fields)(
+  //     'should bind form for text-field "%s"',
+  //     async (fieldName, text, dataTestId) => {
+  //       const fieldValue = `some text-field ${text}`;
+  //       const absenderGroup = formService.form.get(PostfachFormService.ASBSENDER_GROUP);
+  //       const formControl = absenderGroup.get(fieldName);
+  //
+  //       const textFieldComponent = getDebugElementFromFixtureByCss(
+  //         fixture,
+  //         getDataTestIdOf(dataTestId),
+  //       );
+  //       ngMocks.change(textFieldComponent, fieldValue);
+  //       expect(formControl.value).toBe(fieldValue);
+  //     },
+  //   );
+  //
+  //   test.each(fields)(
+  //     'should have label for field "%s" with name "%s"',
+  //     (fieldName, text, dataTestId) => {
+  //       const textFieldElement = getElementFromFixture(fixture, getDataTestIdOf(dataTestId));
+  //       expect(textFieldElement.getAttribute('ng-reflect-label')).toBe(text);
+  //     },
+  //   );
+  // });
 
   describe('save button', () => {
     it('should call submit on click', () => {
@@ -150,17 +138,17 @@ describe('PostfachFormComponent', () => {
       expect(submitFn).toHaveBeenCalled();
     });
 
-    it.each([true, false])('should use submit progress "%s"', (progress) => {
-      component.submitInProgress$ = of(progress);
-
-      fixture.detectChanges();
-
-      const saveButtonComponent: PrimaryButtonComponent = getDebugElementFromFixtureByCss(
-        fixture,
-        saveButtonSelector,
-      ).componentInstance;
-      expect(saveButtonComponent.submitInProgress).toBe(progress);
-    });
+    // it.each([true, false])('should use submit progress "%s"', (progress) => {
+    //   component.submitInProgress$ = of(progress);
+    //
+    //   fixture.detectChanges();
+    //
+    //   const saveButtonComponent: ButtonWithSpinnerComponent = getDebugElementFromFixtureByCss(
+    //     fixture,
+    //     saveButtonSelector,
+    //   ).componentInstance;
+    //   expect(saveButtonComponent.loading).toBe(progress);
+    // });
   });
 
   describe('invalid message', () => {
@@ -190,11 +178,12 @@ describe('PostfachFormComponent', () => {
 
   describe('submit', () => {
     it('should assign submit in progress', () => {
-      formService.submitWithProgress = jest.fn().mockReturnValue(singleCold(true));
+      const stateResource = createEmptyStateResource();
+      formService.submit = jest.fn().mockReturnValue(singleCold(stateResource));
 
       component.submit();
 
-      expect(component.submitInProgress$).toBeObservable(singleCold(true));
+      expect(component.submitInProgress$).toBeObservable(singleCold(stateResource));
     });
   });
 });
diff --git a/alfa-client/libs/admin-settings/src/lib/postfach/postfach-container/postfach-form/postfach-form.component.ts b/alfa-client/libs/admin/settings/src/lib/postfach/postfach-container/postfach-form/postfach-form.component.ts
similarity index 74%
rename from alfa-client/libs/admin-settings/src/lib/postfach/postfach-container/postfach-form/postfach-form.component.ts
rename to alfa-client/libs/admin/settings/src/lib/postfach/postfach-container/postfach-form/postfach-form.component.ts
index be240d7c1e9f5439bb24fe222501ab20c9c2fc72..ca965ac3fa5ff09806a8a95a9ea22ccb2764ae19 100644
--- a/alfa-client/libs/admin-settings/src/lib/postfach/postfach-container/postfach-form/postfach-form.component.ts
+++ b/alfa-client/libs/admin/settings/src/lib/postfach/postfach-container/postfach-form/postfach-form.component.ts
@@ -1,5 +1,6 @@
-import { StateResource, isNotNil } from '@alfa-client/tech-shared';
+import { createEmptyStateResource, isNotNil, StateResource } from '@alfa-client/tech-shared';
 import { Component, Input } from '@angular/core';
+import { Resource } from '@ngxp/rest';
 import { Observable, of } from 'rxjs';
 import { PostfachResource } from '../../postfach.model';
 import { PostfachFormService } from './postfach.formservice';
@@ -10,7 +11,7 @@ import { PostfachFormService } from './postfach.formservice';
   providers: [PostfachFormService],
 })
 export class PostfachFormComponent {
-  submitInProgress$: Observable<boolean> = of(false);
+  submitInProgress$: Observable<StateResource<Resource>> = of(createEmptyStateResource<Resource>());
 
   @Input() set postfachStateResource(stateResource: StateResource<PostfachResource>) {
     this.updatePostfachResource(stateResource.resource);
@@ -27,6 +28,6 @@ export class PostfachFormComponent {
   constructor(public formService: PostfachFormService) {}
 
   public submit(): void {
-    this.submitInProgress$ = this.formService.submitWithProgress();
+    this.submitInProgress$ = this.formService.submit();
   }
 }
diff --git a/alfa-client/libs/admin/settings/src/lib/postfach/postfach-container/postfach-form/postfach-signatur/postfach-signatur.component.html b/alfa-client/libs/admin/settings/src/lib/postfach/postfach-container/postfach-form/postfach-signatur/postfach-signatur.component.html
new file mode 100644
index 0000000000000000000000000000000000000000..a0d251c9e393b6755b2705705da3e049a2271e55
--- /dev/null
+++ b/alfa-client/libs/admin/settings/src/lib/postfach/postfach-container/postfach-form/postfach-signatur/postfach-signatur.component.html
@@ -0,0 +1,15 @@
+<form [formGroup]="formService.form">
+  <h2 class="heading-2">Signatur</h2>
+  <p id="signatur-desc">
+    Diese Signatur wird bei allen Nachrichten an den Antragsteller angezeigt.
+  </p>
+  <ods-textarea-editor
+    [formControlName]="formServiceClass.SIGNATUR_FIELD"
+    [isResizable]="false"
+    data-test-id="signatur-text"
+    label=""
+    rows="6"
+    class="w-full"
+    aria-describedby="signatur-desc"
+  />
+</form>
diff --git a/alfa-client/libs/admin/settings/src/lib/postfach/postfach-container/postfach-form/postfach-signatur/postfach-signatur.component.spec.ts b/alfa-client/libs/admin/settings/src/lib/postfach/postfach-container/postfach-form/postfach-signatur/postfach-signatur.component.spec.ts
new file mode 100644
index 0000000000000000000000000000000000000000..7ac55113ec028463983d6e823f2e7842fbf9e53a
--- /dev/null
+++ b/alfa-client/libs/admin/settings/src/lib/postfach/postfach-container/postfach-form/postfach-signatur/postfach-signatur.component.spec.ts
@@ -0,0 +1,54 @@
+import { getElementFromFixture, mock, useFromMock } from '@alfa-client/test-utils';
+import { ComponentFixture, TestBed } from '@angular/core/testing';
+import { FormBuilder, ReactiveFormsModule } from '@angular/forms';
+import { TextareaEditorComponent } from '@ods/component';
+import { getDataTestIdOf } from 'libs/tech-shared/test/data-test';
+import { MockComponent } from 'ng-mocks';
+import { PostfachService } from '../../../postfach.service';
+import { PostfachFormComponent } from '../postfach-form.component';
+import { PostfachFormService } from '../postfach.formservice';
+import { PostfachSignaturComponent } from './postfach-signatur.component';
+
+describe('PostfachSignaturComponent', () => {
+  let component: PostfachSignaturComponent;
+  let fixture: ComponentFixture<PostfachSignaturComponent>;
+
+  const formService: PostfachFormService = new PostfachFormService(
+    new FormBuilder(),
+    useFromMock(mock(PostfachService)),
+  );
+
+  const signaturTextarea = getDataTestIdOf('signatur-text');
+
+  beforeEach(async () => {
+    await TestBed.configureTestingModule({
+      imports: [ReactiveFormsModule],
+      declarations: [PostfachFormComponent, MockComponent(TextareaEditorComponent)],
+      providers: [
+        {
+          provide: PostfachFormService,
+          useValue: formService,
+        },
+      ],
+    }).compileComponents();
+    fixture = TestBed.createComponent(PostfachSignaturComponent);
+    component = fixture.componentInstance;
+    fixture.detectChanges();
+  });
+
+  describe('template', () => {
+    it('should create', () => {
+      expect(component).toBeTruthy();
+    });
+
+    describe('ods-textarea-editor', () => {
+      describe('input', () => {
+        it('should set formControlName to Signatur Field', () => {
+          const textAreaEditor = getElementFromFixture(fixture, signaturTextarea);
+
+          expect(textAreaEditor.getAttribute('rows')).toEqual('6');
+        });
+      });
+    });
+  });
+});
diff --git a/alfa-client/libs/admin/settings/src/lib/postfach/postfach-container/postfach-form/postfach-signatur/postfach-signatur.component.ts b/alfa-client/libs/admin/settings/src/lib/postfach/postfach-container/postfach-form/postfach-signatur/postfach-signatur.component.ts
new file mode 100644
index 0000000000000000000000000000000000000000..5d6a6f695879e1989dabe1192e0aaa7f0d97a48d
--- /dev/null
+++ b/alfa-client/libs/admin/settings/src/lib/postfach/postfach-container/postfach-form/postfach-signatur/postfach-signatur.component.ts
@@ -0,0 +1,12 @@
+import { Component } from '@angular/core';
+import { PostfachFormService } from '../postfach.formservice';
+
+@Component({
+  selector: 'postfach-signatur',
+  templateUrl: './postfach-signatur.component.html',
+})
+export class PostfachSignaturComponent {
+  protected readonly formServiceClass = PostfachFormService;
+
+  constructor(public formService: PostfachFormService) {}
+}
diff --git a/alfa-client/libs/admin-settings/src/lib/postfach/postfach-container/postfach-form/postfach.formservice.spec.ts b/alfa-client/libs/admin/settings/src/lib/postfach/postfach-container/postfach-form/postfach.formservice.spec.ts
similarity index 82%
rename from alfa-client/libs/admin-settings/src/lib/postfach/postfach-container/postfach-form/postfach.formservice.spec.ts
rename to alfa-client/libs/admin/settings/src/lib/postfach/postfach-container/postfach-form/postfach.formservice.spec.ts
index d5a884c0f1379fcf3172de5de2743f8a30d691bd..bbc93c26a6744ea5ae695e9c4400bdeccfdb1f72 100644
--- a/alfa-client/libs/admin-settings/src/lib/postfach/postfach-container/postfach-form/postfach.formservice.spec.ts
+++ b/alfa-client/libs/admin/settings/src/lib/postfach/postfach-container/postfach-form/postfach.formservice.spec.ts
@@ -1,12 +1,7 @@
-import {
-  createEmptyStateResource,
-  createStateResource,
-  StateResource,
-} from '@alfa-client/tech-shared';
+import { createStateResource, StateResource } from '@alfa-client/tech-shared';
 import { mock, Mock, useFromMock } from '@alfa-client/test-utils';
 import { FormBuilder } from '@angular/forms';
-import { cold } from 'jest-marbles';
-import { Observable, of } from 'rxjs';
+import { of } from 'rxjs';
 import { createPostfach, createPostfachResource } from '../../../../../test/postfach/postfach';
 import { Postfach, PostfachResource } from '../../postfach.model';
 import { PostfachService } from '../../postfach.service';
@@ -19,7 +14,6 @@ describe('PostfachFormService', () => {
 
   beforeEach(() => {
     postfachService = mock(PostfachService);
-
     formService = new PostfachFormService(formBuilder, useFromMock(postfachService));
   });
 
@@ -93,19 +87,4 @@ describe('PostfachFormService', () => {
       });
     });
   });
-
-  describe('submit with progress', () => {
-    it('should assign submit in progress to state resource loading', () => {
-      formService.submit = jest.fn().mockReturnValue(
-        cold('ab', {
-          a: createEmptyStateResource(true),
-          b: createEmptyStateResource(false),
-        }),
-      );
-
-      const progressObservable: Observable<boolean> = formService.submitWithProgress();
-
-      expect(progressObservable).toBeObservable(cold('ab', { a: true, b: false }));
-    });
-  });
 });
diff --git a/alfa-client/libs/admin-settings/src/lib/postfach/postfach-container/postfach-form/postfach.formservice.ts b/alfa-client/libs/admin/settings/src/lib/postfach/postfach-container/postfach-form/postfach.formservice.ts
similarity index 84%
rename from alfa-client/libs/admin-settings/src/lib/postfach/postfach-container/postfach-form/postfach.formservice.ts
rename to alfa-client/libs/admin/settings/src/lib/postfach/postfach-container/postfach-form/postfach.formservice.ts
index c6d801bdd90f6f27101dd9d621c497083c57f6ac..ed81ff5fd52cfc3ef92312fd3f2d0cbbcb8d4d89 100644
--- a/alfa-client/libs/admin-settings/src/lib/postfach/postfach-container/postfach-form/postfach.formservice.ts
+++ b/alfa-client/libs/admin/settings/src/lib/postfach/postfach-container/postfach-form/postfach.formservice.ts
@@ -1,14 +1,8 @@
-import {
-  AbstractFormService,
-  EMPTY_STRING,
-  HttpError,
-  ProblemDetail,
-  StateResource,
-} from '@alfa-client/tech-shared';
+import { AbstractFormService, EMPTY_STRING, StateResource } from '@alfa-client/tech-shared';
 import { Injectable } from '@angular/core';
 import { FormControl, UntypedFormBuilder, UntypedFormGroup } from '@angular/forms';
 import { isNil } from 'lodash-es';
-import { Observable, map } from 'rxjs';
+import { Observable } from 'rxjs';
 import { Postfach, PostfachResource } from '../../postfach.model';
 import { PostfachService } from '../../postfach.service';
 
@@ -43,7 +37,7 @@ export class PostfachFormService extends AbstractFormService {
     });
   }
 
-  protected doSubmit(): Observable<StateResource<PostfachResource | HttpError>> {
+  protected doSubmit(): Observable<StateResource<PostfachResource>> {
     const value: Postfach = this.getFormValue();
     if (this.shouldSkipAbsender(value)) {
       delete value.absender;
@@ -65,12 +59,4 @@ export class PostfachFormService extends AbstractFormService {
   public get invalidEmpty(): boolean {
     return this.form.invalid;
   }
-
-  public submitWithProgress(): Observable<boolean> {
-    return this.submit().pipe(
-      map(
-        (stateResource: StateResource<PostfachResource | ProblemDetail>) => stateResource.loading,
-      ),
-    );
-  }
 }
diff --git a/alfa-client/libs/admin-settings/src/lib/postfach/postfach-navigation-item/postfach-navigation-item.component.html b/alfa-client/libs/admin/settings/src/lib/postfach/postfach-navigation-item/postfach-navigation-item.component.html
similarity index 100%
rename from alfa-client/libs/admin-settings/src/lib/postfach/postfach-navigation-item/postfach-navigation-item.component.html
rename to alfa-client/libs/admin/settings/src/lib/postfach/postfach-navigation-item/postfach-navigation-item.component.html
diff --git a/alfa-client/libs/admin-settings/src/lib/postfach/postfach-navigation-item/postfach-navigation-item.component.scss b/alfa-client/libs/admin/settings/src/lib/postfach/postfach-navigation-item/postfach-navigation-item.component.scss
similarity index 100%
rename from alfa-client/libs/admin-settings/src/lib/postfach/postfach-navigation-item/postfach-navigation-item.component.scss
rename to alfa-client/libs/admin/settings/src/lib/postfach/postfach-navigation-item/postfach-navigation-item.component.scss
diff --git a/alfa-client/libs/admin-settings/src/lib/postfach/postfach-navigation-item/postfach-navigation-item.component.spec.ts b/alfa-client/libs/admin/settings/src/lib/postfach/postfach-navigation-item/postfach-navigation-item.component.spec.ts
similarity index 100%
rename from alfa-client/libs/admin-settings/src/lib/postfach/postfach-navigation-item/postfach-navigation-item.component.spec.ts
rename to alfa-client/libs/admin/settings/src/lib/postfach/postfach-navigation-item/postfach-navigation-item.component.spec.ts
diff --git a/alfa-client/libs/admin-settings/src/lib/postfach/postfach-navigation-item/postfach-navigation-item.component.ts b/alfa-client/libs/admin/settings/src/lib/postfach/postfach-navigation-item/postfach-navigation-item.component.ts
similarity index 100%
rename from alfa-client/libs/admin-settings/src/lib/postfach/postfach-navigation-item/postfach-navigation-item.component.ts
rename to alfa-client/libs/admin/settings/src/lib/postfach/postfach-navigation-item/postfach-navigation-item.component.ts
diff --git a/alfa-client/libs/admin-settings/src/lib/postfach/postfach-resource.service.ts b/alfa-client/libs/admin/settings/src/lib/postfach/postfach-resource.service.ts
similarity index 100%
rename from alfa-client/libs/admin-settings/src/lib/postfach/postfach-resource.service.ts
rename to alfa-client/libs/admin/settings/src/lib/postfach/postfach-resource.service.ts
diff --git a/alfa-client/libs/admin-settings/src/lib/postfach/postfach.linkrel.ts b/alfa-client/libs/admin/settings/src/lib/postfach/postfach.linkrel.ts
similarity index 100%
rename from alfa-client/libs/admin-settings/src/lib/postfach/postfach.linkrel.ts
rename to alfa-client/libs/admin/settings/src/lib/postfach/postfach.linkrel.ts
diff --git a/alfa-client/libs/admin-settings/src/lib/postfach/postfach.model.ts b/alfa-client/libs/admin/settings/src/lib/postfach/postfach.model.ts
similarity index 100%
rename from alfa-client/libs/admin-settings/src/lib/postfach/postfach.model.ts
rename to alfa-client/libs/admin/settings/src/lib/postfach/postfach.model.ts
diff --git a/alfa-client/libs/admin-settings/src/lib/postfach/postfach.service.spec.ts b/alfa-client/libs/admin/settings/src/lib/postfach/postfach.service.spec.ts
similarity index 56%
rename from alfa-client/libs/admin-settings/src/lib/postfach/postfach.service.spec.ts
rename to alfa-client/libs/admin/settings/src/lib/postfach/postfach.service.spec.ts
index ca41b7c408ecec8a94ed38459aae668038c8f0ee..0d8fd6b5eb2d724ff31293252d1b3d10a2c8937b 100644
--- a/alfa-client/libs/admin-settings/src/lib/postfach/postfach.service.spec.ts
+++ b/alfa-client/libs/admin/settings/src/lib/postfach/postfach.service.spec.ts
@@ -1,8 +1,15 @@
-import { HttpError, StateResource, createStateResource } from '@alfa-client/tech-shared';
+import {
+  StateResource,
+  createEmptyStateResource,
+  createStateResource,
+} from '@alfa-client/tech-shared';
 import { Mock, mock, useFromMock } from '@alfa-client/test-utils';
+import { SnackBarService } from '@alfa-client/ui';
 import { Type } from '@angular/core';
-import { Observable } from 'rxjs';
-import { singleCold, singleHot } from '../../../../tech-shared/test/marbles';
+import { fakeAsync, tick } from '@angular/core/testing';
+import { cold } from 'jest-marbles';
+import { singleCold, singleHot } from 'libs/tech-shared/test/marbles';
+import { Observable, of } from 'rxjs';
 import { createPostfachResource, createPostfachSettingItem } from '../../../test/postfach/postfach';
 import { PostfachResourceService } from './postfach-resource.service';
 import { PostfachResource, PostfachSettingsItem } from './postfach.model';
@@ -11,11 +18,12 @@ import { PostfachService } from './postfach.service';
 describe('PostfachService', () => {
   let service: PostfachService;
   let resourceService: Mock<PostfachResourceService>;
+  const snackbarService: Mock<SnackBarService> = mock(SnackBarService);
 
   beforeEach(() => {
     resourceService = mockResourceService(PostfachResourceService);
 
-    service = new PostfachService(useFromMock(resourceService));
+    service = new PostfachService(useFromMock(resourceService), useFromMock(snackbarService));
   });
 
   it('should create', () => {
@@ -36,8 +44,7 @@ describe('PostfachService', () => {
     it('should reurn value', () => {
       resourceService.get.mockReturnValue(singleCold(postfachStateResource));
 
-      const returnedPostfachResource: Observable<StateResource<PostfachResource | HttpError>> =
-        service.get();
+      const returnedPostfachResource: Observable<StateResource<PostfachResource>> = service.get();
 
       expect(returnedPostfachResource).toBeObservable(singleHot(postfachStateResource));
     });
@@ -45,25 +52,48 @@ describe('PostfachService', () => {
 
   describe('save', () => {
     const postfachSettingsItem: PostfachSettingsItem = createPostfachSettingItem();
+    const postfachResource: PostfachResource = createPostfachResource();
+    const postfachStateResource: StateResource<PostfachResource> =
+      createStateResource(postfachResource);
+
+    beforeEach(() => {});
 
     it('should call resourceService', () => {
+      resourceService.save.mockReturnValue(of(postfachStateResource));
+
       service.save(postfachSettingsItem.settingBody);
 
       expect(resourceService.save).toHaveBeenCalledWith(postfachSettingsItem);
     });
 
     it('should return saved value', () => {
-      const postfachResource: PostfachResource = createPostfachResource();
-      const postfachStateResource: StateResource<PostfachResource> =
-        createStateResource(postfachResource);
-      resourceService.save.mockReturnValue(singleCold(postfachStateResource));
+      resourceService.save.mockReturnValue(singleCold(postfachStateResource, '-a'));
 
-      const savedPostfach: Observable<StateResource<PostfachResource | HttpError>> = service.save(
+      const savedPostfach: Observable<StateResource<PostfachResource>> = service.save(
         postfachResource.settingBody,
       );
 
-      expect(savedPostfach).toBeObservable(singleHot(postfachStateResource));
+      expect(savedPostfach).toBeObservable(
+        cold('ab', {
+          a: createEmptyStateResource<PostfachResource>(true),
+          b: postfachStateResource,
+        }),
+      );
     });
+
+    it('should show message in snackbar', fakeAsync(() => {
+      resourceService.save.mockReturnValue(of(postfachStateResource));
+      const savedPostfach: Observable<StateResource<PostfachResource>> = service.save(
+        postfachResource.settingBody,
+      );
+
+      savedPostfach.subscribe();
+      tick();
+
+      expect(snackbarService.showInfo).toHaveBeenCalledWith(
+        'Die Signatur wird erfolgreich gespeichert.',
+      );
+    }));
   });
 });
 
diff --git a/alfa-client/libs/admin/settings/src/lib/postfach/postfach.service.ts b/alfa-client/libs/admin/settings/src/lib/postfach/postfach.service.ts
new file mode 100644
index 0000000000000000000000000000000000000000..2fc6ec706f41b554a0a9812034f45cb596edf9f8
--- /dev/null
+++ b/alfa-client/libs/admin/settings/src/lib/postfach/postfach.service.ts
@@ -0,0 +1,41 @@
+import { createEmptyStateResource, StateResource } from '@alfa-client/tech-shared';
+import { SnackBarService } from '@alfa-client/ui';
+import { Injectable } from '@angular/core';
+import { Observable, startWith, tap } from 'rxjs';
+import { SettingName } from '../admin-settings.model';
+import { PostfachResourceService } from './postfach-resource.service';
+import { Postfach, PostfachResource, PostfachSettingsItem } from './postfach.model';
+
+@Injectable()
+export class PostfachService {
+  constructor(
+    private postfachResourceService: PostfachResourceService,
+    private snackbarService: SnackBarService,
+  ) {}
+
+  public get(): Observable<StateResource<PostfachResource>> {
+    return this.postfachResourceService.get();
+  }
+
+  public save(postfach: Postfach): Observable<StateResource<PostfachResource>> {
+    return this.postfachResourceService.save(this.buildPostfachSettingItem(postfach)).pipe(
+      tap((stateResource: StateResource<PostfachResource>) =>
+        this.showInfoAfterSave(stateResource),
+      ),
+      startWith(createEmptyStateResource<PostfachResource>(true)),
+    );
+  }
+
+  private showInfoAfterSave(stateResource: StateResource<PostfachResource>) {
+    if (!stateResource.loading) {
+      this.snackbarService.showInfo('Die Signatur wird erfolgreich gespeichert.');
+    }
+  }
+
+  private buildPostfachSettingItem(postfach: Postfach): PostfachSettingsItem {
+    return {
+      name: SettingName.POSTFACH,
+      settingBody: postfach,
+    };
+  }
+}
diff --git a/alfa-client/libs/admin-settings/src/lib/shared/more-menu/more-item-button/more-item-button.component.html b/alfa-client/libs/admin/settings/src/lib/shared/more-menu/more-item-button/more-item-button.component.html
similarity index 100%
rename from alfa-client/libs/admin-settings/src/lib/shared/more-menu/more-item-button/more-item-button.component.html
rename to alfa-client/libs/admin/settings/src/lib/shared/more-menu/more-item-button/more-item-button.component.html
diff --git a/alfa-client/libs/admin-settings/src/lib/shared/more-menu/more-item-button/more-item-button.component.spec.ts b/alfa-client/libs/admin/settings/src/lib/shared/more-menu/more-item-button/more-item-button.component.spec.ts
similarity index 100%
rename from alfa-client/libs/admin-settings/src/lib/shared/more-menu/more-item-button/more-item-button.component.spec.ts
rename to alfa-client/libs/admin/settings/src/lib/shared/more-menu/more-item-button/more-item-button.component.spec.ts
diff --git a/alfa-client/libs/admin-settings/src/lib/shared/more-menu/more-item-button/more-item-button.component.ts b/alfa-client/libs/admin/settings/src/lib/shared/more-menu/more-item-button/more-item-button.component.ts
similarity index 100%
rename from alfa-client/libs/admin-settings/src/lib/shared/more-menu/more-item-button/more-item-button.component.ts
rename to alfa-client/libs/admin/settings/src/lib/shared/more-menu/more-item-button/more-item-button.component.ts
diff --git a/alfa-client/libs/admin-settings/src/lib/shared/more-menu/more-menu.component.html b/alfa-client/libs/admin/settings/src/lib/shared/more-menu/more-menu.component.html
similarity index 100%
rename from alfa-client/libs/admin-settings/src/lib/shared/more-menu/more-menu.component.html
rename to alfa-client/libs/admin/settings/src/lib/shared/more-menu/more-menu.component.html
diff --git a/alfa-client/libs/admin-settings/src/lib/shared/more-menu/more-menu.component.spec.ts b/alfa-client/libs/admin/settings/src/lib/shared/more-menu/more-menu.component.spec.ts
similarity index 100%
rename from alfa-client/libs/admin-settings/src/lib/shared/more-menu/more-menu.component.spec.ts
rename to alfa-client/libs/admin/settings/src/lib/shared/more-menu/more-menu.component.spec.ts
diff --git a/alfa-client/libs/admin-settings/src/lib/shared/more-menu/more-menu.component.ts b/alfa-client/libs/admin/settings/src/lib/shared/more-menu/more-menu.component.ts
similarity index 100%
rename from alfa-client/libs/admin-settings/src/lib/shared/more-menu/more-menu.component.ts
rename to alfa-client/libs/admin/settings/src/lib/shared/more-menu/more-menu.component.ts
diff --git a/alfa-client/libs/admin-settings/src/lib/shared/navigation-item/navigation-item.component.html b/alfa-client/libs/admin/settings/src/lib/shared/navigation-item/navigation-item.component.html
similarity index 100%
rename from alfa-client/libs/admin-settings/src/lib/shared/navigation-item/navigation-item.component.html
rename to alfa-client/libs/admin/settings/src/lib/shared/navigation-item/navigation-item.component.html
diff --git a/alfa-client/libs/admin-settings/src/lib/shared/navigation-item/navigation-item.component.scss b/alfa-client/libs/admin/settings/src/lib/shared/navigation-item/navigation-item.component.scss
similarity index 100%
rename from alfa-client/libs/admin-settings/src/lib/shared/navigation-item/navigation-item.component.scss
rename to alfa-client/libs/admin/settings/src/lib/shared/navigation-item/navigation-item.component.scss
diff --git a/alfa-client/libs/admin-settings/src/lib/shared/navigation-item/navigation-item.component.spec.ts b/alfa-client/libs/admin/settings/src/lib/shared/navigation-item/navigation-item.component.spec.ts
similarity index 100%
rename from alfa-client/libs/admin-settings/src/lib/shared/navigation-item/navigation-item.component.spec.ts
rename to alfa-client/libs/admin/settings/src/lib/shared/navigation-item/navigation-item.component.spec.ts
diff --git a/alfa-client/libs/admin-settings/src/lib/shared/navigation-item/navigation-item.component.ts b/alfa-client/libs/admin/settings/src/lib/shared/navigation-item/navigation-item.component.ts
similarity index 100%
rename from alfa-client/libs/admin-settings/src/lib/shared/navigation-item/navigation-item.component.ts
rename to alfa-client/libs/admin/settings/src/lib/shared/navigation-item/navigation-item.component.ts
diff --git a/alfa-client/libs/admin-settings/src/lib/shared/primary-button/primary-button.component.html b/alfa-client/libs/admin/settings/src/lib/shared/primary-button/primary-button.component.html
similarity index 100%
rename from alfa-client/libs/admin-settings/src/lib/shared/primary-button/primary-button.component.html
rename to alfa-client/libs/admin/settings/src/lib/shared/primary-button/primary-button.component.html
diff --git a/alfa-client/libs/admin-settings/src/lib/shared/primary-button/primary-button.component.spec.ts b/alfa-client/libs/admin/settings/src/lib/shared/primary-button/primary-button.component.spec.ts
similarity index 100%
rename from alfa-client/libs/admin-settings/src/lib/shared/primary-button/primary-button.component.spec.ts
rename to alfa-client/libs/admin/settings/src/lib/shared/primary-button/primary-button.component.spec.ts
diff --git a/alfa-client/libs/admin-settings/src/lib/shared/primary-button/primary-button.component.ts b/alfa-client/libs/admin/settings/src/lib/shared/primary-button/primary-button.component.ts
similarity index 100%
rename from alfa-client/libs/admin-settings/src/lib/shared/primary-button/primary-button.component.ts
rename to alfa-client/libs/admin/settings/src/lib/shared/primary-button/primary-button.component.ts
diff --git a/alfa-client/libs/admin-settings/src/lib/shared/secondary-button/secondary-button.component.html b/alfa-client/libs/admin/settings/src/lib/shared/secondary-button/secondary-button.component.html
similarity index 100%
rename from alfa-client/libs/admin-settings/src/lib/shared/secondary-button/secondary-button.component.html
rename to alfa-client/libs/admin/settings/src/lib/shared/secondary-button/secondary-button.component.html
diff --git a/alfa-client/libs/admin-settings/src/lib/shared/secondary-button/secondary-button.component.spec.ts b/alfa-client/libs/admin/settings/src/lib/shared/secondary-button/secondary-button.component.spec.ts
similarity index 100%
rename from alfa-client/libs/admin-settings/src/lib/shared/secondary-button/secondary-button.component.spec.ts
rename to alfa-client/libs/admin/settings/src/lib/shared/secondary-button/secondary-button.component.spec.ts
diff --git a/alfa-client/libs/admin-settings/src/lib/shared/secondary-button/secondary-button.component.ts b/alfa-client/libs/admin/settings/src/lib/shared/secondary-button/secondary-button.component.ts
similarity index 100%
rename from alfa-client/libs/admin-settings/src/lib/shared/secondary-button/secondary-button.component.ts
rename to alfa-client/libs/admin/settings/src/lib/shared/secondary-button/secondary-button.component.ts
diff --git a/alfa-client/libs/admin-settings/src/lib/shared/spinner/spinner.component.html b/alfa-client/libs/admin/settings/src/lib/shared/spinner/spinner.component.html
similarity index 100%
rename from alfa-client/libs/admin-settings/src/lib/shared/spinner/spinner.component.html
rename to alfa-client/libs/admin/settings/src/lib/shared/spinner/spinner.component.html
diff --git a/alfa-client/libs/admin-settings/src/lib/shared/spinner/spinner.component.spec.ts b/alfa-client/libs/admin/settings/src/lib/shared/spinner/spinner.component.spec.ts
similarity index 100%
rename from alfa-client/libs/admin-settings/src/lib/shared/spinner/spinner.component.spec.ts
rename to alfa-client/libs/admin/settings/src/lib/shared/spinner/spinner.component.spec.ts
diff --git a/alfa-client/libs/admin-settings/src/lib/shared/spinner/spinner.component.ts b/alfa-client/libs/admin/settings/src/lib/shared/spinner/spinner.component.ts
similarity index 100%
rename from alfa-client/libs/admin-settings/src/lib/shared/spinner/spinner.component.ts
rename to alfa-client/libs/admin/settings/src/lib/shared/spinner/spinner.component.ts
diff --git a/alfa-client/libs/admin-settings/src/lib/shared/text-field/text-field.component.html b/alfa-client/libs/admin/settings/src/lib/shared/text-field/text-field.component.html
similarity index 100%
rename from alfa-client/libs/admin-settings/src/lib/shared/text-field/text-field.component.html
rename to alfa-client/libs/admin/settings/src/lib/shared/text-field/text-field.component.html
diff --git a/alfa-client/libs/admin-settings/src/lib/shared/text-field/text-field.component.spec.ts b/alfa-client/libs/admin/settings/src/lib/shared/text-field/text-field.component.spec.ts
similarity index 100%
rename from alfa-client/libs/admin-settings/src/lib/shared/text-field/text-field.component.spec.ts
rename to alfa-client/libs/admin/settings/src/lib/shared/text-field/text-field.component.spec.ts
diff --git a/alfa-client/libs/admin-settings/src/lib/shared/text-field/text-field.component.ts b/alfa-client/libs/admin/settings/src/lib/shared/text-field/text-field.component.ts
similarity index 100%
rename from alfa-client/libs/admin-settings/src/lib/shared/text-field/text-field.component.ts
rename to alfa-client/libs/admin/settings/src/lib/shared/text-field/text-field.component.ts
diff --git a/alfa-client/libs/admin-settings/src/lib/user/user.model.ts b/alfa-client/libs/admin/settings/src/lib/user/user.model.ts
similarity index 100%
rename from alfa-client/libs/admin-settings/src/lib/user/user.model.ts
rename to alfa-client/libs/admin/settings/src/lib/user/user.model.ts
diff --git a/alfa-client/libs/admin-settings/src/lib/user/user.repository.service.ts b/alfa-client/libs/admin/settings/src/lib/user/user.repository.service.ts
similarity index 100%
rename from alfa-client/libs/admin-settings/src/lib/user/user.repository.service.ts
rename to alfa-client/libs/admin/settings/src/lib/user/user.repository.service.ts
diff --git a/alfa-client/libs/admin-settings/src/lib/user/user.repository.spec.ts b/alfa-client/libs/admin/settings/src/lib/user/user.repository.spec.ts
similarity index 100%
rename from alfa-client/libs/admin-settings/src/lib/user/user.repository.spec.ts
rename to alfa-client/libs/admin/settings/src/lib/user/user.repository.spec.ts
diff --git a/alfa-client/libs/admin-settings/src/lib/user/user.service.spec.ts b/alfa-client/libs/admin/settings/src/lib/user/user.service.spec.ts
similarity index 99%
rename from alfa-client/libs/admin-settings/src/lib/user/user.service.spec.ts
rename to alfa-client/libs/admin/settings/src/lib/user/user.service.spec.ts
index f15073e7d7fc75be636949747d6189d6650b6c6f..56ac9d24a8cf68804dce861d61b7a3cf551aeb54 100644
--- a/alfa-client/libs/admin-settings/src/lib/user/user.service.spec.ts
+++ b/alfa-client/libs/admin/settings/src/lib/user/user.service.spec.ts
@@ -1,8 +1,8 @@
 import { mock, Mock, useFromMock } from '@alfa-client/test-utils';
 import { fakeAsync, tick } from '@angular/core/testing';
 import { cold } from 'jest-marbles';
+import { singleCold } from 'libs/tech-shared/test/marbles';
 import { firstValueFrom, lastValueFrom, Observable, of } from 'rxjs';
-import { singleCold } from '../../../../tech-shared/test/marbles';
 import {
   createOrganisationseinheit,
   createOrganisationseinheitState,
diff --git a/alfa-client/libs/admin-settings/src/lib/user/user.service.ts b/alfa-client/libs/admin/settings/src/lib/user/user.service.ts
similarity index 100%
rename from alfa-client/libs/admin-settings/src/lib/user/user.service.ts
rename to alfa-client/libs/admin/settings/src/lib/user/user.service.ts
diff --git a/alfa-client/libs/admin-settings/src/lib/user/user.util.spec.ts b/alfa-client/libs/admin/settings/src/lib/user/user.util.spec.ts
similarity index 100%
rename from alfa-client/libs/admin-settings/src/lib/user/user.util.spec.ts
rename to alfa-client/libs/admin/settings/src/lib/user/user.util.spec.ts
diff --git a/alfa-client/libs/admin-settings/src/lib/user/user.util.ts b/alfa-client/libs/admin/settings/src/lib/user/user.util.ts
similarity index 100%
rename from alfa-client/libs/admin-settings/src/lib/user/user.util.ts
rename to alfa-client/libs/admin/settings/src/lib/user/user.util.ts
diff --git a/alfa-client/libs/admin-settings/src/test-setup.ts b/alfa-client/libs/admin/settings/src/test-setup.ts
similarity index 100%
rename from alfa-client/libs/admin-settings/src/test-setup.ts
rename to alfa-client/libs/admin/settings/src/test-setup.ts
diff --git a/alfa-client/libs/admin-settings/test/admin-settings.ts b/alfa-client/libs/admin/settings/test/admin-settings.ts
similarity index 90%
rename from alfa-client/libs/admin-settings/test/admin-settings.ts
rename to alfa-client/libs/admin/settings/test/admin-settings.ts
index d81dbd8109f79ac5eff68526de2aced072605d05..56cc3ea62b8ac65078f16e7d4494ab4371a54e59 100644
--- a/alfa-client/libs/admin-settings/test/admin-settings.ts
+++ b/alfa-client/libs/admin/settings/test/admin-settings.ts
@@ -1,5 +1,5 @@
 import { Resource } from '@ngxp/rest';
-import { toResource } from '../../tech-shared/test/resource';
+import { toResource } from '../../../tech-shared/test/resource';
 import { SettingListLinkRel } from '../src/lib/admin-settings.linkrel';
 import { SettingItemResource, SettingListResource } from '../src/lib/admin-settings.model';
 
diff --git a/alfa-client/libs/admin-settings/test/configuration/configuration.ts b/alfa-client/libs/admin/settings/test/configuration/configuration.ts
similarity index 82%
rename from alfa-client/libs/admin-settings/test/configuration/configuration.ts
rename to alfa-client/libs/admin/settings/test/configuration/configuration.ts
index 32e4ed5cac791a9c3c9ea0c6520f9df6decfe905..c12683311837ef4ded9e34d0fbf8797111c004f0 100644
--- a/alfa-client/libs/admin-settings/test/configuration/configuration.ts
+++ b/alfa-client/libs/admin/settings/test/configuration/configuration.ts
@@ -1,4 +1,4 @@
-import { toResource } from '../../../tech-shared/test/resource';
+import { toResource } from 'libs/tech-shared/test/resource';
 import { ConfigurationLinkRel } from '../../src/lib/configuration/configuration.linkrel';
 import { ConfigurationResource } from '../../src/lib/configuration/configuration.model';
 
diff --git a/alfa-client/libs/admin-settings/test/postfach/postfach.ts b/alfa-client/libs/admin/settings/test/postfach/postfach.ts
similarity index 93%
rename from alfa-client/libs/admin-settings/test/postfach/postfach.ts
rename to alfa-client/libs/admin/settings/test/postfach/postfach.ts
index 65dc1159f333f5aa897ff759b2a9de5a1c307398..16dd988db914e892938d5b93ae63ede3055beead 100644
--- a/alfa-client/libs/admin-settings/test/postfach/postfach.ts
+++ b/alfa-client/libs/admin/settings/test/postfach/postfach.ts
@@ -1,5 +1,5 @@
 import faker from '@faker-js/faker';
-import { toResource } from '../../../tech-shared/test/resource';
+import { toResource } from 'libs/tech-shared/test/resource';
 import { SettingItemResource, SettingName } from '../../src/lib/admin-settings.model';
 import {
   Postfach,
diff --git a/alfa-client/libs/admin-settings/test/user/user.ts b/alfa-client/libs/admin/settings/test/user/user.ts
similarity index 100%
rename from alfa-client/libs/admin-settings/test/user/user.ts
rename to alfa-client/libs/admin/settings/test/user/user.ts
diff --git a/alfa-client/libs/admin-settings/tsconfig.json b/alfa-client/libs/admin/settings/tsconfig.json
similarity index 82%
rename from alfa-client/libs/admin-settings/tsconfig.json
rename to alfa-client/libs/admin/settings/tsconfig.json
index 7cc6baf2f58ed5ccfba098131996f579979e9f18..8ca9ad312c2bd4dc364383853ddd91a2ed8f86fd 100644
--- a/alfa-client/libs/admin-settings/tsconfig.json
+++ b/alfa-client/libs/admin/settings/tsconfig.json
@@ -1,5 +1,5 @@
 {
-  "extends": "../../tsconfig.base.json",
+  "extends": "../../../tsconfig.base.json",
   "files": [],
   "include": [],
   "references": [
diff --git a/alfa-client/libs/admin-settings/tsconfig.lib.json b/alfa-client/libs/admin/settings/tsconfig.lib.json
similarity index 87%
rename from alfa-client/libs/admin-settings/tsconfig.lib.json
rename to alfa-client/libs/admin/settings/tsconfig.lib.json
index dcc35a71ee8a26bc9394b9cf96b02996be26ec16..17469f1e4af3ea771aaa29b1d48f9bb5bf62a020 100644
--- a/alfa-client/libs/admin-settings/tsconfig.lib.json
+++ b/alfa-client/libs/admin/settings/tsconfig.lib.json
@@ -1,7 +1,7 @@
 {
   "extends": "./tsconfig.json",
   "compilerOptions": {
-    "outDir": "../../dist/out-tsc",
+    "outDir": "../../../dist/out-tsc",
     "declaration": true,
     "declarationMap": true,
     "inlineSources": true,
diff --git a/alfa-client/libs/admin-settings/tsconfig.spec.json b/alfa-client/libs/admin/settings/tsconfig.spec.json
similarity index 88%
rename from alfa-client/libs/admin-settings/tsconfig.spec.json
rename to alfa-client/libs/admin/settings/tsconfig.spec.json
index c3cb17f784fa2f7b9a4b0e7c9b03663500f4ee3d..723782fbd367969806c5992aea882773ab65af8b 100644
--- a/alfa-client/libs/admin-settings/tsconfig.spec.json
+++ b/alfa-client/libs/admin/settings/tsconfig.spec.json
@@ -1,7 +1,7 @@
 {
   "extends": "./tsconfig.json",
   "compilerOptions": {
-    "outDir": "../../dist/out-tsc",
+    "outDir": "../../../dist/out-tsc",
     "module": "commonjs",
     "types": ["jest", "node"],
     "target": "ES2022",
diff --git a/alfa-client/libs/collaboration/src/lib/collaboration-in-vorgang-container/collaboration-request-form/collaboration-request-form.component.ts b/alfa-client/libs/collaboration/src/lib/collaboration-in-vorgang-container/collaboration-request-form/collaboration-request-form.component.ts
index ccaf4fd89ec7f6af5d2afe69d3ff397669cd841c..d78bb1da55f8ffcb8d3364ce11ef6aff6573aad4 100644
--- a/alfa-client/libs/collaboration/src/lib/collaboration-in-vorgang-container/collaboration-request-form/collaboration-request-form.component.ts
+++ b/alfa-client/libs/collaboration/src/lib/collaboration-in-vorgang-container/collaboration-request-form/collaboration-request-form.component.ts
@@ -1,6 +1,6 @@
 import { Collaboration, CollaborationListResource } from '@alfa-client/collaboration-shared';
 import { CommandResource, tapOnCommandSuccessfullyDone } from '@alfa-client/command-shared';
-import { HttpError, StateResource, createEmptyStateResource } from '@alfa-client/tech-shared';
+import { StateResource, createEmptyStateResource } from '@alfa-client/tech-shared';
 import { Component, EventEmitter, Input, Output } from '@angular/core';
 import { Observable, of } from 'rxjs';
 import { CollaborationRequestFormService } from './collaboration.request.formservice';
@@ -20,7 +20,7 @@ export class CollaborationRequestFormComponent {
     this.formService.setListResource(collaborationListResource);
   }
 
-  public submitInProgress$: Observable<StateResource<CommandResource | HttpError>> = of(
+  public submitInProgress$: Observable<StateResource<CommandResource>> = of(
     createEmptyStateResource<CommandResource>(),
   );
 
diff --git a/alfa-client/libs/collaboration/src/lib/collaboration-in-vorgang-container/collaboration-request-form/collaboration.request.formservice.spec.ts b/alfa-client/libs/collaboration/src/lib/collaboration-in-vorgang-container/collaboration-request-form/collaboration.request.formservice.spec.ts
index a9f135fc6a49e51d32f30ee11708d49189343178..8333c24f140f2ad55fc22d3da7011806b90dccdf 100644
--- a/alfa-client/libs/collaboration/src/lib/collaboration-in-vorgang-container/collaboration-request-form/collaboration.request.formservice.spec.ts
+++ b/alfa-client/libs/collaboration/src/lib/collaboration-in-vorgang-container/collaboration-request-form/collaboration.request.formservice.spec.ts
@@ -1,6 +1,6 @@
 import { CollaborationListResource } from '@alfa-client/collaboration-shared';
 import { CommandResource } from '@alfa-client/command-shared';
-import { HttpError, StateResource, createStateResource } from '@alfa-client/tech-shared';
+import { StateResource, createStateResource } from '@alfa-client/tech-shared';
 import { Mock, mock, useFromMock } from '@alfa-client/test-utils';
 import { UntypedFormBuilder } from '@angular/forms';
 import { CollaborationService } from 'libs/collaboration-shared/src/lib/collaboration.service';
@@ -48,8 +48,7 @@ describe('CollaborationRequestFormService', () => {
     });
 
     it('should return stateCommandResource', () => {
-      const response$: Observable<StateResource<CommandResource | HttpError>> =
-        formService.submit();
+      const response$: Observable<StateResource<CommandResource>> = formService.submit();
 
       expect(response$).toBeObservable(singleColdCompleted(stateCommandResource));
     });
diff --git a/alfa-client/libs/design-component/src/lib/button-with-spinner/button-with-spinner.component.ts b/alfa-client/libs/design-component/src/lib/button-with-spinner/button-with-spinner.component.ts
index 05700cac1ad64ec9d60ef775fa70c0b1340140b8..2489bb3d94ad7f490abf17231a075dc0050700c2 100644
--- a/alfa-client/libs/design-component/src/lib/button-with-spinner/button-with-spinner.component.ts
+++ b/alfa-client/libs/design-component/src/lib/button-with-spinner/button-with-spinner.component.ts
@@ -1,8 +1,9 @@
 import { CommandResource, hasCommandError } from '@alfa-client/command-shared';
-import { createEmptyStateResource, isLoaded, StateResource } from '@alfa-client/tech-shared';
+import { StateResource, createEmptyStateResource, isLoaded } from '@alfa-client/tech-shared';
 import { CommonModule } from '@angular/common';
 import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';
-import { ButtonComponent, buttonVariants, ErrorMessageComponent } from '@ods/system';
+import { Resource } from '@ngxp/rest';
+import { ButtonComponent, ErrorMessageComponent, buttonVariants } from '@ods/system';
 import { VariantProps } from 'class-variance-authority';
 import { isNil } from 'lodash-es';
 
@@ -16,7 +17,7 @@ type ButtonVariants = VariantProps<typeof buttonVariants>;
   template: ` <ods-error-message
       *ngIf="isError"
       text="Ein Fehler ist aufgetreten."
-      subText="Versuchen Sie es nocheinmal."
+      subText="Versuchen Sie es noch einmal."
     >
     </ods-error-message>
     <ods-button
@@ -32,7 +33,7 @@ type ButtonVariants = VariantProps<typeof buttonVariants>;
 export class ButtonWithSpinnerComponent implements OnInit {
   @Input() text: string = '';
   @Input() dataTestId: string = '';
-  @Input() stateResource: StateResource<CommandResource>;
+  @Input() stateResource: StateResource<Resource>;
   @Input() variant: ButtonVariants['variant'] = 'primary';
   @Input() size: ButtonVariants['size'] = 'medium';
 
@@ -42,10 +43,8 @@ export class ButtonWithSpinnerComponent implements OnInit {
     this.stateResource = this.getStateResource();
   }
 
-  getStateResource(): StateResource<CommandResource> {
-    return isNil(this.stateResource) ?
-        createEmptyStateResource<CommandResource>()
-      : this.stateResource;
+  getStateResource(): StateResource<Resource> {
+    return isNil(this.stateResource) ? createEmptyStateResource<Resource>() : this.stateResource;
   }
 
   get isLoading(): boolean {
@@ -53,6 +52,8 @@ export class ButtonWithSpinnerComponent implements OnInit {
   }
 
   get isError(): boolean {
-    return isLoaded(this.stateResource) && hasCommandError(this.stateResource.resource);
+    return (
+      isLoaded(this.stateResource) && hasCommandError(<CommandResource>this.stateResource.resource)
+    );
   }
 }
diff --git a/alfa-client/libs/design-component/src/lib/form/textarea-editor/textarea-editor.component.html b/alfa-client/libs/design-component/src/lib/form/textarea-editor/textarea-editor.component.html
index c27f425a3f9ca703f85b9961a8c87175a50a0a9f..baa159622243b8c03783314ee0f27e17cf6c78a4 100644
--- a/alfa-client/libs/design-component/src/lib/form/textarea-editor/textarea-editor.component.html
+++ b/alfa-client/libs/design-component/src/lib/form/textarea-editor/textarea-editor.component.html
@@ -7,6 +7,7 @@
   [attr.data-test-id]="(label | convertForDataTest) + '-textarea-editor'"
   [required]="isRequired"
   [focus]="focus"
+  [isResizable]="isResizable"
 >
   <ods-validation-error
     error
diff --git a/alfa-client/libs/design-component/src/lib/form/textarea-editor/textarea-editor.component.ts b/alfa-client/libs/design-component/src/lib/form/textarea-editor/textarea-editor.component.ts
index a47b955192b12c4a9ce1379062cd16543e455e2a..5dea452149b2facd76f03b209835786e7af4b970 100644
--- a/alfa-client/libs/design-component/src/lib/form/textarea-editor/textarea-editor.component.ts
+++ b/alfa-client/libs/design-component/src/lib/form/textarea-editor/textarea-editor.component.ts
@@ -24,6 +24,7 @@ export class TextareaEditorComponent extends FormControlEditorAbstractComponent
   @Input() rows: number = 10;
   @Input() isRequired: boolean = false;
   @Input() focus: boolean = false;
+  @Input() isResizable: boolean = true;
 
   get variant(): string {
     return this.invalidParams.length > 0 ? 'error' : 'default';
diff --git a/alfa-client/libs/design-system/src/lib/form/textarea/textarea.component.ts b/alfa-client/libs/design-system/src/lib/form/textarea/textarea.component.ts
index 2c4340b9f30232e900ef8a4ac8c845adf4765d41..5c418556063b84c751fd274fbd901f18cd3eb4a3 100644
--- a/alfa-client/libs/design-system/src/lib/form/textarea/textarea.component.ts
+++ b/alfa-client/libs/design-system/src/lib/form/textarea/textarea.component.ts
@@ -38,7 +38,7 @@ type TextareaVariants = VariantProps<typeof textareaVariants>;
         [id]="id"
         [formControl]="fieldControl"
         [rows]="rows"
-        [ngClass]="textareaVariants({ variant })"
+        [ngClass]="[textareaVariants({ variant }), isResizable ? 'resize' : 'resize-none']"
         [placeholder]="placeholder"
         [autocomplete]="autocomplete"
         [attr.aria-required]="required"
@@ -64,6 +64,7 @@ export class TextareaComponent {
   @Input() variant: TextareaVariants['variant'];
   @Input() fieldControl: FormControl = new FormControl(EMPTY_STRING);
   @Input() required: boolean = false;
+  @Input() isResizable: boolean = true;
 
   @Input() set focus(value: boolean) {
     if (value && this.textAreaElement) {
diff --git a/alfa-client/libs/tech-shared/src/lib/resource/api-resource.service.spec.ts b/alfa-client/libs/tech-shared/src/lib/resource/api-resource.service.spec.ts
index 8b559b8b81e03d6f4f1a56f56ac6e1e67e14cf64..977db3428026e075b535d45b53e6cdd9865579fb 100644
--- a/alfa-client/libs/tech-shared/src/lib/resource/api-resource.service.spec.ts
+++ b/alfa-client/libs/tech-shared/src/lib/resource/api-resource.service.spec.ts
@@ -5,7 +5,7 @@ import { Observable, of, throwError } from 'rxjs';
 import { singleCold, singleHot } from '../../../test//marbles';
 import { createProblemDetail } from '../../../test/error';
 import { createDummyResource } from '../../../test/resource';
-import { HttpError, ProblemDetail } from '../tech.model';
+import { ProblemDetail } from '../tech.model';
 import { ApiResourceService } from './api-resource.service';
 import { LinkRelationName, ResourceServiceConfig, SaveResourceData } from './resource.model';
 import { ResourceRepository } from './resource.repository';
@@ -65,7 +65,7 @@ describe('ApiResourceService', () => {
       service.stateResource.next(createStateResource(resourceWithEditLinkRel));
       repository.save.mockReturnValue(singleHot(loadedResource));
 
-      const saved: Observable<StateResource<Resource | HttpError>> = service.save(dummyToSave);
+      const saved: Observable<StateResource<Resource>> = service.save(dummyToSave);
 
       expect(saved).toBeObservable(singleCold(createStateResource(loadedResource)));
     });
diff --git a/alfa-client/libs/tech-shared/src/lib/resource/resource.service.spec.ts b/alfa-client/libs/tech-shared/src/lib/resource/resource.service.spec.ts
index 1a15c29a582000a5be2378c1163f3a487cfd6d1c..61f1ae622b0c4621da50136718665d0c5a94756e 100644
--- a/alfa-client/libs/tech-shared/src/lib/resource/resource.service.spec.ts
+++ b/alfa-client/libs/tech-shared/src/lib/resource/resource.service.spec.ts
@@ -8,7 +8,7 @@ import { Observable, lastValueFrom, of, throwError } from 'rxjs';
 import { createProblemDetail } from '../../../test//error';
 import { singleCold, singleHot } from '../../../test/marbles';
 import { createDummyResource } from '../../../test/resource';
-import { HttpError, ProblemDetail } from '../tech.model';
+import { ProblemDetail } from '../tech.model';
 import { LinkRelationName, ResourceServiceConfig } from './resource.model';
 import { ResourceRepository } from './resource.repository';
 import { ResourceService } from './resource.service';
@@ -408,7 +408,7 @@ describe('ResourceService', () => {
       service.stateResource.next(createStateResource(resourceWithEditLinkRel));
       service.doSave = jest.fn().mockReturnValue(singleHot(loadedResource));
 
-      const saved: Observable<StateResource<Resource | HttpError>> = service.save(dummyToSave);
+      const saved: Observable<StateResource<Resource>> = service.save(dummyToSave);
 
       expect(saved).toBeObservable(singleCold(createStateResource(loadedResource)));
     });
@@ -441,7 +441,7 @@ describe('ResourceService', () => {
 
       service
         .handleError(<HttpErrorResponse>(<any>error))
-        .subscribe((responseError: StateResource<HttpError>) => {
+        .subscribe((responseError: StateResource<unknown>) => {
           expect(responseError).toEqual(createErrorStateResource(error));
           done();
         });
@@ -453,7 +453,7 @@ describe('ResourceService', () => {
         statusText: 'Internal Server Error',
       };
 
-      const thrownError$: Observable<StateResource<HttpError>> = service.handleError(error);
+      const thrownError$: Observable<StateResource<unknown>> = service.handleError(error);
 
       expect.assertions(1);
       expect(lastValueFrom(thrownError$)).rejects.toThrowError('Internal Server Error');
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 a69b290c8037e6c4797ae4afc19a695568f9d1c9..6c9eb0a56f13fb81555b915c436119b742b2ec45 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
@@ -143,7 +143,7 @@ export abstract class ResourceService<B extends Resource, T extends Resource> {
     this.stateResource.next(createStateResource(resource));
   }
 
-  public save(toSave: unknown): Observable<StateResource<T | HttpError>> {
+  public save(toSave: unknown): Observable<StateResource<T>> {
     const previousResource: T = this.stateResource.value.resource;
     return this.doSave(previousResource, toSave).pipe(
       tap((loadedResource: T) => this.stateResource.next(createStateResource(loadedResource))),
@@ -152,7 +152,7 @@ export abstract class ResourceService<B extends Resource, T extends Resource> {
     );
   }
 
-  handleError(errorResponse: HttpErrorResponse): Observable<StateResource<HttpError>> {
+  handleError(errorResponse: HttpErrorResponse): Observable<StateResource<T>> {
     if (isUnprocessableEntity(errorResponse.status)) {
       return of(createErrorStateResource((<any>errorResponse) as HttpError));
     }
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 ee4a624cb890cbf0da636f80ae01f1aeb7fdc616..35fd33e57c839f74868240d50a5af8d47773fe79 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
@@ -29,8 +29,13 @@ import { createInvalidParam, createProblemDetail } from 'libs/tech-shared/test/e
 import { Observable, of } from 'rxjs';
 import { AbstractFormService } from './formservice.abstract';
 
-import { createEmptyStateResource, createErrorStateResource, createStateResource, StateResource } from '../resource/resource.util';
-import { HttpError, InvalidParam, ProblemDetail } from '../tech.model';
+import {
+  createEmptyStateResource,
+  createErrorStateResource,
+  createStateResource,
+  StateResource,
+} from '../resource/resource.util';
+import { InvalidParam, ProblemDetail } from '../tech.model';
 
 import { createCommandResource } from '../../../../command-shared/test/command';
 import * as ValidationUtil from '../validation/tech.validation.util';
@@ -64,8 +69,7 @@ describe('AbstractFormService', () => {
       });
 
       it('should return state resource observable', () => {
-        const submitObservable: Observable<StateResource<Resource | HttpError>> =
-          formService.submit();
+        const submitObservable: Observable<StateResource<Resource>> = formService.submit();
 
         expect(submitObservable).toBeObservable(cold('(a|)', { a: stateResourceWithError }));
       });
@@ -113,8 +117,7 @@ describe('AbstractFormService', () => {
     it('should return stateresource while loading', () => {
       const commandStateResource: StateResource<CommandResource> = createEmptyStateResource(true);
 
-      const result: StateResource<Resource | HttpError> =
-        formService.handleResponse(commandStateResource);
+      const result: StateResource<Resource> = formService.handleResponse(commandStateResource);
 
       expect(result).toBe(commandStateResource);
     });
diff --git a/alfa-client/libs/tech-shared/src/lib/service/formservice.abstract.ts b/alfa-client/libs/tech-shared/src/lib/service/formservice.abstract.ts
index 956266f7c268dc575e7e29307b0530a31555f43f..4f225d54b0b1d97d031eb854263bee095aeed03f 100644
--- a/alfa-client/libs/tech-shared/src/lib/service/formservice.abstract.ts
+++ b/alfa-client/libs/tech-shared/src/lib/service/formservice.abstract.ts
@@ -47,16 +47,16 @@ export abstract class AbstractFormService<T extends Resource = Resource> {
 
   public submit(
     afterSubmit: OperatorFunction<StateResource<T>, StateResource<T>> = identity,
-  ): Observable<StateResource<T | HttpError>> {
+  ): Observable<StateResource<T>> {
     return this.doSubmit().pipe(
       afterSubmit,
       map((result) => this.handleResponse(result)),
     );
   }
 
-  protected abstract doSubmit(): Observable<StateResource<T | HttpError>>;
+  protected abstract doSubmit(): Observable<StateResource<T>>;
 
-  handleResponse(result: StateResource<T | HttpError>): StateResource<T | HttpError> {
+  handleResponse(result: StateResource<T>): StateResource<T> {
     if (result.loading) return result;
     if (hasStateResourceError(result)) {
       this.handleError(result.error);
diff --git a/alfa-client/libs/tech-shared/src/lib/tech.util.ts b/alfa-client/libs/tech-shared/src/lib/tech.util.ts
index 55e881a99ac582741b7bea58ddde81b00c5c11b0..805f0501f440c90c2ca425309e05b33a94ae3314 100644
--- a/alfa-client/libs/tech-shared/src/lib/tech.util.ts
+++ b/alfa-client/libs/tech-shared/src/lib/tech.util.ts
@@ -26,6 +26,7 @@ import { Base64 } from 'js-base64';
 import { isEmpty, isNil, isNull, isUndefined } from 'lodash-es';
 import { sanitize } from 'sanitize-filename-ts';
 import { LinkRelationName } from './resource/resource.model';
+
 import { ApiError } from './tech.model';
 
 export const EMPTY_STRING: string = '';
diff --git a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/bescheiden.formservice.ts b/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/bescheiden.formservice.ts
index b079362062868d5fd121503655948db80538f466..cebc1954c540d054f03d4e9e03d2719d9c3c8963 100644
--- a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/bescheiden.formservice.ts
+++ b/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/bescheiden.formservice.ts
@@ -11,7 +11,6 @@ import { CommandResource, tapOnCommandSuccessfullyDone } from '@alfa-client/comm
 import {
   AbstractFormService,
   EMPTY_STRING,
-  HttpError,
   StateResource,
   convertToBoolean,
   formatForDatabase,
@@ -161,7 +160,7 @@ export class BescheidenFormService extends AbstractFormService implements OnDest
     return BescheidenFormService.FIELD_PATH_PREFIX;
   }
 
-  protected doSubmit(): Observable<StateResource<Resource | HttpError>> {
+  protected doSubmit(): Observable<StateResource<Resource>> {
     if (this.isPatch() || this.bescheidService.existsBescheidDraft()) {
       return this.bescheidService.updateBescheid(this.getValue());
     } else {
@@ -185,7 +184,7 @@ export class BescheidenFormService extends AbstractFormService implements OnDest
     });
   }
 
-  public submitDraft(): Observable<StateResource<Resource | HttpError>> {
+  public submitDraft(): Observable<StateResource<Resource>> {
     return this.submit().pipe(
       tapOnCommandSuccessfullyDone(() => this.bescheidService.reloadCurrentVorgang()),
     );
diff --git a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps-content/vorgang-detail-bescheiden-steps-content.component.ts b/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps-content/vorgang-detail-bescheiden-steps-content.component.ts
index ce42b5dcd7153c3e1e12b0eef65028a1586778ff..e7c2bfebe926455e262f0f96fb23bf3ea6e4eedf 100644
--- a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps-content/vorgang-detail-bescheiden-steps-content.component.ts
+++ b/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps-content/vorgang-detail-bescheiden-steps-content.component.ts
@@ -1,5 +1,4 @@
 import {
-  HttpError,
   StateResource,
   createEmptyStateResource,
   hasStateResourceError,
@@ -30,7 +29,7 @@ export class VorgangDetailBescheidenStepsContentComponent implements OnInit {
 
   showBescheidErstellungUeberspringen$: Observable<boolean>;
 
-  submitResource: StateResource<Resource | HttpError> = createEmptyStateResource();
+  submitResource: StateResource<Resource> = createEmptyStateResource();
 
   constructor(
     private readonly vorgangService: VorgangService,
@@ -54,7 +53,7 @@ export class VorgangDetailBescheidenStepsContentComponent implements OnInit {
       this.formService
         .submit()
         .pipe(
-          tap((resource: StateResource<Resource | HttpError>) => (this.submitResource = resource)),
+          tap((resource: StateResource<Resource>) => (this.submitResource = resource)),
           filter(this.noError),
           first(),
         )
@@ -72,7 +71,7 @@ export class VorgangDetailBescheidenStepsContentComponent implements OnInit {
     return this.formService.validateBescheidDocumentExists();
   }
 
-  noError(stateResource: StateResource<Resource | HttpError>): boolean {
+  noError(stateResource: StateResource<Resource>): boolean {
     return isLoaded(stateResource) && !hasStateResourceError(stateResource);
   }
 }
diff --git a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-weiter-button/vorgang-detail-bescheiden-weiter-button.component.ts b/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-weiter-button/vorgang-detail-bescheiden-weiter-button.component.ts
index 5e89e7dd34f564986e2d2b48f78919d18c091041..47b2204616e49678ecc4fe4f6df379109f7916f3 100644
--- a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-weiter-button/vorgang-detail-bescheiden-weiter-button.component.ts
+++ b/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-weiter-button/vorgang-detail-bescheiden-weiter-button.component.ts
@@ -1,10 +1,5 @@
 import { BescheidLinkRel, BescheidService } from '@alfa-client/bescheid-shared';
-import {
-  HttpError,
-  StateResource,
-  createEmptyStateResource,
-  isLoaded,
-} from '@alfa-client/tech-shared';
+import { StateResource, createEmptyStateResource, isLoaded } from '@alfa-client/tech-shared';
 import { VorgangService, VorgangWithEingangLinkRel } from '@alfa-client/vorgang-shared';
 import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';
 import { Resource, hasLink } from '@ngxp/rest';
@@ -16,7 +11,7 @@ import { BescheidenFormService } from '../../bescheiden.formservice';
   templateUrl: './vorgang-detail-bescheiden-weiter-button.component.html',
 })
 export class VorgangDetailBescheidenWeiterButtonComponent implements OnInit {
-  @Input() submitResource: StateResource<Resource | HttpError> = createEmptyStateResource();
+  @Input() submitResource: StateResource<Resource> = createEmptyStateResource();
   @Output() clickEmitter: EventEmitter<MouseEvent> = new EventEmitter<MouseEvent>();
 
   showButton$: Observable<boolean>;
diff --git a/alfa-client/nx.json b/alfa-client/nx.json
index da024e6acd9e3b33a78b07915bd508b2f9b12a7a..ef541a7eb5a1b147ff131218b9f498e2d295f344 100644
--- a/alfa-client/nx.json
+++ b/alfa-client/nx.json
@@ -12,13 +12,13 @@
     "@nx/angular:library": {
       "linter": "eslint",
       "unitTestRunner": "jest",
-      "styleext": "scss"
+      "style": "scss"
     },
     "@nrwl/schematics:component": {
-      "styleext": "scss"
+      "style": "scss"
     },
     "@schematics/angular:component": {
-      "styleext": "scss"
+      "style": "scss"
     },
     "@nx/angular:component": {
       "style": "scss"
diff --git a/alfa-client/tsconfig.base.json b/alfa-client/tsconfig.base.json
index 15284c9f0e8bc51994ae4e9b965a16c8b17d0bb6..718027c42393e9c9066bb1b65c2287c66654a873 100644
--- a/alfa-client/tsconfig.base.json
+++ b/alfa-client/tsconfig.base.json
@@ -16,7 +16,7 @@
     "skipDefaultLibCheck": true,
     "baseUrl": ".",
     "paths": {
-      "@admin-client/admin-settings": ["libs/admin-settings/src/index.ts"],
+      "@admin-client/admin-settings": ["libs/admin/settings/src/index.ts"],
       "@alfa-client/api-root-shared": ["libs/api-root-shared/src/index.ts"],
       "@alfa-client/app-shared": ["libs/app-shared/src/index.ts"],
       "@alfa-client/bescheid": ["libs/bescheid/src/index.ts"],
@@ -57,8 +57,7 @@
       "@alfa-client/wiedervorlage-shared": ["libs/wiedervorlage-shared/src/index.ts"],
       "@ods/component": ["libs/design-component/src/index.ts"],
       "@ods/system": ["libs/design-system/src/index.ts"],
-      "authentication": ["libs/authentication/src/index.ts"],
-      "test": ["libs/test/src/index.ts"]
+      "authentication": ["libs/authentication/src/index.ts"]
     }
   },
   "exclude": ["node_modules", "tmp"]