diff --git a/alfa-client/libs/admin/organisations-einheit/src/lib/organisations-einheit-container/organisations-einheit-container.component.spec.ts b/alfa-client/libs/admin/organisations-einheit/src/lib/organisations-einheit-container/organisations-einheit-container.component.spec.ts
index 2f207e5573f8398234d5d01e201430a4c4e34303..18827db0127eebb847a3082817bc397fdc6394e0 100644
--- a/alfa-client/libs/admin/organisations-einheit/src/lib/organisations-einheit-container/organisations-einheit-container.component.spec.ts
+++ b/alfa-client/libs/admin/organisations-einheit/src/lib/organisations-einheit-container/organisations-einheit-container.component.spec.ts
@@ -23,16 +23,18 @@
  */
 import { OrganisationsEinheitContainerComponent } from '@admin-client/organisations-einheit';
 import { AdminOrganisationsEinheit, AdminOrganisationsEinheitService } from '@admin-client/organisations-einheit-shared';
-import { createStateResource, StateResource, ToEmbeddedResourcesPipe } from '@alfa-client/tech-shared';
+import { createStateResource, StateResource } from '@alfa-client/tech-shared';
 import { existsAsHtmlElement, getMockComponent, Mock, mock } from '@alfa-client/test-utils';
-import { OzgcloudDialogService } from '@alfa-client/ui';
-import { OrganisationsEinheitResource } from '@alfa-client/zustaendige-stelle-shared';
+import { OzgcloudDialogService, SpinnerComponent } from '@alfa-client/ui';
+import { ZustaendigeStelleModule } from '@alfa-client/zustaendige-stelle';
+import { OrganisationsEinheitResource, ZustaendigeStelleSharedModule } from '@alfa-client/zustaendige-stelle-shared';
 import { CommonModule } from '@angular/common';
 import { ViewContainerRef } from '@angular/core';
 import { ComponentFixture, TestBed } from '@angular/core/testing';
+import { ButtonComponent } from '@ods/system';
 import { createAdminOrganisationsEinheit } from 'libs/admin/organisations-einheit-shared/src/test/organisations-einheit';
 import { getDataTestIdOf } from 'libs/tech-shared/test/data-test';
-import { MockComponent } from 'ng-mocks';
+import { MockComponent, MockModule } from 'ng-mocks';
 import { of } from 'rxjs';
 import { createOrganisationsEinheitResource } from '../../../../../zustaendige-stelle-shared/test/organisations-einheit';
 import { OrganisationsEinheitListComponent } from './organisations-einheit-list/organisations-einheit-list.component';
@@ -43,7 +45,8 @@ describe('OrganisationsEinheitContainerComponent', () => {
 
   let organisationsEinheitService: Mock<AdminOrganisationsEinheitService>;
   let dialogService: Mock<OzgcloudDialogService>;
-  let vieContainerRef: Mock<ViewContainerRef>;
+
+  const viewContainerRef = <any>{};
 
   const organisationsEinheit: AdminOrganisationsEinheit = createAdminOrganisationsEinheit();
   const organisationsEinheitListStateResource: StateResource<AdminOrganisationsEinheit[]> = createStateResource([
@@ -60,17 +63,24 @@ describe('OrganisationsEinheitContainerComponent', () => {
       refresh: jest.fn(),
     };
     dialogService = mock(OzgcloudDialogService);
-    vieContainerRef = mock(ViewContainerRef as any);
   });
 
   beforeEach(async () => {
     await TestBed.configureTestingModule({
-      declarations: [ToEmbeddedResourcesPipe],
-      imports: [CommonModule, OrganisationsEinheitContainerComponent, MockComponent(OrganisationsEinheitListComponent)],
+      declarations: [],
+      imports: [
+        OrganisationsEinheitContainerComponent,
+        MockModule(CommonModule),
+        MockModule(ZustaendigeStelleModule),
+        MockModule(ZustaendigeStelleSharedModule),
+        MockComponent(OrganisationsEinheitListComponent),
+        MockComponent(ButtonComponent),
+        MockComponent(SpinnerComponent),
+      ],
       providers: [
         { provide: AdminOrganisationsEinheitService, useValue: organisationsEinheitService },
         { provide: OzgcloudDialogService, useValue: dialogService },
-        { provide: ViewContainerRef, useValue: vieContainerRef },
+        { provide: ViewContainerRef, useValue: viewContainerRef },
       ],
     }).compileComponents();
 
diff --git a/alfa-client/libs/bescheid-shared/src/index.ts b/alfa-client/libs/bescheid-shared/src/index.ts
index 51f69102aff5c73708f9145fed53b74a98f91ce2..e847b8792390c501ad6da3f257442992ff9e5806 100644
--- a/alfa-client/libs/bescheid-shared/src/index.ts
+++ b/alfa-client/libs/bescheid-shared/src/index.ts
@@ -21,6 +21,8 @@
  * Die sprachspezifischen Genehmigungen und Beschränkungen
  * unter der Lizenz sind dem Lizenztext zu entnehmen.
  */
+export * from './lib/bescheid-list-resource-service';
+export * from './lib/bescheid-resource-service';
 export * from './lib/bescheid-shared.module';
 export * from './lib/bescheid.linkrel';
 export * from './lib/bescheid.model';
diff --git a/alfa-client/libs/bescheid-shared/src/lib/bescheid-list-resource-service.ts b/alfa-client/libs/bescheid-shared/src/lib/bescheid-list-resource-service.ts
new file mode 100644
index 0000000000000000000000000000000000000000..43b427dd4e8975e8ac0d3d6211a2957c14b99671
--- /dev/null
+++ b/alfa-client/libs/bescheid-shared/src/lib/bescheid-list-resource-service.ts
@@ -0,0 +1,25 @@
+import { ListResourceServiceConfig, ResourceListService, ResourceRepository } from '@alfa-client/tech-shared';
+import { VorgangService, VorgangWithEingangLinkRel, VorgangWithEingangResource } from '@alfa-client/vorgang-shared';
+import { BescheidListLinkRel } from './bescheid.linkrel';
+import { BescheidListResource, BescheidResource } from './bescheid.model';
+
+export class BescheidListResourceService extends ResourceListService<
+  VorgangWithEingangResource,
+  BescheidListResource,
+  BescheidResource
+> {}
+
+export function createBescheidListResourceService(
+  repository: ResourceRepository<BescheidResource>,
+  vorgangService: VorgangService,
+): ResourceListService<VorgangWithEingangResource, BescheidListResource, BescheidResource> {
+  return new BescheidListResourceService(buildBescheidListServiceConfig(vorgangService), repository);
+}
+
+function buildBescheidListServiceConfig(vorgangService: VorgangService): ListResourceServiceConfig<VorgangWithEingangResource> {
+  return {
+    baseResource: vorgangService.getVorgangWithEingang(),
+    listLinkRel: VorgangWithEingangLinkRel.BESCHEIDE,
+    listResourceListLinkRel: BescheidListLinkRel.BESCHEID_LIST,
+  };
+}
diff --git a/alfa-client/libs/bescheid-shared/src/lib/bescheid-resource-service.ts b/alfa-client/libs/bescheid-shared/src/lib/bescheid-resource-service.ts
index ab266d7734797b1e6fdf8b845ba8793696893a8e..6e340eacbd02353e238af59665d9aecbd23f4a27 100644
--- a/alfa-client/libs/bescheid-shared/src/lib/bescheid-resource-service.ts
+++ b/alfa-client/libs/bescheid-shared/src/lib/bescheid-resource-service.ts
@@ -11,7 +11,6 @@ export function createBescheidResourceService(
   commandService: CommandService,
   vorgangService: VorgangService,
 ): CommandResourceService<VorgangWithEingangResource, BescheidResource> {
-  console.info('Create Bescheid Resource Service');
   return new CommandResourceService(buildConfig(vorgangService), repository, commandService);
 }
 
diff --git a/alfa-client/libs/bescheid-shared/src/lib/bescheid-shared.module.ts b/alfa-client/libs/bescheid-shared/src/lib/bescheid-shared.module.ts
index 7c011dec937b05f7d8233dc13605bb5b7e490101..6e13cc43051b22de074699c3a4dec84fe2a87c5f 100644
--- a/alfa-client/libs/bescheid-shared/src/lib/bescheid-shared.module.ts
+++ b/alfa-client/libs/bescheid-shared/src/lib/bescheid-shared.module.ts
@@ -21,12 +21,31 @@
  * Die sprachspezifischen Genehmigungen und Beschränkungen
  * unter der Lizenz sind dem Lizenztext zu entnehmen.
  */
+import { CommandService } from '@alfa-client/command-shared';
+import { ResourceRepository } from '@alfa-client/tech-shared';
+import { VorgangService } from '@alfa-client/vorgang-shared';
 import { CommonModule } from '@angular/common';
 import { NgModule } from '@angular/core';
 import { StoreModule } from '@ngrx/store';
 import { BESCHEID_FEATURE_KEY, reducer } from './+state/bescheid.reducer';
+import { BescheidListResourceService, createBescheidListResourceService } from './bescheid-list-resource-service';
+import { BescheidResourceService, createBescheidResourceService } from './bescheid-resource-service';
+import { BescheidService } from './bescheid.service';
 
 @NgModule({
   imports: [CommonModule, StoreModule.forFeature(BESCHEID_FEATURE_KEY, reducer)],
+  providers: [
+    BescheidService,
+    {
+      provide: BescheidResourceService,
+      useFactory: createBescheidResourceService,
+      deps: [ResourceRepository, CommandService, VorgangService],
+    },
+    {
+      provide: BescheidListResourceService,
+      useFactory: createBescheidListResourceService,
+      deps: [ResourceRepository, VorgangService],
+    },
+  ],
 })
 export class BescheidSharedModule {}
diff --git a/alfa-client/libs/bescheid-shared/src/lib/bescheid.service.spec.ts b/alfa-client/libs/bescheid-shared/src/lib/bescheid.service.spec.ts
index ddb4bc98ad09c5415e2e3ca6c4853002c17c32d7..9ce1e5f2ab726f6fb574fd43ff6fe02783d5780e 100644
--- a/alfa-client/libs/bescheid-shared/src/lib/bescheid.service.spec.ts
+++ b/alfa-client/libs/bescheid-shared/src/lib/bescheid.service.spec.ts
@@ -21,82 +21,67 @@
  * Die sprachspezifischen Genehmigungen und Beschränkungen
  * unter der Lizenz sind dem Lizenztext zu entnehmen.
  */
-import { BinaryFileListResource, BinaryFileResource, BinaryFileService } from '@alfa-client/binary-file-shared';
-import { CommandOrder, CommandResource, CommandService, CreateCommandProps } from '@alfa-client/command-shared';
+import { BinaryFileListLinkRel, BinaryFileListResource, BinaryFileResource, BinaryFileService, } from '@alfa-client/binary-file-shared';
+import { CommandOrder, CommandResource, CommandResourceService, CommandService, CreateCommandProps, getEffectedResourceUrl, } from '@alfa-client/command-shared';
 import { PostfachService } from '@alfa-client/postfach-shared';
-import {
-  ApiError,
-  EMPTY_STRING,
-  HttpError,
-  StateResource,
-  createEmptyStateResource,
-  createErrorStateResource,
-  createStateResource,
-} from '@alfa-client/tech-shared';
-import { Mock, mock, useFromMock } from '@alfa-client/test-utils';
-import {
-  VorgangCommandService,
-  VorgangService,
-  VorgangWithEingangLinkRel,
-  VorgangWithEingangResource,
-} from '@alfa-client/vorgang-shared';
-import { fakeAsync, tick } from '@angular/core/testing';
+import { createEmptyStateResource, createErrorStateResource, createStateResource, EMPTY_STRING, getEmbeddedResources, ResourceListService, ResourceRepository, StateResource, } from '@alfa-client/tech-shared';
+import { Mock, mock } from '@alfa-client/test-utils';
+import { VorgangCommandService, VorgangService, VorgangWithEingangResource } from '@alfa-client/vorgang-shared';
+import { TestBed } from '@angular/core/testing';
 import { faker } from '@faker-js/faker';
-import { ResourceUri, getUrl } from '@ngxp/rest';
-import { cold } from 'jest-marbles';
+import { getUrl, LinkRel, ResourceUri } from '@ngxp/rest';
 import { CommandLinkRel } from 'libs/command-shared/src/lib/command.linkrel';
-import { createApiError } from 'libs/tech-shared/test/error';
+import { createProblemDetail } from 'libs/tech-shared/test/error';
 import { createVorgangWithEingangResource } from 'libs/vorgang-shared/test/vorgang';
-import { Observable, of } from 'rxjs';
+import { EMPTY, Observable, of } from 'rxjs';
 import { createBinaryFileListResource, createBinaryFileResource } from '../../../binary-file-shared/test/binary-file';
-import {
-  createCommandErrorResource,
-  createCommandResource,
-  createCommandStateResource,
-  createCreateCommandProps,
-} from '../../../command-shared/test/command';
-import { ResourceRepository } from '../../../tech-shared/src/lib/resource/resource.repository';
+import { createCommandErrorStateResource, createCommandResource, createCommandStateResource, createCreateCommandProps, createSuccessfullyDoneCommandStateResource, } from '../../../command-shared/test/command';
 import { createFile } from '../../../tech-shared/test/file';
 import { singleCold, singleColdCompleted } from '../../../tech-shared/test/marbles';
-import {
-  createBescheid,
-  createBescheidListResource,
-  createBescheidResource,
-  createBescheidStateResource,
-  createUploadFileInProgress,
-} from '../test/bescheid';
+import { createBescheid, createBescheidDocument, createBescheidListResource, createBescheidResource } from '../test/bescheid';
 import { createDocumentResource } from '../test/document';
 import { BescheidFacade } from './+state/bescheid.facade';
 import { BescheidLinkRel } from './bescheid.linkrel';
-import {
-  Bescheid,
-  BescheidListResource,
-  BescheidResource,
-  BescheidStatus,
-  BescheidWizardStep,
-  UploadFileInProgress,
-} from './bescheid.model';
+import { Bescheid, BESCHEID_UPLOADED_ATTACHMENTS, BescheidDocument, BescheidListResource, BescheidResource, BescheidStatus, BescheidWizardStep, createEmptyBescheidDocument, createEmptyUploadInProgress, createInitialWizard, } from './bescheid.model';
 import { BescheidService } from './bescheid.service';
 import { DocumentLinkRel } from './document.linkrel';
 import { DocumentResource } from './document.model';
 
+import { BescheidListResourceService, BescheidResourceService, buildCreateBescheidDocumentFromFileProps, buildUpdateBescheidCommandProps, createBescheidListResourceService, createBescheidResourceService, } from '@alfa-client/bescheid-shared';
+import { expect } from '@jest/globals';
+import { cold } from 'jest-marbles';
 import * as DateUtil from '../../../tech-shared/src/lib/date.util';
-import * as BescheidUtil from './bescheid.util';
+
+jest.mock('@alfa-client/bescheid-shared', () => {
+  const originalModule = jest.requireActual('@alfa-client/bescheid-shared');
+
+  return {
+    __esModule: true,
+    ...originalModule,
+    createBescheidResourceService: jest.fn(),
+    createBescheidListResourceService: jest.fn(),
+    buildUpdateBescheidCommandProps: jest.fn(),
+    buildCreateBescheidDocumentFromFileProps: jest.fn(),
+  };
+});
 
 describe('BescheidService', () => {
   let service: BescheidService;
-
   let facade: Mock<BescheidFacade>;
   let vorgangService: Mock<VorgangService>;
-  let resourceRepository: Mock<ResourceRepository<BescheidResource>>;
+  let resourceRepository: Mock<ResourceRepository>;
   let commandService: Mock<CommandService>;
   let vorgangCommandService: Mock<VorgangCommandService>;
   let binaryFileService: Mock<BinaryFileService>;
   let postfachService: Mock<PostfachService>;
+  let bescheidResourceService: Mock<BescheidResourceService>;
+  let bescheidListResourceService: Mock<BescheidListResourceService>;
 
-  const vorgangWithEingangStateResource: StateResource<VorgangWithEingangResource> = createStateResource(
-    createVorgangWithEingangResource(),
-  );
+  const vorgangWithEingangResource: VorgangWithEingangResource = createVorgangWithEingangResource();
+  const vorgangWithEingangStateResource: StateResource<VorgangWithEingangResource> =
+    createStateResource(vorgangWithEingangResource);
+  const bescheidResource: BescheidResource = createBescheidResource();
+  const commandStateResource: StateResource<CommandResource> = createCommandStateResource();
 
   beforeEach(() => {
     facade = mock(BescheidFacade);
@@ -107,642 +92,450 @@ describe('BescheidService', () => {
     vorgangService.getVorgangWithEingang.mockReturnValue(of(vorgangWithEingangStateResource));
     binaryFileService = mock(BinaryFileService);
     postfachService = mock(PostfachService);
+    bescheidResourceService = mock(CommandResourceService);
+    bescheidListResourceService = mock(ResourceListService);
+    (createBescheidResourceService as jest.Mock).mockReturnValue(bescheidResourceService);
+    (createBescheidListResourceService as jest.Mock).mockReturnValue(bescheidListResourceService);
+
+    TestBed.configureTestingModule({
+      providers: [
+        { provide: BescheidFacade, useValue: facade },
+        { provide: VorgangService, useValue: vorgangService },
+        { provide: ResourceRepository, useValue: resourceRepository },
+        { provide: CommandService, useValue: commandService },
+        { provide: VorgangCommandService, useValue: vorgangCommandService },
+        { provide: BinaryFileService, useValue: binaryFileService },
+        {
+          provide: PostfachService,
+          useValue: postfachService,
+        },
+        BescheidService,
+      ],
+    });
 
-    service = new BescheidService(
-      useFromMock(facade),
-      useFromMock(vorgangService),
-      useFromMock(commandService),
-      useFromMock(vorgangCommandService),
-      useFromMock(binaryFileService),
-      useFromMock(resourceRepository),
-      useFromMock(postfachService),
-    );
+    service = TestBed.inject(BescheidService);
   });
 
   it('should be created', () => {
     expect(service).toBeTruthy();
   });
 
-  describe('getActiveStep', () => {
-    it('should emit initial value', () => {
-      const activeStep$: Observable<number> = service.getActiveStep();
-
-      expect(activeStep$).toBeObservable(singleCold(BescheidWizardStep.AntragBescheiden));
-    });
-  });
-
-  describe('setActiveStep', () => {
-    it('should emit changed active step', () => {
-      service.setActiveStep(BescheidWizardStep.DokumenteHochladen);
-
-      expect(service.activeStep$).toBeObservable(singleCold(BescheidWizardStep.DokumenteHochladen));
-    });
-  });
-
-  describe('get bescheid draft', () => {
-    const bescheidDraft: BescheidResource = createBescheidResource();
-    const bescheidDraftStateResource: StateResource<BescheidResource> = createStateResource(bescheidDraft);
-
-    it('should call resource service', () => {
-      service.bescheidResourceService.get = jest.fn();
-
-      service.getBescheidDraft();
-
-      expect(service.bescheidResourceService.get).toHaveBeenCalled();
-    });
-
-    it('should return value', () => {
-      service.bescheidResourceService.get = jest.fn().mockReturnValue(singleCold(bescheidDraftStateResource));
-
-      const bescheidStateResource$: Observable<StateResource<BescheidResource>> = service.getBescheidDraft();
-
-      expect(bescheidStateResource$).toBeObservable(singleCold(bescheidDraftStateResource));
-    });
-  });
+  describe('init', () => {
+    it('should init state', () => {
+      service.setActiveStep(2);
 
-  describe('getBescheidCommand', () => {
-    it('should call facade', () => {
-      service.getBescheidCommand();
+      service.init();
 
-      expect(facade.getBescheidCommand).toHaveBeenCalled();
+      expect(service.getWizard()).toBeObservable(singleCold(createInitialWizard()));
+      expect(service.getActiveStep()).toBeObservable(singleCold(BescheidWizardStep.AntragBescheiden));
+      expect(service.getBescheidCreated()).toBeObservable(singleCold(false));
+      expect(service.getBescheidDocument()).toBeObservable(singleCold(createEmptyBescheidDocument()));
     });
   });
 
-  describe('createBescheid', () => {
-    const vorgangWithEingang: VorgangWithEingangResource = createVorgangWithEingangResource();
-    const command: CommandResource = createCommandResource([CommandLinkRel.EFFECTED_RESOURCE]);
-    const commandStateResource: StateResource<CommandResource> = createStateResource(command);
-
+  describe('exit', () => {
     beforeEach(() => {
-      facade.getBescheidCommand.mockReturnValue(of(commandStateResource));
-      service.bescheidResourceService.loadByResourceUri = jest.fn();
+      service._clearUploadedFiles = jest.fn();
     });
 
-    it('should call facade', () => {
-      service.createBescheid(vorgangWithEingang).subscribe();
+    it('should reload postfach list', () => {
+      service.exit();
 
-      expect(facade.createBescheidDraft).toHaveBeenCalledWith(vorgangWithEingang, {
-        order: CommandOrder.CREATE_BESCHEID,
-        body: null,
-      });
+      expect(postfachService.setPostfachMailOnReload).toHaveBeenCalled();
     });
 
-    it('should set resource by uri', () => {
-      service.createBescheid(vorgangWithEingang).subscribe();
+    it('should clear uploaded files', () => {
+      service.exit();
 
-      expect(service.bescheidResourceService.loadByResourceUri).toHaveBeenCalledWith(
-        getUrl(command, CommandLinkRel.EFFECTED_RESOURCE),
-      );
+      expect(service._clearUploadedFiles).toHaveBeenCalled();
     });
   });
 
-  describe('bescheidErstellungUeberspringen', () => {
-    describe('Bescheid Draft exists', () => {
-      const vorgangWithEingangResource: VorgangWithEingangResource = createVorgangWithEingangResource();
-
-      const bescheidResource: BescheidResource = createBescheidResource();
-      const bescheidStateResource: StateResource<BescheidResource> = createStateResource(bescheidResource);
-
-      const commandStateResource: StateResource<CommandResource> = createCommandStateResource();
-
-      beforeEach(() => {
-        service.existsBescheidDraft = jest.fn().mockReturnValue(true);
-        service.getBescheidDraft = jest.fn().mockReturnValue(of(bescheidStateResource));
-        service.bescheidLoeschenUndErstellungUeberspringen = jest.fn().mockReturnValue(of(commandStateResource));
-      });
-
-      it('should get bescheid draft', (done) => {
-        const command$: Observable<StateResource<CommandResource>> =
-          service.bescheidErstellungUeberspringen(vorgangWithEingangResource);
-
-        command$.subscribe(() => {
-          expect(service.getBescheidDraft).toHaveBeenCalled();
-          done();
-        });
-      });
-
-      it('should Bescheid löschen und Erstellung überspringen', (done) => {
-        const command$: Observable<StateResource<CommandResource>> =
-          service.bescheidErstellungUeberspringen(vorgangWithEingangResource);
-
-        command$.subscribe(() => {
-          expect(service.bescheidLoeschenUndErstellungUeberspringen).toHaveBeenCalledWith(
-            vorgangWithEingangResource,
-            bescheidResource,
-          );
-          done();
-        });
-      });
-
-      it('should return command', () => {
-        const command$: Observable<StateResource<CommandResource>> =
-          service.bescheidErstellungUeberspringen(vorgangWithEingangResource);
-
-        expect(command$).toBeObservable(cold('(a|)', { a: commandStateResource }));
-      });
+  describe('skipBescheidCreation', () => {
+    beforeEach(() => {
+      service.deleteBescheidAndCompleteVorgang = jest.fn().mockReturnValue(of(commandStateResource));
     });
 
-    describe('Bescheid Draft not exists', () => {
-      const vorgangWithEingangResource: VorgangWithEingangResource = createVorgangWithEingangResource();
-      const commandStateResource: StateResource<CommandResource> = createCommandStateResource();
+    it('should complete vorgang', () => {
+      service.skipBescheidCreation(vorgangWithEingangResource, null);
 
-      beforeEach(() => {
-        service.existsBescheidDraft = jest.fn().mockReturnValue(false);
-        service.vorgangAbschliesen = jest.fn().mockReturnValue(of(commandStateResource));
-      });
-
-      it('should call vorgang abschliessen', (done) => {
-        const command$: Observable<StateResource<CommandResource>> =
-          service.bescheidErstellungUeberspringen(vorgangWithEingangResource);
-
-        command$.subscribe(() => {
-          expect(service.vorgangAbschliesen).toHaveBeenCalledWith(vorgangWithEingangResource);
-          done();
-        });
-      });
-
-      it('should return command', () => {
-        const command$: Observable<StateResource<CommandResource>> =
-          service.bescheidErstellungUeberspringen(vorgangWithEingangResource);
-
-        expect(command$).toBeObservable(cold('(a|)', { a: commandStateResource }));
-      });
+      expect(vorgangCommandService.abschliessen).toHaveBeenCalledWith(vorgangWithEingangResource);
     });
-  });
 
-  describe('getBescheidDraftIfExists', () => {
-    let vorgangStateResource: StateResource<VorgangWithEingangResource>;
-    let bescheidStateResource: StateResource<BescheidResource>;
+    it('should NOT complete vorgang', () => {
+      service.skipBescheidCreation(vorgangWithEingangResource, bescheidResource);
 
-    beforeEach(() => {
-      vorgangStateResource = createStateResource(createVorgangWithEingangResource([VorgangWithEingangLinkRel.BESCHEID_DRAFT]));
-      bescheidStateResource = createBescheidStateResource();
-      vorgangService.getVorgangWithEingang.mockReturnValue(of(vorgangStateResource));
-      service.getBescheidDraft = jest.fn().mockReturnValue(of(bescheidStateResource));
+      expect(vorgangCommandService.abschliessen).not.toHaveBeenCalled();
     });
 
-    it('should get vorgang with eingang', () => {
-      service.getBescheidDraftIfExists();
+    it('should delete bescheid and complete vorgang', () => {
+      service.skipBescheidCreation(vorgangWithEingangResource, bescheidResource).subscribe();
 
-      expect(vorgangService.getVorgangWithEingang).toHaveBeenCalled();
+      expect(service.deleteBescheidAndCompleteVorgang).toHaveBeenCalledWith(vorgangWithEingangResource);
     });
 
-    it('should emit state resources', () => {
-      const bescheid$: Observable<StateResource<BescheidResource>> = service.getBescheidDraftIfExists();
+    it('should return command', () => {
+      const command$: Observable<StateResource<CommandResource>> = service.skipBescheidCreation(
+        vorgangWithEingangResource,
+        bescheidResource,
+      );
 
-      expect(bescheid$).toBeObservable(cold('(ab|)', { a: createEmptyStateResource(), b: bescheidStateResource }));
+      expect(command$).toBeObservable(singleColdCompleted(commandStateResource));
     });
   });
 
-  describe('bescheidLoeschenUndErstellungUeberspringen', () => {
-    const vorgangWithEingangResource: VorgangWithEingangResource = createVorgangWithEingangResource();
-    const bescheidResource: BescheidResource = createBescheidResource();
-    const vorgangAbschliessenCommandStateResource: StateResource<CommandResource> = createCommandStateResource();
-
+  describe('deleteBescheidAndCompleteVorgang', () => {
     beforeEach(() => {
-      service.vorgangAbschliesen = jest.fn().mockReturnValue(of(vorgangAbschliessenCommandStateResource));
       service.deleteBescheid = jest.fn().mockReturnValue(of(createCommandStateResource));
+      vorgangCommandService.abschliessen.mockReturnValue(EMPTY);
     });
 
-    it('should Bescheiderstellung überspringen', (done) => {
-      const command$: Observable<StateResource<CommandResource>> = service.bescheidLoeschenUndErstellungUeberspringen(
-        vorgangWithEingangResource,
-        bescheidResource,
-      );
+    it('should complete vorgang', () => {
+      service.deleteBescheidAndCompleteVorgang(vorgangWithEingangResource).subscribe();
 
-      command$.subscribe(() => {
-        expect(service.vorgangAbschliesen).toHaveBeenCalledWith(vorgangWithEingangResource);
-        done();
-      });
+      expect(vorgangCommandService.abschliessen).toHaveBeenCalledWith(vorgangWithEingangResource);
     });
 
-    it('should Bescheid löschen', (done) => {
-      service.vorgangAbschliesen = jest.fn().mockReturnValue(of(createCommandStateResource([CommandLinkRel.EFFECTED_RESOURCE])));
+    it('should delete bescheid', () => {
+      vorgangCommandService.abschliessen.mockReturnValue(of(createSuccessfullyDoneCommandStateResource()));
 
-      const command$: Observable<StateResource<CommandResource>> = service.bescheidLoeschenUndErstellungUeberspringen(
-        vorgangWithEingangResource,
-        bescheidResource,
-      );
+      service.deleteBescheidAndCompleteVorgang(vorgangWithEingangResource).subscribe();
 
-      command$.subscribe(() => {
-        expect(service.deleteBescheid).toHaveBeenCalledWith(bescheidResource);
-        done();
-      });
+      expect(service.deleteBescheid).toHaveBeenCalled();
     });
 
-    it('should not Bescheid löschen', (done) => {
-      service.vorgangAbschliesen = jest.fn().mockReturnValue(of(createCommandStateResource()));
+    it('should NOT delete bescheid on loading', () => {
+      vorgangCommandService.abschliessen.mockReturnValue(of(createEmptyStateResource(true)));
 
-      const command$: Observable<StateResource<CommandResource>> = service.bescheidLoeschenUndErstellungUeberspringen(
-        vorgangWithEingangResource,
-        bescheidResource,
-      );
+      service.deleteBescheidAndCompleteVorgang(vorgangWithEingangResource).subscribe();
 
-      command$.subscribe(() => {
-        expect(service.deleteBescheid).not.toHaveBeenCalledWith(bescheidResource);
-        done();
-      });
+      expect(service.deleteBescheid).not.toHaveBeenCalled();
     });
 
-    it('should emit vorgang abschliessen command', () => {
-      const command$: Observable<StateResource<CommandResource>> = service.bescheidLoeschenUndErstellungUeberspringen(
-        vorgangWithEingangResource,
-        bescheidResource,
-      );
-
-      expect(command$).toBeObservable(cold('(a|)', { a: vorgangAbschliessenCommandStateResource }));
-    });
-  });
+    it('should NOT delete bescheid on error', () => {
+      vorgangCommandService.abschliessen.mockReturnValue(of(createErrorStateResource(createProblemDetail())));
 
-  describe('vorgang abschliessen', () => {
-    const vorgangWithEingangResource: VorgangWithEingangResource = createVorgangWithEingangResource();
-    const commandStateResource: StateResource<CommandResource> = createCommandStateResource();
+      service.deleteBescheidAndCompleteVorgang(vorgangWithEingangResource).subscribe();
 
-    beforeEach(() => {
-      vorgangCommandService.abschliessen.mockReturnValue(of(commandStateResource));
+      expect(service.deleteBescheid).not.toHaveBeenCalled();
     });
 
-    it('should call vorgang command service', (done) => {
-      const command$: Observable<StateResource<CommandResource>> = service.vorgangAbschliesen(vorgangWithEingangResource);
-
-      command$.subscribe(() => {
-        expect(vorgangCommandService.abschliessen).toHaveBeenCalledWith(vorgangWithEingangResource);
-        done();
-      });
-    });
+    it('should return vorgang abschliessen command', () => {
+      const command: StateResource<CommandResource> = createSuccessfullyDoneCommandStateResource();
+      vorgangCommandService.abschliessen.mockReturnValue(of(command));
 
-    it('should return command', () => {
-      const command$: Observable<StateResource<CommandResource>> = service.vorgangAbschliesen(vorgangWithEingangResource);
+      const command$: Observable<StateResource<CommandResource>> =
+        service.deleteBescheidAndCompleteVorgang(vorgangWithEingangResource);
 
-      expect(command$).toBeObservable(cold('(a|)', { a: commandStateResource }));
+      expect(command$).toBeObservable(singleColdCompleted(command));
     });
   });
 
   describe('delete bescheid', () => {
-    const bescheidResource: BescheidResource = createBescheidResource();
-
     it('should create command', () => {
-      service.deleteBescheid(bescheidResource);
+      service.deleteBescheid();
 
-      const expectedProps: CreateCommandProps = {
-        resource: bescheidResource,
-        linkRel: BescheidLinkRel.DELETE,
-        command: {
-          order: CommandOrder.DELETE_BESCHEID,
-          body: null,
-        },
-        snackBarMessage: EMPTY_STRING,
-      };
-      expect(commandService.createCommandByProps).toHaveBeenCalledWith(expectedProps);
+      expect(bescheidResourceService.delete).toHaveBeenCalled();
     });
 
     it('should return command', () => {
-      const commandStateResource: StateResource<CommandResource> = createEmptyStateResource();
-      commandService.createCommandByProps.mockReturnValue(commandStateResource);
+      const commandStateResource: StateResource<CommandResource> = createSuccessfullyDoneCommandStateResource();
+      bescheidResourceService.delete.mockReturnValue(of(commandStateResource));
 
-      const createdCommand: Observable<StateResource<CommandResource>> = service.deleteBescheid(bescheidResource);
+      const createdCommand$: Observable<StateResource<CommandResource>> = service.deleteBescheid();
 
-      expect(createdCommand).toEqual(commandStateResource);
+      expect(createdCommand$).toBeObservable(singleColdCompleted(commandStateResource));
     });
   });
 
-  describe('update bescheid', () => {
-    const bescheid: Bescheid = createBescheid();
-    const commandResource: CommandResource = createCommandResource([CommandLinkRel.EFFECTED_RESOURCE]);
-    const commandStateResource: StateResource<CommandResource> = createStateResource(commandResource);
-    const createCommandProps: CreateCommandProps = createCreateCommandProps();
-    let buildUpdateBescheidCommandPropsSpy: jest.SpyInstance;
-
+  describe('loadFiles', () => {
     beforeEach(() => {
-      buildUpdateBescheidCommandPropsSpy = jest
-        .spyOn(BescheidUtil, 'buildUpdateBescheidCommandProps')
-        .mockReturnValue(createCommandProps);
-      commandService.createCommandByProps.mockReturnValue(of(commandStateResource));
-      service.bescheidResourceService.loadByResourceUri = jest.fn();
-      service.getResource = jest.fn().mockReturnValue(createBescheidResource());
-    });
-
-    it('should build update bescheid command props', () => {
-      service.updateBescheid(bescheid);
-
-      expect(buildUpdateBescheidCommandPropsSpy).toHaveBeenCalledWith(service.getResource(), bescheid);
+      service.loadBescheidDocument = jest.fn();
+      service.loadAttachments = jest.fn();
     });
 
-    it('should create command', () => {
-      service.updateBescheid(bescheid);
+    it('should bescheid document', () => {
+      service.loadFiles(bescheidResource);
 
-      expect(commandService.createCommandByProps).toHaveBeenCalledWith(createCommandProps);
+      expect(service.loadBescheidDocument).toHaveBeenCalledWith(bescheidResource);
     });
 
-    it('should return command', () => {
-      const updateBescheid$: Observable<StateResource<CommandResource>> = service.updateBescheid(bescheid);
-
-      expect(updateBescheid$).toBeObservable(cold('(a|)', { a: commandStateResource }));
-    });
+    it('should load attachments', () => {
+      service.loadFiles(bescheidResource);
 
-    it('should set resource by uri', (done) => {
-      service.updateBescheid(bescheid).subscribe((commandStateResource: StateResource<CommandResource>) => {
-        expect(service.bescheidResourceService.loadByResourceUri).toHaveBeenCalledWith(
-          getUrl(commandStateResource.resource, CommandLinkRel.EFFECTED_RESOURCE),
-        );
-        done();
-      });
+      expect(service.loadAttachments).toHaveBeenCalledWith(bescheidResource);
     });
+  });
 
-    it('should clear create bescheid document in progress', (done) => {
-      service.createBescheidDocumentInProgress$.next(createCommandStateResource());
-
-      service.updateBescheid(bescheid).subscribe(() => {
-        expect(service.createBescheidDocumentInProgress$.value).toEqual(createEmptyStateResource());
-        done();
-      });
+  describe('create bescheid document', () => {
+    beforeEach(() => {
+      service.doCreateBescheidDocument = jest.fn().mockReturnValue(EMPTY);
+      service.handleCreateBescheidDocumentResponse = jest.fn();
     });
 
-    it('should clear upload bescheid document in progress', (done) => {
-      service.uploadBescheidDocumentInProgress$.next(createUploadFileInProgress());
+    it('should emit bescheid document', () => {
+      service.createBescheidDocument(bescheidResource);
 
-      service.updateBescheid(bescheid).subscribe(() => {
-        expect(service.uploadBescheidDocumentInProgress$.value).toEqual({ loading: false });
-        done();
-      });
+      expect(service.getBescheidDocument()).toBeObservable(
+        singleCold({ ...createEmptyBescheidDocument(), create: createEmptyStateResource(true) }),
+      );
     });
 
-    it('should clear attachment upload', (done) => {
-      service.uploadedAttachment$.next(createStateResource(createBinaryFileResource()));
+    it('should do create bescheid document', () => {
+      service.createBescheidDocument(bescheidResource);
 
-      service.updateBescheid(bescheid).subscribe(() => {
-        expect(service.uploadedAttachment$.value).toEqual(createEmptyStateResource());
-        done();
-      });
+      expect(service.doCreateBescheidDocument).toHaveBeenCalledWith(bescheidResource);
     });
-  });
 
-  describe('send bescheid', () => {
-    const bescheidResource: BescheidResource = createBescheidResource();
-    const createCommandProps: CreateCommandProps = createCreateCommandProps();
-    const commandStateResource: StateResource<CommandResource> = createCommandStateResource();
-    const linkRel: string = 'link_rel';
+    it('should handle create response on loaded', () => {
+      service.doCreateBescheidDocument = jest.fn().mockReturnValue(of(commandStateResource));
 
-    let buildSendBescheidCommandPropsSpy: jest.SpyInstance;
+      service.createBescheidDocument(bescheidResource);
 
-    beforeEach(() => {
-      service.bescheidResourceService.get = jest.fn().mockReturnValue(of(createStateResource(bescheidResource)));
-      buildSendBescheidCommandPropsSpy = jest
-        .spyOn(BescheidUtil, 'buildSendBescheidCommandProps')
-        .mockReturnValue(createCommandProps);
-      commandService.createCommandByProps.mockReturnValue(of(commandStateResource));
+      expect(service.handleCreateBescheidDocumentResponse).toHaveBeenCalledWith(commandStateResource);
     });
 
-    it('should get resource', () => {
-      service.sendBescheid(bescheidResource, linkRel);
-
-      expect(service.bescheidResourceService.get).toHaveBeenCalled();
-    });
+    it('should handle create response on error', () => {
+      const commandError: StateResource<CommandResource> = createCommandErrorStateResource();
+      service.doCreateBescheidDocument = jest.fn().mockReturnValue(of(commandError));
 
-    it('should call command service', (done) => {
-      service.sendBescheid(bescheidResource, linkRel).subscribe(() => {
-        expect(commandService.createCommandByProps).toHaveBeenCalledWith(createCommandProps);
-        done();
-      });
-    });
+      service.createBescheidDocument(bescheidResource);
 
-    it('should build send bescheid command props', (done) => {
-      service.sendBescheid(bescheidResource, linkRel).subscribe(() => {
-        expect(buildSendBescheidCommandPropsSpy).toHaveBeenCalledWith(bescheidResource, linkRel);
-        done();
-      });
+      expect(service.handleCreateBescheidDocumentResponse).toHaveBeenCalledWith(commandError);
     });
+  });
 
-    it('should return command', () => {
-      const command$: Observable<StateResource<CommandResource>> = service.sendBescheid(bescheidResource, linkRel);
+  describe('doCreateBescheidDocument', () => {
+    it('should create command by props', () => {
+      service.doCreateBescheidDocument(bescheidResource);
 
-      expect(command$).toBeObservable(cold('(a|)', { a: commandStateResource }));
+      expect(commandService.createCommandByProps).toHaveBeenCalledWith({
+        resource: bescheidResource,
+        linkRel: BescheidLinkRel.CREATE_DOCUMENT,
+        command: {
+          order: CommandOrder.CREATE_BESCHEID_DOCUMENT,
+          body: null,
+        },
+        snackBarMessage: EMPTY_STRING,
+      });
     });
   });
 
-  describe('sendBescheidManually', () => {
-    const bescheidResource: BescheidResource = createBescheidResource();
-    const sendBescheidCommand: StateResource<CommandResource> = createCommandStateResource();
+  describe('handleCreateBescheidDocumentResponse', () => {
+    const commandStateResource: StateResource<CommandResource> = createStateResource(
+      createCommandResource([CommandLinkRel.EFFECTED_RESOURCE]),
+    );
 
     beforeEach(() => {
-      service.sendBescheid = jest.fn().mockReturnValue(of(sendBescheidCommand));
+      service.loadBescheidDocumentByUri = jest.fn();
+      service.emitBescheidDocumentError = jest.fn();
     });
 
-    it('should call sendBescheid', () => {
-      service.sendBescheidManually(bescheidResource);
-
-      expect(service.sendBescheid).toHaveBeenCalledWith(bescheidResource, BescheidLinkRel.BESCHEIDEN);
-    });
+    it('should emit error', () => {
+      const commandErrorStateResource: StateResource<CommandResource> = createCommandErrorStateResource();
 
-    it('should return command', () => {
-      const command$: Observable<StateResource<CommandResource>> = service.sendBescheidManually(bescheidResource);
+      service.handleCreateBescheidDocumentResponse(commandErrorStateResource);
 
-      expect(command$).toBeObservable(singleColdCompleted(sendBescheidCommand));
+      expect(service.getBescheidDocument()).toBeObservable(
+        singleCold({ ...createEmptyBescheidDocument(), create: commandErrorStateResource } as BescheidDocument),
+      );
     });
-  });
 
-  describe('sendBescheidToAntragsteller', () => {
-    const bescheidResource: BescheidResource = createBescheidResource();
-    const sendBescheidCommand: StateResource<CommandResource> = createCommandStateResource();
+    it('should emit bescheid document state', () => {
+      service.handleCreateBescheidDocumentResponse(commandStateResource);
 
-    beforeEach(() => {
-      service.sendBescheid = jest.fn().mockReturnValue(of(sendBescheidCommand));
+      expect(service.getBescheidDocument()).toBeObservable(
+        singleCold({
+          ...createEmptyBescheidDocument(),
+          documentUri: getEffectedResourceUrl(commandStateResource.resource),
+        }),
+      );
     });
 
-    it('should call sendBescheid', () => {
-      service.sendBescheidToAntragsteller(bescheidResource);
+    it('should load document by uri', () => {
+      service.handleCreateBescheidDocumentResponse(commandStateResource);
 
-      expect(service.sendBescheid).toHaveBeenCalledWith(bescheidResource, BescheidLinkRel.BESCHEIDEN_UND_SENDEN);
+      expect(service.loadBescheidDocumentByUri).toHaveBeenCalledWith(getEffectedResourceUrl(commandStateResource.resource));
     });
+  });
 
-    it('should return command', () => {
-      const command$: Observable<StateResource<CommandResource>> = service.sendBescheidToAntragsteller(bescheidResource);
+  describe('emitBescheidDocumentError', () => {
+    it('should emit', () => {
+      const commandError: StateResource<CommandResource> = createCommandErrorStateResource();
 
-      expect(command$).toBeObservable(singleColdCompleted(sendBescheidCommand));
+      service.emitBescheidDocumentError(commandError);
+
+      expect(service.getBescheidDocument()).toBeObservable(
+        singleCold({
+          ...createEmptyBescheidDocument(),
+          upload: { ...createEmptyUploadInProgress(), loading: false, error: commandError.error },
+        }),
+      );
     });
   });
 
-  describe('do update bescheid', () => {
-    const bescheid: Bescheid = createBescheid();
-    const bescheidResource: BescheidResource = createBescheidResource();
-
-    const createCommandProps: CreateCommandProps = createCreateCommandProps();
-    let buildUpdateBescheidCommandPropsSpy: jest.SpyInstance;
-
+  describe('loadBescheidDocument', () => {
     beforeEach(() => {
-      buildUpdateBescheidCommandPropsSpy = jest
-        .spyOn(BescheidUtil, 'buildUpdateBescheidCommandProps')
-        .mockReturnValue(createCommandProps);
-      commandService.createCommandByProps.mockClear();
-      commandService.createCommandByProps.mockReturnValue(of(createCommandStateResource()));
+      service.loadBescheidDocumentByUri = jest.fn();
     });
 
-    it('should build update bescheid command props', () => {
-      service.doUpdateBescheid(bescheidResource, bescheid);
+    it('should load by uri', () => {
+      const bescheidResource: BescheidResource = createBescheidResource([BescheidLinkRel.BESCHEID_DOCUMENT]);
 
-      expect(buildUpdateBescheidCommandPropsSpy).toHaveBeenCalledWith(bescheidResource, bescheid);
+      service.loadBescheidDocument(bescheidResource);
+
+      expect(service.loadBescheidDocumentByUri).toHaveBeenCalledWith(getUrl(bescheidResource, BescheidLinkRel.BESCHEID_DOCUMENT));
     });
 
-    it('should call command service', () => {
-      service.doUpdateBescheid(bescheidResource, bescheid).subscribe();
+    it('should NOT load by uri', () => {
+      service.loadBescheidDocument(bescheidResource);
 
-      expect(commandService.createCommandByProps).toHaveBeenCalledWith(createCommandProps);
+      expect(service.loadBescheidDocumentByUri).not.toHaveBeenCalled();
     });
   });
 
-  describe('getAttachments', () => {
-    let bescheidResource: BescheidResource;
-    let binaryFileListResource: BinaryFileListResource;
-    let binaryFileResource: BinaryFileResource;
+  describe('loadBescheidDocumentByUri', () => {
+    const resourceUri: ResourceUri = faker.internet.url();
 
     beforeEach(() => {
-      bescheidResource = createBescheidResource([BescheidLinkRel.ATTACHMENTS]);
-      service.getBescheidDraft = jest.fn().mockReturnValue(of(createStateResource(bescheidResource)));
+      resourceRepository.getResource.mockReturnValue(EMPTY);
+      service.loadBescheidDocumentFile = jest.fn();
+    });
 
-      binaryFileResource = createBinaryFileResource();
+    it('should get resource', () => {
+      service.loadBescheidDocumentByUri(resourceUri);
 
-      binaryFileListResource = createBinaryFileListResource([binaryFileResource]);
-      binaryFileService.getFiles.mockReturnValue(of(createStateResource(binaryFileListResource)));
+      expect(resourceRepository.getResource).toHaveBeenCalledWith(resourceUri);
     });
 
-    it('should get files', (done) => {
-      service.getAttachments().subscribe(() => {
-        expect(binaryFileService.getFiles).toHaveBeenCalledWith(bescheidResource, BescheidLinkRel.ATTACHMENTS);
-        done();
-      });
-    });
+    it('should load bescheid document file', () => {
+      const documentResource: DocumentResource = createDocumentResource();
+      resourceRepository.getResource.mockReturnValue(of(documentResource));
 
-    it('should return embedded resources', () => {
-      const attachments$: Observable<BinaryFileResource[]> = service.getAttachments();
+      service.loadBescheidDocumentByUri(resourceUri);
 
-      expect(attachments$).toBeObservable(singleColdCompleted([binaryFileResource]));
+      expect(service.loadBescheidDocumentFile).toHaveBeenCalledWith(documentResource);
     });
   });
 
-  describe('get document uri', () => {
-    const documentUri: ResourceUri = faker.internet.url();
+  describe('load bescheid document file', () => {
+    const document: DocumentResource = createDocumentResource([DocumentLinkRel.FILE]);
+    const binaryFileStateResource: StateResource<BinaryFileResource> = createStateResource(createBinaryFileResource());
 
     beforeEach(() => {
-      service.bescheidDocumentUri$.next(documentUri);
+      binaryFileService.getFile.mockReturnValue(of(binaryFileStateResource));
     });
 
-    it('should return value', (done) => {
-      service.getDocumentUri().subscribe((uri) => {
-        expect(uri).toBe(documentUri);
-        done();
-      });
+    it('should call binary file service', () => {
+      service.loadBescheidDocumentFile(document);
+
+      expect(binaryFileService.getFile).toHaveBeenCalledWith(getUrl(document, DocumentLinkRel.FILE));
     });
-  });
 
-  describe('get bescheid document file', () => {
-    it('should return value', (done) => {
-      const binaryFile: BinaryFileResource = createBinaryFileResource();
-      const binaryFileStateResource: StateResource<BinaryFileResource> = createStateResource(binaryFile);
-      service.bescheidDocumentFile$.next(binaryFileStateResource);
+    it('should emit bescheid document state', () => {
+      service.loadBescheidDocumentFile(document);
 
-      service.getBescheidDocumentFile().subscribe((result: StateResource<BinaryFileResource>) => {
-        expect(result).toBe(binaryFileStateResource);
-        done();
-      });
+      expect(service.getBescheidDocument()).toBeObservable(
+        singleCold({
+          upload: createEmptyUploadInProgress(),
+          create: createEmptyStateResource(),
+          resource: binaryFileStateResource.resource,
+          documentUri: getUrl(document, LinkRel.Self),
+        }),
+      );
     });
   });
 
-  describe('upload bescheid document', () => {
-    const bescheid: BescheidResource = createBescheidResource();
-    const file: File = createFile();
+  describe('loadAttachments', () => {
+    const bescheidResourceWithAttachments: BescheidResource = createBescheidResource([BescheidLinkRel.ATTACHMENTS]);
 
     beforeEach(() => {
-      service.doUploadBescheidDocument = jest.fn();
+      binaryFileService.getFiles.mockReturnValue(EMPTY);
     });
 
-    it('should call init upload bescheid document in progress', () => {
-      service.uploadBescheidDocument(bescheid, file);
+    it('should call binary file service', () => {
+      service.loadAttachments(bescheidResourceWithAttachments);
 
-      expect(service.uploadBescheidDocumentInProgress$.value).toEqual({
-        loading: true,
-        fileName: file.name,
-      });
+      expect(binaryFileService.getFiles).toHaveBeenCalledWith(bescheidResourceWithAttachments, BescheidLinkRel.ATTACHMENTS);
     });
 
-    it('should clear create bescheid document', () => {
-      service.createBescheidDocumentInProgress$.next(createCommandStateResource());
-      service.uploadBescheidDocument(bescheid, file);
+    it('should NOT call binary file service', () => {
+      service.loadAttachments(bescheidResource);
 
-      expect(service.createBescheidDocumentInProgress$.value).toEqual(createEmptyStateResource());
+      expect(binaryFileService.getFiles).not.toHaveBeenCalled();
     });
 
-    it('should call do upload bescheid document', () => {
-      service.uploadBescheidDocument(bescheid, file);
+    it('should add files', () => {
+      const binaryFileListStateResource: StateResource<BinaryFileListResource> =
+        createStateResource(createBinaryFileListResource());
+      binaryFileService.getFiles.mockReturnValue(of(binaryFileListStateResource));
 
-      expect(service.doUploadBescheidDocument).toHaveBeenCalledWith(bescheid, file);
-    });
+      service.loadAttachments(bescheidResourceWithAttachments);
 
-    it('should return bescheid document file', (done) => {
-      service.uploadBescheidDocument(bescheid, file).subscribe((uploadFileInProgress: UploadFileInProgress) => {
-        expect(uploadFileInProgress.fileName).toBe(file.name);
-        expect(uploadFileInProgress.loading).toBeTruthy();
-        done();
-      });
+      expect(binaryFileService.addFiles).toHaveBeenCalledWith(
+        BESCHEID_UPLOADED_ATTACHMENTS,
+        getEmbeddedResources(binaryFileListStateResource, BinaryFileListLinkRel.FILE_LIST),
+      );
     });
   });
 
-  describe('do upload bescheid document', () => {
-    const bescheid: BescheidResource = createBescheidResource();
-    const file: File = createFile();
-
-    const binaryFileStateResource: StateResource<BinaryFileResource> = createStateResource(createBinaryFileResource());
+  describe('upload bescheid document', () => {
+    const documentFile: File = createFile();
 
     beforeEach(() => {
-      binaryFileService.uploadFile.mockReturnValue(of(binaryFileStateResource));
+      binaryFileService.uploadFile.mockReturnValue(EMPTY);
+      service.handleUploadBescheidDocumentResponse = jest.fn();
+    });
+
+    it('should emit bescheid document state', () => {
+      service.uploadBescheidDocument(documentFile, bescheidResource);
+
+      expect(service.getBescheidDocument()).toBeObservable(
+        singleCold({ ...createEmptyBescheidDocument(), upload: { fileName: documentFile.name, loading: true } }),
+      );
     });
 
     it('should call binary file service', () => {
-      service.doUploadBescheidDocument(bescheid, file);
+      service.uploadBescheidDocument(documentFile, bescheidResource);
 
-      expect(binaryFileService.uploadFile).toHaveBeenCalledWith(bescheid, BescheidLinkRel.UPLOAD_BESCHEID_FILE, file, false);
+      expect(binaryFileService.uploadFile).toHaveBeenCalledWith(
+        bescheidResource,
+        BescheidLinkRel.UPLOAD_BESCHEID_FILE,
+        documentFile,
+        false,
+      );
     });
 
-    it('should call handle upload becheid document response', () => {
-      service.handleUploadBescheidDocumentResponse = jest.fn();
+    it('should handle upload response', () => {
+      const binaryFileStateResource: StateResource<BinaryFileResource> = createStateResource(createBinaryFileResource());
+      binaryFileService.uploadFile.mockReturnValue(of(binaryFileStateResource));
 
-      service.doUploadBescheidDocument(bescheid, file);
+      service.uploadBescheidDocument(documentFile, bescheidResource);
 
-      expect(service.handleUploadBescheidDocumentResponse).toHaveBeenCalledWith(bescheid, binaryFileStateResource);
+      expect(service.handleUploadBescheidDocumentResponse).toHaveBeenCalledWith(bescheidResource, binaryFileStateResource);
     });
   });
 
-  describe('handle upload bescheid document response', () => {
-    const bescheid: BescheidResource = createBescheidResource();
-
-    const binaryFile: BinaryFileResource = createBinaryFileResource();
-    const apiError: ApiError = createApiError();
-    const binaryFileErrorStateResource: StateResource<BinaryFileResource> = createErrorStateResource(apiError);
-    const binaryFileStateResource: StateResource<BinaryFileResource> = createStateResource(binaryFile);
-
-    it('should call create bescheid document from file on success', () => {
+  describe('handleUploadBescheidDocumentResponse', () => {
+    beforeEach(() => {
+      service.emitBescheidDocumentError = jest.fn();
       service.createBescheidDocumentFromFile = jest.fn();
-
-      service.handleUploadBescheidDocumentResponse(bescheid, binaryFileStateResource);
-
-      expect(service.createBescheidDocumentFromFile).toHaveBeenCalledWith(bescheid, binaryFile);
     });
 
-    describe('on no error', () => {
-      it('should set error', () => {
-        service.uploadBescheidDocumentInProgress$.next({ loading: false });
+    it('should emit error', () => {
+      const errorStateResource: StateResource<BinaryFileResource> = createErrorStateResource(createProblemDetail());
 
-        service.handleUploadBescheidDocumentResponse(bescheid, binaryFileErrorStateResource);
+      service.handleUploadBescheidDocumentResponse(bescheidResource, errorStateResource);
 
-        expect(service.uploadBescheidDocumentInProgress$.value.error).toBe(apiError);
-      });
+      expect(service.emitBescheidDocumentError).toHaveBeenCalledWith(errorStateResource);
+    });
 
-      it('should set loading to false', () => {
-        service.uploadBescheidDocumentInProgress$.next({ loading: true });
+    it('should create bescheid document from file', () => {
+      const binaryFileStateResource: StateResource<BinaryFileResource> = createStateResource(createBinaryFileResource());
 
-        service.handleUploadBescheidDocumentResponse(bescheid, binaryFileErrorStateResource);
+      service.handleUploadBescheidDocumentResponse(bescheidResource, binaryFileStateResource);
 
-        expect(service.uploadBescheidDocumentInProgress$.value.loading).toBeFalsy();
-      });
+      expect(service.createBescheidDocumentFromFile).toHaveBeenCalledWith(bescheidResource, binaryFileStateResource.resource);
     });
   });
 
@@ -751,14 +544,12 @@ describe('BescheidService', () => {
     const binaryFile: BinaryFileResource = createBinaryFileResource();
 
     const createCommandProps: CreateCommandProps = createCreateCommandProps();
-    let buildCreateBescheidDocumentFromFilePropsSpy;
+    let buildCreateBescheidDocumentFromFilePropsMock = buildCreateBescheidDocumentFromFileProps as jest.Mock;
 
     const commandStateResource: StateResource<CommandResource> = createCommandStateResource();
 
     beforeEach(() => {
-      buildCreateBescheidDocumentFromFilePropsSpy = jest
-        .spyOn(BescheidUtil, 'buildCreateBescheidDocumentFromFileProps')
-        .mockReturnValue(createCommandProps);
+      buildCreateBescheidDocumentFromFilePropsMock.mockReturnValue(createCommandProps);
       commandService.createCommandByProps.mockReturnValue(of(commandStateResource));
     });
 
@@ -771,7 +562,7 @@ describe('BescheidService', () => {
     it('should build create command document from file props', () => {
       service.createBescheidDocumentFromFile(bescheid, binaryFile);
 
-      expect(buildCreateBescheidDocumentFromFilePropsSpy).toHaveBeenCalledWith(bescheid, binaryFile);
+      expect(buildCreateBescheidDocumentFromFilePropsMock).toHaveBeenCalledWith(bescheid, binaryFile);
     });
 
     it('should call handle create bescheid document from file response', () => {
@@ -783,374 +574,340 @@ describe('BescheidService', () => {
     });
   });
 
-  describe('handle create bescheid document response from file', () => {
-    const binaryFile: BinaryFileResource = createBinaryFileResource();
-    const command: CommandResource = createCommandResource([CommandLinkRel.EFFECTED_RESOURCE]);
-    const commandStateResource: StateResource<CommandResource> = createStateResource(command);
+  describe('handleCreateBescheidDocumentFromFileResponse', () => {
+    const commandStateResource: StateResource<CommandResource> = createStateResource(
+      createCommandResource([CommandLinkRel.EFFECTED_RESOURCE]),
+    );
 
     beforeEach(() => {
-      service.bescheidDocumentFile$.next(createEmptyStateResource());
+      service.emitBescheidDocumentError = jest.fn();
     });
 
-    it('should set upload bescheid document in progress done', () => {
-      service.handleCreateBescheidDocumentFromFileResponse(commandStateResource, binaryFile);
+    it('should emit error', () => {
+      const errorStateResource: StateResource<CommandResource> = createErrorStateResource(createProblemDetail());
+
+      service.handleCreateBescheidDocumentFromFileResponse(errorStateResource, createBinaryFileResource());
 
-      expect(service.bescheidDocumentFile$.value).toEqual(createStateResource(binaryFile));
+      expect(service.emitBescheidDocumentError).toHaveBeenCalledWith(errorStateResource);
     });
 
-    describe('on error', () => {
-      it('should set upload bescheid in progress error', () => {
-        const httpError: HttpError = createApiError();
-        const errorStateResource: StateResource<CommandResource> = createErrorStateResource(httpError);
+    it('should NOT emit error', () => {
+      const binaryFileResource: BinaryFileResource = createBinaryFileResource();
 
-        service.handleCreateBescheidDocumentFromFileResponse(errorStateResource, binaryFile);
+      service.handleCreateBescheidDocumentFromFileResponse(commandStateResource, binaryFileResource);
 
-        expect(service.uploadBescheidDocumentInProgress$.value.error).toBe(httpError);
-      });
+      expect(service.emitBescheidDocumentError).not.toHaveBeenCalled();
+    });
 
-      it('should set upload bescheid in progress loading false', () => {
-        const httpError: HttpError = createApiError();
-        const errorStateResource: StateResource<CommandResource> = createErrorStateResource(httpError);
+    it('should emit bescheid document state', () => {
+      const binaryFileResource: BinaryFileResource = createBinaryFileResource();
 
-        service.handleCreateBescheidDocumentFromFileResponse(errorStateResource, binaryFile);
+      service.handleCreateBescheidDocumentFromFileResponse(commandStateResource, binaryFileResource);
 
-        expect(service.uploadBescheidDocumentInProgress$.value.loading).toBeFalsy();
-      });
+      expect(service.getBescheidDocument()).toBeObservable(
+        singleCold({
+          ...createEmptyBescheidDocument(),
+          documentUri: getEffectedResourceUrl(commandStateResource.resource),
+          upload: createEmptyUploadInProgress(),
+          resource: binaryFileResource,
+        }),
+      );
     });
 
-    describe('on success', () => {
-      it('should set documentFile', () => {
-        service.handleCreateBescheidDocumentFromFileResponse(commandStateResource, binaryFile);
-
-        expect(service.bescheidDocumentFile$.value).toEqual(createStateResource(binaryFile));
-      });
+    it('should NOT emit bescheid document state', () => {
+      const errorStateResource: StateResource<CommandResource> = createErrorStateResource(createProblemDetail());
 
-      it('should set document uri', () => {
-        service.handleCreateBescheidDocumentFromFileResponse(commandStateResource, binaryFile);
+      service.handleCreateBescheidDocumentFromFileResponse(errorStateResource, createBinaryFileResource());
 
-        expect(service.bescheidDocumentUri$.value).toEqual(getUrl(command, CommandLinkRel.EFFECTED_RESOURCE));
-      });
+      expect(service.getBescheidDocument()).toBeObservable(singleCold(createEmptyBescheidDocument()));
     });
   });
 
-  describe('delete bescheid document', () => {
-    it('should clear document uri', () => {
-      service.bescheidDocumentUri$.next(faker.internet.url());
-
-      service.deleteBescheidDocument();
+  describe('createBescheid', () => {
+    const vorgangWithEingang: VorgangWithEingangResource = createVorgangWithEingangResource();
+    const command: CommandResource = createCommandResource([CommandLinkRel.EFFECTED_RESOURCE]);
+    const commandStateResource: StateResource<CommandResource> = createStateResource(command);
 
-      expect(service.bescheidDocumentUri$.value).toBeNull();
+    beforeEach(() => {
+      service.updateBescheidDraft = jest.fn();
     });
 
-    it('should clear document file', () => {
-      service.bescheidDocumentFile$.next(createStateResource(createBinaryFileResource()));
+    beforeEach(() => {
+      facade.getBescheidCommand.mockReturnValue(of(commandStateResource));
+      (service as any).bescheidResourceService.loadByResourceUri = jest.fn();
+    });
 
-      service.deleteBescheidDocument();
+    it('should call facade', () => {
+      service.createBescheid(vorgangWithEingang).subscribe();
 
-      expect(service.bescheidDocumentFile$.value).toEqual(createEmptyStateResource());
+      expect(facade.createBescheidDraft).toHaveBeenCalledWith(vorgangWithEingang, {
+        order: CommandOrder.CREATE_BESCHEID,
+        body: null,
+      });
     });
 
-    it('should clear document', () => {
-      service.bescheidDocument$.next(createStateResource(createDocumentResource()));
-
-      service.deleteBescheidDocument();
+    it('should update bescheid draft', () => {
+      service.createBescheid(vorgangWithEingang).subscribe();
 
-      expect(service.bescheidDocument$.value).toEqual(createEmptyStateResource());
+      expect(service.updateBescheidDraft).toHaveBeenCalledWith(commandStateResource.resource);
     });
   });
 
-  describe('init', () => {
-    it('should emit null bescheid document uri', () => {
-      service.init();
+  describe('updateBescheidDraft', () => {
+    const command: CommandResource = createCommandResource([CommandLinkRel.EFFECTED_RESOURCE]);
 
-      expect(service.getDocumentUri()).toBeObservable(singleCold(null));
+    beforeEach(() => {
+      (service as any).bescheidResourceService.loadByResourceUri = jest.fn();
     });
 
-    it('should emit empty state resource document file', () => {
-      service.init();
+    it('should load resource by uri', () => {
+      service.updateBescheidDraft(command);
 
-      expect(service.getBescheidDocumentFile()).toBeObservable(singleCold(createEmptyStateResource()));
+      expect((service as any).bescheidResourceService.loadByResourceUri).toHaveBeenCalledWith(
+        getUrl(command, CommandLinkRel.EFFECTED_RESOURCE),
+      );
     });
 
-    it('should emit empty state resource uploaded attachment', () => {
-      service.init();
+    it('should emit bescheid created', () => {
+      service.updateBescheidDraft({ ...command, order: CommandOrder.CREATE_BESCHEID });
 
-      expect(service.getUploadedAttachment()).toBeObservable(singleCold(createEmptyStateResource()));
+      expect(service.getBescheidCreated()).toBeObservable(singleCold(true));
     });
+  });
 
-    it('should emit empty upload in progress for upload bescheid document in progress', () => {
-      service.init();
+  describe('updateBescheid', () => {
+    const bescheid: Bescheid = createBescheid();
+    const commandResource: CommandResource = createCommandResource([CommandLinkRel.EFFECTED_RESOURCE]);
+    const commandStateResource: StateResource<CommandResource> = createStateResource(commandResource);
 
-      expect(service.getUploadBescheidDocumentInProgress()).toBeObservable(singleCold({ loading: false }));
+    beforeEach(() => {
+      service.doUpdateBescheid = jest.fn().mockReturnValue(EMPTY);
+      service.updateBescheidDraft = jest.fn().mockReturnValue(EMPTY);
     });
 
-    it('should emit empty upload in progress for upload attachmentdocument in progress', () => {
-      service.init();
+    it('should do update bescheid', () => {
+      service.updateBescheid(bescheidResource, bescheid);
 
-      expect(service.getUploadAttachmentInProgress()).toBeObservable(singleCold({ loading: false }));
+      expect(service.doUpdateBescheid).toHaveBeenCalledWith(bescheidResource, bescheid);
     });
 
-    it('should init active step', () => {
-      service.setActiveStep(2);
+    it('should update bescheid draft', () => {
+      service.doUpdateBescheid = jest.fn().mockReturnValue(of(commandStateResource));
 
-      service.init();
+      service.updateBescheid(bescheidResource, bescheid).subscribe();
 
-      expect(service.activeStep$).toBeObservable(singleCold(1));
+      expect(service.updateBescheidDraft).toHaveBeenCalledWith(commandResource);
     });
   });
 
-  describe('create bescheid document', () => {
-    const commandResource: CommandResource = createCommandResource([CommandLinkRel.EFFECTED_RESOURCE]);
-    const commandStateResource: StateResource<CommandResource> = createStateResource(commandResource);
-
+  describe('do update bescheid', () => {
+    const bescheid: Bescheid = createBescheid();
     const bescheidResource: BescheidResource = createBescheidResource();
-    const createCommandProps: CreateCommandProps = createCreateCommandProps();
 
-    let buildCreateBescheidDocumentCommandPropsSpy: jest.SpyInstance;
+    const createCommandProps: CreateCommandProps = createCreateCommandProps();
+    let buildUpdateBescheidCommandPropsMock: jest.Mock = buildUpdateBescheidCommandProps as jest.Mock;
 
     beforeEach(() => {
-      commandService.createCommandByProps.mockReturnValue(of(commandStateResource));
-      service.getResource = jest.fn().mockReturnValue(bescheidResource);
-      buildCreateBescheidDocumentCommandPropsSpy = jest
-        .spyOn(BescheidUtil, 'buildCreateBescheidDocumentCommandProps')
-        .mockReturnValue(createCommandProps);
+      buildUpdateBescheidCommandPropsMock.mockReturnValue(createCommandProps);
+      commandService.createCommandByProps.mockClear();
+      commandService.createCommandByProps.mockReturnValue(of(createCommandStateResource()));
     });
 
-    it('should call command service', () => {
-      service.createBescheidDocument();
+    it('should build update bescheid command props', () => {
+      service.doUpdateBescheid(bescheidResource, bescheid);
 
-      expect(commandService.createCommandByProps).toHaveBeenCalledWith(createCommandProps);
+      expect(buildUpdateBescheidCommandPropsMock).toHaveBeenCalledWith(bescheidResource, bescheid);
     });
 
-    it('should build create command props', () => {
-      service.createBescheidDocument();
+    it('should call command service', () => {
+      service.doUpdateBescheid(bescheidResource, bescheid).subscribe();
 
-      expect(buildCreateBescheidDocumentCommandPropsSpy).toHaveBeenCalledWith(bescheidResource);
+      expect(commandService.createCommandByProps).toHaveBeenCalledWith(createCommandProps);
     });
+  });
 
-    it('should set create beschied document in progress', () => {
-      service.createBescheidDocument();
-
-      expect(service.createBescheidDocumentInProgress$.value).toEqual(commandStateResource);
+  describe('sendBescheidManually', () => {
+    beforeEach(() => {
+      service.sendBescheid = jest.fn().mockReturnValue(EMPTY);
     });
 
-    it('should set upload beschied document in progress loading false', () => {
-      service.uploadBescheidDocumentInProgress$.next({
-        loading: true,
-        error: createApiError(),
-        fileName: 'Dummy',
-      });
-
-      service.createBescheidDocument();
+    it('should send bescheid', () => {
+      service.sendBescheidManually().subscribe();
 
-      expect(service.uploadBescheidDocumentInProgress$.value).toEqual({ loading: false });
+      expect(service.sendBescheid).toHaveBeenCalledWith(BescheidLinkRel.BESCHEIDEN);
     });
 
-    describe('on successfully done command', () => {
-      it('should load bescheid document', fakeAsync(() => {
-        service.loadBescheidDocumentByUri = jest.fn();
-
-        service.createBescheidDocument();
-        tick();
-
-        expect(service.loadBescheidDocumentByUri).toHaveBeenCalledWith(getUrl(commandResource, CommandLinkRel.EFFECTED_RESOURCE));
-      }));
+    it('should return send bescheid command', () => {
+      const commandStateResource: StateResource<CommandResource> = createSuccessfullyDoneCommandStateResource();
+      service.sendBescheid = jest.fn().mockReturnValue(of(commandStateResource));
 
-      it('should update bescheid document Url', fakeAsync(() => {
-        service.loadBescheidDocumentByUri = jest.fn();
+      const sendCommandStateResource$: Observable<StateResource<CommandResource>> = service.sendBescheidManually();
 
-        service.createBescheidDocument();
-        tick();
+      expect(sendCommandStateResource$).toBeObservable(singleColdCompleted(commandStateResource));
+    });
+  });
 
-        expect(service.bescheidDocumentUri$.value).toBe(getUrl(commandResource, CommandLinkRel.EFFECTED_RESOURCE));
-      }));
+  describe('sendBescheid', () => {
+    beforeEach(() => {
+      service.getBescheidDraft = jest.fn().mockReturnValue(of(createStateResource(bescheidResource)));
+      commandService.createCommandByProps.mockReturnValue(EMPTY);
     });
 
-    describe('on error', () => {
-      const commandErrorStateResource: StateResource<CommandResource> = createStateResource(createCommandErrorResource());
+    it('should get bescheid draft', () => {
+      service.sendBescheidManually().subscribe();
 
-      it('should emit command state resource', () => {
-        commandService.createCommandByProps.mockReturnValue(of(commandErrorStateResource));
+      expect(service.getBescheidDraft).toHaveBeenCalled();
+    });
 
-        service.createBescheidDocument();
+    it('should create command', () => {
+      service.sendBescheid(BescheidLinkRel.BESCHEIDEN).subscribe();
 
-        expect(service.createBescheidDocumentInProgress$.value).toBe(commandErrorStateResource);
-      });
+      expect(commandService.createCommandByProps).toHaveBeenCalledWith({
+        resource: bescheidResource,
+        linkRel: BescheidLinkRel.BESCHEIDEN,
+        command: {
+          order: CommandOrder.SEND_BESCHEID,
+          body: null,
+        },
+        snackBarMessage: EMPTY_STRING,
+      } as CreateCommandProps);
+    });
 
-      it('should set create bescheid document in progress loading false', () => {
-        service.createBescheidDocumentInProgress$.next(createEmptyStateResource(true));
-        commandService.createCommandByProps.mockReturnValue(of(commandErrorStateResource));
+    it('should return send bescheid command', () => {
+      const commandStateResource: StateResource<CommandResource> = createSuccessfullyDoneCommandStateResource();
+      commandService.createCommandByProps = jest.fn().mockReturnValue(of(commandStateResource));
 
-        service.createBescheidDocument();
+      const sendCommandStateResource$: Observable<StateResource<CommandResource>> = service.sendBescheid(
+        BescheidLinkRel.BESCHEIDEN,
+      );
 
-        expect(service.createBescheidDocumentInProgress$.value.loading).toBeFalsy();
-      });
+      expect(sendCommandStateResource$).toBeObservable(singleColdCompleted(commandStateResource));
     });
   });
 
-  describe('exists bescheid document file', () => {
-    it('should return true if resource exists', (done) => {
-      service.bescheidDocumentFile$.next(createStateResource(createBinaryFileResource()));
-
-      service.existBescheidDocumentFile().subscribe((result) => {
-        expect(result).toBeTruthy();
-        done();
-      });
+  describe('sendBescheidMessage', () => {
+    beforeEach(() => {
+      service.getBescheidDraft = jest.fn().mockReturnValue(createStateResource(bescheidResource));
+      service.sendBescheid = jest.fn().mockReturnValue(EMPTY);
     });
 
-    it('should return false if resource is null', (done) => {
-      service.bescheidDocumentFile$.next(createEmptyStateResource());
+    it('should send bescheid', () => {
+      service.sendBescheidMessage().subscribe();
 
-      service.existBescheidDocumentFile().subscribe((result) => {
-        expect(result).toBeFalsy();
-        done();
-      });
+      expect(service.sendBescheid).toHaveBeenCalledWith(BescheidLinkRel.BESCHEIDEN_UND_SENDEN);
     });
-  });
 
-  describe('get bescheid document command', () => {
-    const commandResource: CommandResource = createCommandResource();
-    const commandStateResource: StateResource<CommandResource> = createStateResource(commandResource);
+    it('should return send bescheid command', () => {
+      const commandStateResource: StateResource<CommandResource> = createSuccessfullyDoneCommandStateResource();
+      service.sendBescheid = jest.fn().mockReturnValue(of(commandStateResource));
 
-    beforeEach(() => {
-      commandService.getCommandByOrder.mockReturnValue(of(commandStateResource));
-    });
-
-    it('should call command service', (done) => {
-      service.getBescheidDocumentCommand().subscribe(() => {
-        expect(commandService.getCommandByOrder).toHaveBeenCalledWith(CommandOrder.CREATE_BESCHEID_DOCUMENT);
-        done();
-      });
-    });
+      const sendCommandStateResource$: Observable<StateResource<CommandResource>> = service.sendBescheidMessage();
 
-    it('should return command stateResource', (done) => {
-      service.getBescheidDocumentCommand().subscribe((result) => {
-        expect(result).toBe(commandStateResource);
-        done();
-      });
+      expect(sendCommandStateResource$).toBeObservable(singleColdCompleted(commandStateResource));
     });
   });
 
-  describe('exists bescheid draft', () => {
+  describe('setActiveStep', () => {
     beforeEach(() => {
-      service.bescheidResourceService.existResource = jest.fn().mockReturnValue(of(true));
-    });
-
-    it('should call bescheid resource service', () => {
-      service.existsBescheidDraft();
-
-      expect(service.bescheidResourceService.existResource).toHaveBeenCalled();
+      service._clearUploadedFiles = jest.fn();
     });
 
-    it('should return false on missing resource', () => {
-      service.bescheidResourceService.existResource = jest.fn().mockReturnValue(of(false));
-
-      const exists: boolean = service.existsBescheidDraft();
+    it('should emit changed active step', () => {
+      service.setActiveStep(BescheidWizardStep.DokumenteHochladen);
 
-      expect(exists).toBeFalsy();
+      expect(service.getActiveStep()).toBeObservable(singleCold(BescheidWizardStep.DokumenteHochladen));
     });
 
-    it('should return true on existing resource', () => {
-      const exists: boolean = service.existsBescheidDraft();
+    it('should clear uploaded files', () => {
+      service.setActiveStep(BescheidWizardStep.DokumenteHochladen);
 
-      expect(exists).toBeTruthy();
+      expect(service._clearUploadedFiles).toHaveBeenCalled();
     });
   });
 
-  describe('bescheidVerwerfen', () => {
-    const command: CommandResource = createCommandResource();
-    const commandStateResource: StateResource<CommandResource> = createStateResource(command);
-
-    beforeEach(() => {
-      service.deleteBescheid = jest.fn().mockReturnValue(of(commandStateResource));
-      service.deleteBescheidDocument = jest.fn();
-
-      service.getResource = jest.fn().mockReturnValue(createBescheidResource());
-    });
+  describe('getBescheidDraft', () => {
+    const bescheidDraft: BescheidResource = createBescheidResource();
+    const bescheidDraftStateResource: StateResource<BescheidResource> = createStateResource(bescheidDraft);
 
-    it('should get resource', () => {
-      service.bescheidVerwerfen().subscribe();
+    it('should call resource service', () => {
+      bescheidResourceService.get = jest.fn();
 
-      expect(service.getResource).toHaveBeenCalled();
-    });
+      service.getBescheidDraft();
 
-    it('should delete bescheid', (done) => {
-      service.bescheidVerwerfen().subscribe(() => {
-        expect(service.deleteBescheid).toHaveBeenCalled();
-        done();
-      });
+      expect(bescheidResourceService.get).toHaveBeenCalled();
     });
 
-    it('should return command', () => {
-      const command: StateResource<CommandResource> = createCommandStateResource();
-      service.deleteBescheid = jest.fn().mockReturnValue(singleCold(command));
+    it('should return value', () => {
+      bescheidResourceService.get = jest.fn().mockReturnValue(singleCold(bescheidDraftStateResource));
 
-      const command$: Observable<StateResource<CommandResource>> = service.bescheidVerwerfen();
+      const bescheidStateResource$: Observable<StateResource<BescheidResource>> = service.getBescheidDraft();
 
-      expect(command$).toBeObservable(singleCold(command));
+      expect(bescheidStateResource$).toBeObservable(singleCold(bescheidDraftStateResource));
     });
+  });
 
-    it('should delete bescheid document', (done) => {
-      service.deleteBescheid = jest.fn().mockReturnValue(of(createCommandStateResource()));
-
-      service.bescheidVerwerfen().subscribe(() => {
-        done();
-        expect(service.deleteBescheidDocument).toHaveBeenCalled();
-      });
-    });
+  describe('setNachrichtEmpfaenger', () => {
+    it('should change wizard state', () => {
+      const empfaenger: string = faker.person.fullName();
 
-    it('should reload vorgang', (done) => {
-      service.deleteBescheid = jest.fn().mockReturnValue(of(createCommandStateResource()));
+      service.setNachrichtEmpfaenger(empfaenger);
 
-      service.bescheidVerwerfen().subscribe(() => {
-        done();
-        expect(vorgangService.reloadCurrentVorgang).toHaveBeenCalled();
-      });
+      expect(service.getWizard()).toBeObservable(singleCold({ ...createInitialWizard(), empfaenger }));
     });
   });
 
-  describe('load bescheid document file', () => {
-    const document: DocumentResource = createDocumentResource([DocumentLinkRel.FILE]);
-    const binaryFileStateResource: StateResource<BinaryFileResource> = createStateResource(createBinaryFileResource());
+  describe('lockBescheidSending', () => {
+    it('should change wizard state', () => {
+      service.lockBescheidSending();
 
-    beforeEach(() => {
-      binaryFileService.getFile.mockReturnValue(of(binaryFileStateResource));
+      expect(service.getWizard()).toBeObservable(singleCold({ ...createInitialWizard(), canBeSend: false }));
     });
+  });
 
-    it('should call bianry file service', () => {
-      service.loadBescheidDocumentFile(document);
+  describe('unlockBescheidSending', () => {
+    it('should change wizard state', () => {
+      service.unlockBescheidSending();
 
-      expect(binaryFileService.getFile).toHaveBeenCalledWith(getUrl(document, DocumentLinkRel.FILE));
+      expect(service.getWizard()).toBeObservable(singleCold({ ...createInitialWizard(), canBeSend: true }));
     });
+  });
 
-    it('should set bescheidDocument file', () => {
-      service.loadBescheidDocumentFile(document);
+  describe('finishAddingBescheidDocument', () => {
+    it('should update state', () => {
+      const bescheidDocument: BescheidDocument = createBescheidDocument();
+      service._bescheidDocument$.next(bescheidDocument);
 
-      expect(service.bescheidDocumentFile$.value).toBe(binaryFileStateResource);
-    });
+      service.finishAddingBescheidDocument();
 
-    it('should set create bescheid document in progress loading false', () => {
-      service.createBescheidDocumentInProgress$.next(createEmptyStateResource(true));
+      expect(service.getBescheidDocument()).toBeObservable(
+        singleCold({
+          ...bescheidDocument,
+          create: createEmptyStateResource(),
+          upload: createEmptyUploadInProgress(),
+        } as BescheidDocument),
+      );
+    });
+  });
 
-      service.loadBescheidDocumentFile(document);
+  describe('clear uploaded files', () => {
+    it('should call binary files service', () => {
+      service._clearUploadedFiles();
 
-      expect(service.createBescheidDocumentInProgress$.value.loading).toBeFalsy();
+      expect(binaryFileService.clearUploadedFiles).toHaveBeenCalledWith(BESCHEID_UPLOADED_ATTACHMENTS);
     });
   });
 
   describe('get bescheid list', () => {
     it('should call bescheid list resource service', () => {
-      service.bescheidListResourceService.getList = jest.fn();
-
       service.getBescheidList();
 
-      expect(service.bescheidListResourceService.getList).toHaveBeenCalled();
+      expect(bescheidListResourceService.getList).toHaveBeenCalled();
     });
 
     it('should return value', () => {
       const bescheidList: BescheidListResource = createBescheidListResource();
       const bescheidListStateResource: StateResource<BescheidListResource> = createStateResource(bescheidList);
-      service.bescheidListResourceService.getList = jest.fn().mockReturnValue(singleCold(bescheidListStateResource));
+      bescheidListResourceService.getList = jest.fn().mockReturnValue(singleCold(bescheidListStateResource));
 
       const command$: Observable<StateResource<BescheidListResource>> = service.getBescheidList();
 
@@ -1158,7 +915,7 @@ describe('BescheidService', () => {
     });
   });
 
-  describe('load bescheid document', () => {
+  describe('get bescheid document by uri', () => {
     const resourceUri: ResourceUri = faker.internet.url();
     const document: DocumentResource = createDocumentResource();
 
@@ -1167,13 +924,13 @@ describe('BescheidService', () => {
     });
 
     it('should call repository', () => {
-      service.loadBescheidDocument(resourceUri);
+      service.getBescheidDocumentByUri(resourceUri);
 
       expect(resourceRepository.getResource).toHaveBeenCalledWith(resourceUri);
     });
 
     it('should return value', () => {
-      const documentStateResource$: Observable<StateResource<DocumentResource>> = service.loadBescheidDocument(resourceUri);
+      const documentStateResource$: Observable<StateResource<DocumentResource>> = service.getBescheidDocumentByUri(resourceUri);
 
       expect(documentStateResource$).toBeObservable(
         cold('(ab|)', { a: createEmptyStateResource(true), b: createStateResource(document) }),
@@ -1181,44 +938,6 @@ describe('BescheidService', () => {
     });
   });
 
-  describe('get resource', () => {
-    const bescheidResource: BescheidResource = createBescheidResource();
-    const bescheidStateResource: StateResource<BescheidResource> = createStateResource(bescheidResource);
-
-    it('should call bescheid resource service select resource', () => {
-      service.bescheidResourceService.selectResource = jest.fn().mockReturnValue(of(bescheidStateResource));
-
-      service.getResource();
-
-      expect(service.bescheidResourceService.selectResource).toHaveBeenCalled();
-    });
-
-    it('should return value', () => {
-      service.bescheidResourceService.selectResource = jest.fn().mockReturnValue(of(bescheidStateResource));
-
-      const bescheidDraft: BescheidResource = service.getResource();
-
-      expect(bescheidDraft).toBe(bescheidResource);
-    });
-  });
-
-  describe('getEmpfaenger', () => {
-    it('should return Empfänger', () => {
-      const vorgangWithEingangResource: VorgangWithEingangResource = createVorgangWithEingangResource();
-      const vorgangWithEingangStateResource: StateResource<VorgangWithEingangResource> =
-        createStateResource(vorgangWithEingangResource);
-      vorgangService.getVorgangWithEingang.mockReturnValue(of(vorgangWithEingangStateResource));
-
-      const empfaenger$: Observable<string> = service.getEmpfaenger();
-
-      expect(empfaenger$).toBeObservable(
-        singleColdCompleted(
-          `${vorgangWithEingangResource.eingang.antragsteller.vorname} ${vorgangWithEingangResource.eingang.antragsteller.nachname}`,
-        ),
-      );
-    });
-  });
-
   describe('get last bescheid', () => {
     const bescheid: BescheidResource = createBescheidResource();
     const bescheide: BescheidResource[] = [bescheid];
@@ -1229,7 +948,7 @@ describe('BescheidService', () => {
     beforeEach(() => {
       service.filterBySentStatus = jest.fn().mockReturnValue(bescheide);
       sortByGermanDateStrSpy = jest.spyOn(DateUtil, 'sortByGermanDateStr').mockReturnValue(bescheide);
-      getItemsSpy = service.bescheidListResourceService.getItems = jest.fn().mockReturnValue(of(bescheide));
+      getItemsSpy = bescheidListResourceService.getItems = jest.fn().mockReturnValue(of(bescheide));
     });
 
     it('should get items', () => {
@@ -1257,47 +976,6 @@ describe('BescheidService', () => {
     });
   });
 
-  describe('exist bescheid', () => {
-    const bescheid: BescheidResource = createBescheidResource();
-    const bescheide: BescheidResource[] = [bescheid];
-    const bescheidListStateResource: StateResource<BescheidListResource> = createStateResource(
-      createBescheidListResource(bescheide),
-    );
-    let getItemsSpy: jest.SpyInstance;
-
-    beforeEach(() => {
-      service.getBescheidList = jest.fn().mockReturnValue(of(bescheidListStateResource));
-      service.filterBySentStatus = jest.fn().mockReturnValue(bescheide);
-      getItemsSpy = service.bescheidListResourceService.getItems = jest.fn().mockReturnValue(of(bescheide));
-    });
-
-    it('should get items', () => {
-      service.existBescheid().subscribe();
-
-      expect(getItemsSpy).toHaveBeenCalled();
-    });
-
-    it('should filter by sent status', () => {
-      service.existBescheid().subscribe();
-
-      expect(service.filterBySentStatus).toHaveBeenCalledWith(bescheide);
-    });
-
-    it('should return true if at least one bescheid exists', () => {
-      const existBescheid$: Observable<boolean> = service.existBescheid();
-
-      expect(existBescheid$).toBeObservable(singleColdCompleted(true));
-    });
-
-    it('should return false if no bescheide exists', () => {
-      service.filterBySentStatus = jest.fn().mockReturnValue([]);
-
-      const existBescheid$: Observable<boolean> = service.existBescheid();
-
-      expect(existBescheid$).toBeObservable(singleColdCompleted(false));
-    });
-  });
-
   describe('filter by sent status', () => {
     it('should keep entry with sent status', () => {
       const bescheidWithSentStatus: BescheidResource = {
@@ -1328,130 +1006,44 @@ describe('BescheidService', () => {
     });
   });
 
-  describe('refresh list', () => {
-    it('should call refresh on list resource service', () => {
-      service.bescheidListResourceService.refresh = jest.fn();
-
-      service.refreshList();
-
-      expect(service.bescheidListResourceService.refresh).toHaveBeenCalled();
-    });
-  });
-
-  describe('uploadAttachment', () => {
-    const bescheidResource: BescheidResource = createBescheidResource([BescheidLinkRel.UPLOAD_ATTACHMENT]);
-    const file: File = createFile();
-    const binaryFileStateResource: StateResource<BinaryFileResource> = createStateResource(createBinaryFileResource());
+  describe('exist bescheid', () => {
+    const bescheid: BescheidResource = createBescheidResource();
+    const bescheide: BescheidResource[] = [bescheid];
+    const bescheidListStateResource: StateResource<BescheidListResource> = createStateResource(
+      createBescheidListResource(bescheide),
+    );
+    let getItemsSpy: jest.SpyInstance;
 
     beforeEach(() => {
-      binaryFileService.uploadFile.mockReturnValue(of(binaryFileStateResource));
-      service.handleAttachmentUpload = jest.fn();
-    });
-
-    it('should emit upload in progress', () => {
-      service.uploadAttachment(bescheidResource, file).subscribe();
-
-      expect(service.getUploadAttachmentInProgress()).toBeObservable(
-        singleCold({ fileName: file.name, loading: true } as UploadFileInProgress),
-      );
-    });
-
-    it('should upload file', (done) => {
-      service.uploadAttachment(bescheidResource, file).subscribe(() => {
-        expect(binaryFileService.uploadFile).toHaveBeenCalledWith(
-          bescheidResource,
-          BescheidLinkRel.UPLOAD_ATTACHMENT,
-          file,
-          false,
-        );
-        done();
-      });
-    });
-
-    it('should handle attachment upload', (done) => {
-      service.uploadAttachment(bescheidResource, file).subscribe(() => {
-        expect(service.handleAttachmentUpload).toHaveBeenCalledWith(binaryFileStateResource);
-        done();
-      });
-    });
-
-    it('should emit uploaded binary file', () => {
-      expect(service.uploadAttachment(bescheidResource, file)).toBeObservable(singleColdCompleted(binaryFileStateResource));
-    });
-  });
-
-  describe('handleAttachmentUpload', () => {
-    describe('on error', () => {
-      const binaryFileStateResource: StateResource<BinaryFileResource> = createErrorStateResource(createApiError());
-
-      it('should emit upload in progress', () => {
-        service.handleAttachmentUpload(binaryFileStateResource);
-
-        expect(service.getUploadAttachmentInProgress()).toBeObservable(
-          singleCold({
-            loading: false,
-            error: binaryFileStateResource.error,
-          } as UploadFileInProgress),
-        );
-      });
-
-      it('should emit binary file', () => {
-        service.handleAttachmentUpload(binaryFileStateResource);
-
-        expect(service.getUploadedAttachment()).toBeObservable(singleCold(binaryFileStateResource));
-      });
+      service.getBescheidList = jest.fn().mockReturnValue(of(bescheidListStateResource));
+      service.filterBySentStatus = jest.fn().mockReturnValue(bescheide);
+      getItemsSpy = bescheidListResourceService.getItems = jest.fn().mockReturnValue(of(bescheide));
     });
 
-    describe('on success', () => {
-      const binaryFileStateResource: StateResource<BinaryFileResource> = createStateResource(createBinaryFileResource());
-
-      it('should emit upload in progress', () => {
-        service.handleAttachmentUpload(binaryFileStateResource);
-
-        expect(service.getUploadAttachmentInProgress()).toBeObservable(
-          singleCold({
-            loading: false,
-          } as UploadFileInProgress),
-        );
-      });
-
-      it('should emit binary file', () => {
-        service.handleAttachmentUpload(binaryFileStateResource);
+    it('should get items', () => {
+      service.existBescheid().subscribe();
 
-        expect(service.getUploadedAttachment()).toBeObservable(singleCold(binaryFileStateResource));
-      });
+      expect(getItemsSpy).toHaveBeenCalled();
     });
-  });
-
-  describe('clear attachment upload', () => {
-    it('should clear stateresource', () => {
-      service.uploadAttachmentInProgress$.next(createStateResource(createUploadFileInProgress()));
 
-      service.clearAttachmentUpload();
+    it('should filter by sent status', () => {
+      service.existBescheid().subscribe();
 
-      expect(service.uploadAttachmentInProgress$.value).toEqual(createEmptyStateResource());
+      expect(service.filterBySentStatus).toHaveBeenCalledWith(bescheide);
     });
-  });
 
-  describe('exit', () => {
-    it('should refresh bescheid list', () => {
-      service.bescheidListResourceService.refresh = jest.fn();
-
-      service.exit();
+    it('should return true if at least one bescheid exists', () => {
+      const existBescheid$: Observable<boolean> = service.existBescheid();
 
-      expect(service.bescheidListResourceService.refresh).toHaveBeenCalled();
+      expect(existBescheid$).toBeObservable(singleColdCompleted(true));
     });
 
-    it('should reload current vorgang', () => {
-      service.exit();
-
-      expect(vorgangService.reloadCurrentVorgang).toHaveBeenCalled();
-    });
+    it('should return false if no bescheide exists', () => {
+      service.filterBySentStatus = jest.fn().mockReturnValue([]);
 
-    it('should reload postfach list', () => {
-      service.exit();
+      const existBescheid$: Observable<boolean> = service.existBescheid();
 
-      expect(postfachService.setPostfachMailOnReload).toHaveBeenCalled();
+      expect(existBescheid$).toBeObservable(singleColdCompleted(false));
     });
   });
 });
diff --git a/alfa-client/libs/bescheid-shared/src/lib/bescheid.service.ts b/alfa-client/libs/bescheid-shared/src/lib/bescheid.service.ts
index f2df99ebc8b9b47adb3244134990a129aedfe731..ec6a90a43ad27dd898eda39b580ddeb4f0d287be 100644
--- a/alfa-client/libs/bescheid-shared/src/lib/bescheid.service.ts
+++ b/alfa-client/libs/bescheid-shared/src/lib/bescheid.service.ts
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2023 Das Land Schleswig-Holstein vertreten durch den
+ * Copyright (C) 2025 Das Land Schleswig-Holstein vertreten durch den
  * Ministerpräsidenten des Landes Schleswig-Holstein
  * Staatskanzlei
  * Abteilung Digitalisierung und zentrales IT-Management der Landesregierung
@@ -21,330 +21,177 @@
  * Die sprachspezifischen Genehmigungen und Beschränkungen
  * unter der Lizenz sind dem Lizenztext zu entnehmen.
  */
-import { BinaryFileListLinkRel, BinaryFileResource, BinaryFileService } from '@alfa-client/binary-file-shared';
-import {
-  CommandOrder,
-  CommandResource,
-  CommandResourceService,
-  CommandService,
-  getEffectedResourceUrl,
-  notHasCommandError,
-  tapOnCommandSuccessfullyDone,
-} from '@alfa-client/command-shared';
-import { PostfachService } from '@alfa-client/postfach-shared';
-import {
-  HttpError,
-  ResourceListService,
-  StateResource,
-  createEmptyStateResource,
-  createStateResource,
-  filterIsLoadedOrHasError,
-  getEmbeddedResources,
-  hasStateResourceError,
-  isLoaded,
-  isNotEmpty,
-  isNotNil,
-  sortByGermanDateStr,
-} from '@alfa-client/tech-shared';
-import {
-  VorgangCommandService,
-  VorgangService,
-  VorgangWithEingangLinkRel,
-  VorgangWithEingangResource,
-} from '@alfa-client/vorgang-shared';
-import { getEmpfaenger } from '@alfa-client/vorgang-shared-ui';
-import { Injectable } from '@angular/core';
-import { ResourceUri, getUrl, hasLink } from '@ngxp/rest';
-import { BehaviorSubject, Observable, Subscription, filter, first, map, startWith, switchMap, take, tap } from 'rxjs';
-import { ListResourceServiceConfig, ResourceServiceConfig } from '../../../tech-shared/src/lib/resource/resource.model';
-import { ResourceRepository } from '../../../tech-shared/src/lib/resource/resource.repository';
-import { ResourceService } from '../../../tech-shared/src/lib/resource/resource.service';
-import { BescheidFacade } from './+state/bescheid.facade';
-import { BescheidLinkRel, BescheidListLinkRel } from './bescheid.linkrel';
 import {
   Bescheid,
+  BESCHEID_UPLOADED_ATTACHMENTS,
+  BescheidDocument,
+  BescheidLinkRel,
   BescheidListResource,
   BescheidResource,
+  BescheidSendBy,
   BescheidStatus,
   BescheidWizardStep,
-  UploadFileInProgress,
-} from './bescheid.model';
-import {
   buildCreateBescheidCommand,
   buildCreateBescheidDocumentCommandProps,
   buildCreateBescheidDocumentFromFileProps,
-  buildDeleteBescheidCommandProps,
   buildSendBescheidCommandProps,
   buildUpdateBescheidCommandProps,
-} from './bescheid.util';
+  createBescheidListResourceService,
+  createBescheidResourceService,
+  createEmptyBescheidDocument,
+  createEmptyUploadInProgress,
+  createInitialWizard,
+  DocumentResource,
+  Wizard,
+} from '@alfa-client/bescheid-shared';
+import { BinaryFileListLinkRel, BinaryFileListResource, BinaryFileResource, BinaryFileService, } from '@alfa-client/binary-file-shared';
+import { CommandOrder, CommandResource, CommandService, getEffectedResourceUrl, notHasCommandError, tapOnCommandSuccessfullyDone, } from '@alfa-client/command-shared';
+import { PostfachService } from '@alfa-client/postfach-shared';
+import { createEmptyStateResource, createStateResource, filterIsLoadedOrHasError, getEmbeddedResources, hasStateResourceError, isLoaded, isNotEmpty, isNotNil, ResourceRepository, sortByGermanDateStr, StateResource, } from '@alfa-client/tech-shared';
+import { VorgangCommandService, VorgangService, VorgangWithEingangResource } from '@alfa-client/vorgang-shared';
+import { inject, Injectable } from '@angular/core';
+import { getUrl, hasLink, LinkRel, Resource, ResourceUri } from '@ngxp/rest';
+import { isNil } from 'lodash-es';
+import { BehaviorSubject, filter, first, map, Observable, startWith, switchMap } from 'rxjs';
+import { BescheidFacade } from './+state/bescheid.facade';
 import { DocumentLinkRel } from './document.linkrel';
-import { DocumentResource } from './document.model';
 
 @Injectable({ providedIn: 'root' })
 export class BescheidService {
-  readonly activeStep$: BehaviorSubject<BescheidWizardStep> = new BehaviorSubject(BescheidWizardStep.AntragBescheiden);
-
-  bescheidResourceService: ResourceService<VorgangWithEingangResource, BescheidResource>;
-  bescheidListResourceService: ResourceListService<VorgangWithEingangResource, BescheidListResource, BescheidResource>;
-
-  readonly bescheidDocumentFile$: BehaviorSubject<StateResource<BinaryFileResource>> = new BehaviorSubject<
-    StateResource<BinaryFileResource>
-  >(createEmptyStateResource());
-
-  readonly bescheidDocumentUri$: BehaviorSubject<ResourceUri> = new BehaviorSubject<ResourceUri>(null);
-
-  readonly bescheidDocument$: BehaviorSubject<StateResource<DocumentResource>> = new BehaviorSubject<
-    StateResource<DocumentResource>
-  >(createEmptyStateResource());
-
-  readonly bescheidList$: BehaviorSubject<StateResource<BescheidListResource>> = new BehaviorSubject(
-    createEmptyStateResource<BescheidListResource>(),
+  private readonly bescheidFacade = inject(BescheidFacade);
+  private readonly commandService = inject(CommandService);
+  private readonly vorgangCommandService = inject(VorgangCommandService);
+  private readonly binaryFileService = inject(BinaryFileService);
+  private readonly resourceRepository = inject(ResourceRepository);
+  private readonly postfachService = inject(PostfachService);
+  private readonly vorgangSvc = inject(VorgangService);
+  // The injection of this service and the one below is problematic.
+  // It must be analysed how to inject BescheidService via providers in BescheidSharedModule.
+  private readonly bescheidResourceService = createBescheidResourceService(
+    this.resourceRepository,
+    this.commandService,
+    this.vorgangSvc,
   );
+  private readonly bescheidListResourceService = createBescheidListResourceService(this.resourceRepository, this.vorgangSvc);
 
-  readonly createBescheidDocumentInProgress$: BehaviorSubject<StateResource<CommandResource>> = new BehaviorSubject<
-    StateResource<CommandResource>
-  >(createEmptyStateResource());
-
-  readonly uploadBescheidDocumentInProgress$: BehaviorSubject<UploadFileInProgress> = new BehaviorSubject<UploadFileInProgress>({
-    loading: false,
-  });
-
-  readonly uploadAttachmentInProgress$: BehaviorSubject<UploadFileInProgress> = new BehaviorSubject({ loading: false });
-
-  readonly uploadedAttachment$: BehaviorSubject<StateResource<BinaryFileResource>> = new BehaviorSubject(
-    createEmptyStateResource(),
-  );
-
-  loadBescheidDocumentSubscription: Subscription;
-
-  constructor(
-    private readonly facade: BescheidFacade,
-    private readonly vorgangService: VorgangService,
-    private readonly commandService: CommandService,
-    private readonly vorgangCommandService: VorgangCommandService,
-    private readonly binaryFileService: BinaryFileService,
-    private readonly repository: ResourceRepository<BescheidResource>,
-    private readonly postfachService: PostfachService,
-  ) {
-    this.bescheidResourceService = new CommandResourceService(
-      this.buildBescheidDraftServiceConfig(),
-      repository,
-      this.commandService,
-    );
-    this.bescheidListResourceService = new ResourceListService<
-      VorgangWithEingangResource,
-      BescheidListResource,
-      BescheidResource
-    >(this.buildBescheidListServiceConfig(), repository);
-  }
-
-  public getActiveStep(): Observable<BescheidWizardStep> {
-    return this.activeStep$.asObservable();
-  }
-
-  public setActiveStep(step: BescheidWizardStep): void {
-    this.activeStep$.next(step);
-  }
-
-  buildBescheidDraftServiceConfig(): ResourceServiceConfig<VorgangWithEingangResource> {
-    return {
-      resource: this.vorgangService.getVorgangWithEingang(),
-      getLinkRel: VorgangWithEingangLinkRel.BESCHEID_DRAFT,
-      delete: { linkRel: BescheidLinkRel.DELETE, order: CommandOrder.DELETE_BESCHEID },
-      edit: { linkRel: BescheidLinkRel.UPDATE, order: CommandOrder.UPDATE_BESCHEID },
-    };
-  }
-
-  buildBescheidListServiceConfig(): ListResourceServiceConfig<VorgangWithEingangResource> {
-    return {
-      baseResource: this.vorgangService.getVorgangWithEingang(),
-      listLinkRel: VorgangWithEingangLinkRel.BESCHEIDE,
-      listResourceListLinkRel: BescheidListLinkRel.BESCHEID_LIST,
-    };
-  }
+  readonly _bescheidDocument$: BehaviorSubject<BescheidDocument> = new BehaviorSubject(createEmptyBescheidDocument());
+  readonly _wizard$: BehaviorSubject<Wizard> = new BehaviorSubject(createInitialWizard());
 
   public init(): void {
-    this.bescheidResourceService = new CommandResourceService(
-      this.buildBescheidDraftServiceConfig(),
-      this.repository,
-      this.commandService,
-    );
-    this.bescheidDocumentFile$.next(createEmptyStateResource());
-    this.bescheidDocumentUri$.next(null);
-    this.uploadBescheidDocumentInProgress$.next({ loading: false });
-    this.clearUploadAttachment();
-    this.uploadAttachmentInProgress$.next({ loading: false });
-    this.activeStep$.next(BescheidWizardStep.AntragBescheiden);
+    this._wizard$.next(createInitialWizard());
+    this._bescheidDocument$.next(createEmptyBescheidDocument());
   }
 
-  public getBescheidDraft(): Observable<StateResource<BescheidResource>> {
-    return this.bescheidResourceService.get();
-  }
-
-  public getBescheidCommand(): Observable<StateResource<CommandResource>> {
-    return this.facade.getBescheidCommand();
-  }
-
-  public createBescheid(
-    vorgangWithEingang: VorgangWithEingangResource,
-    bescheid?: Bescheid,
-  ): Observable<StateResource<CommandResource>> {
-    this.facade.createBescheidDraft(vorgangWithEingang, buildCreateBescheidCommand(bescheid));
-    return this.getBescheidCommand().pipe(
-      tapOnCommandSuccessfullyDone((commandStateResource: StateResource<CommandResource>) =>
-        this.updateBescheidDraft(commandStateResource.resource),
-      ),
-    );
+  public exit(): void {
+    this.postfachService.setPostfachMailOnReload();
+    this._clearUploadedFiles();
   }
 
-  public bescheidErstellungUeberspringen(
+  public skipBescheidCreation(
     vorgangWithEingangResource: VorgangWithEingangResource,
+    bescheidResource: BescheidResource,
   ): Observable<StateResource<CommandResource>> {
-    if (!this.existsBescheidDraft()) {
-      return this.vorgangAbschliesen(vorgangWithEingangResource);
+    if (isNil(bescheidResource)) {
+      return this.vorgangCommandService.abschliessen(vorgangWithEingangResource);
     }
-    return this.getBescheidDraft().pipe(
-      filter(isLoaded),
-      first(),
-      switchMap((bescheidStateResource: StateResource<BescheidResource>) =>
-        this.bescheidLoeschenUndErstellungUeberspringen(vorgangWithEingangResource, bescheidStateResource.resource),
-      ),
-    );
-  }
-
-  public getBescheidDraftIfExists(): Observable<StateResource<BescheidResource>> {
-    return this.vorgangService.getVorgangWithEingang().pipe(
-      filter(
-        (stateResource: StateResource<VorgangWithEingangResource>) =>
-          isLoaded(stateResource) && hasLink(stateResource.resource, VorgangWithEingangLinkRel.BESCHEID_DRAFT),
-      ),
-      switchMap(() => this.getBescheidDraft()),
-      startWith(createEmptyStateResource<BescheidResource>()),
-    );
+    return this.deleteBescheidAndCompleteVorgang(vorgangWithEingangResource);
   }
 
-  bescheidLoeschenUndErstellungUeberspringen(
+  deleteBescheidAndCompleteVorgang(
     vorgangWithEingangResource: VorgangWithEingangResource,
-    bescheidResource: BescheidResource,
   ): Observable<StateResource<CommandResource>> {
-    return this.vorgangAbschliesen(vorgangWithEingangResource).pipe(
-      tapOnCommandSuccessfullyDone(() => this.deleteBescheid(bescheidResource)),
-    );
-  }
-
-  vorgangAbschliesen(vorgangWithEingangResource: VorgangWithEingangResource): Observable<StateResource<CommandResource>> {
-    return this.vorgangCommandService.abschliessen(vorgangWithEingangResource);
-  }
-
-  public updateBescheid(bescheid: Bescheid): Observable<StateResource<CommandResource>> {
-    return this.doUpdateBescheid(this.getResource(), bescheid).pipe(
-      tapOnCommandSuccessfullyDone((commandStateResource: StateResource<CommandResource>) => {
-        this.updateBescheidDraft(commandStateResource.resource);
-        this.clearCreateBescheidDocumentInProgress();
-        this.clearUploadBescheidDocumentInProgress();
-        this.clearUploadAttachment();
-      }),
-    );
-  }
-
-  private clearUploadAttachment() {
-    this.uploadedAttachment$.next(createEmptyStateResource());
-  }
-
-  public sendBescheidToAntragsteller(bescheidResource: BescheidResource): Observable<StateResource<CommandResource>> {
-    return this.sendBescheid(bescheidResource, BescheidLinkRel.BESCHEIDEN_UND_SENDEN);
-  }
-
-  public sendBescheidManually(bescheidResource: BescheidResource): Observable<StateResource<CommandResource>> {
-    return this.sendBescheid(bescheidResource, BescheidLinkRel.BESCHEIDEN);
-  }
-
-  sendBescheid(bescheidResource: BescheidResource, linkRel: string): Observable<StateResource<CommandResource>> {
-    return this.bescheidResourceService.get().pipe(
-      filterIsLoadedOrHasError(),
-      switchMap((stateResource: StateResource<BescheidResource>) =>
-        this.commandService.createCommandByProps(buildSendBescheidCommandProps(stateResource.resource, linkRel)),
-      ),
-    );
-  }
-
-  doUpdateBescheid(bescheidResource: BescheidResource, bescheid: Bescheid): Observable<StateResource<CommandResource>> {
-    return this.commandService.createCommandByProps(buildUpdateBescheidCommandProps(bescheidResource, bescheid));
+    return this.vorgangCommandService
+      .abschliessen(vorgangWithEingangResource)
+      .pipe(tapOnCommandSuccessfullyDone(() => this.deleteBescheid()));
   }
 
-  private updateBescheidDraft(command: CommandResource): void {
-    this.bescheidResourceService.loadByResourceUri(getEffectedResourceUrl(command));
+  public deleteBescheid(): Observable<StateResource<CommandResource>> {
+    return this.bescheidResourceService.delete();
   }
 
-  public getAttachments(): Observable<BinaryFileResource[]> {
-    return this.getBescheidDraft().pipe(
-      filter(isLoaded),
-      map((stateResource: StateResource<BescheidResource>) => stateResource.resource),
-      filter((resource: BescheidResource) => hasLink(resource, BescheidLinkRel.ATTACHMENTS)),
-      switchMap((resource: BescheidResource) => this.binaryFileService.getFiles(resource, BescheidLinkRel.ATTACHMENTS)),
-      filter(isLoaded),
-      map((stateResource) => getEmbeddedResources<BinaryFileResource>(stateResource, BinaryFileListLinkRel.FILE_LIST)),
-    );
+  public loadFiles(bescheidResource: BescheidResource): void {
+    this.loadBescheidDocument(bescheidResource);
+    this.loadAttachments(bescheidResource);
   }
 
-  public getDocumentUri(): Observable<ResourceUri> {
-    return this.bescheidDocumentUri$.asObservable();
+  public createBescheidDocument(bescheidResource: BescheidResource): void {
+    this._bescheidDocument$.next({ ...createEmptyBescheidDocument(), create: createEmptyStateResource(true) });
+    this.doCreateBescheidDocument(bescheidResource)
+      .pipe(filterIsLoadedOrHasError(), first())
+      .subscribe((commandStateResource: StateResource<CommandResource>) =>
+        this.handleCreateBescheidDocumentResponse(commandStateResource),
+      );
   }
 
-  public setDocumentUri(uri: ResourceUri): void {
-    this.bescheidDocumentUri$.next(uri);
+  doCreateBescheidDocument(bescheidResource: BescheidResource): Observable<StateResource<CommandResource>> {
+    return this.commandService.createCommandByProps(buildCreateBescheidDocumentCommandProps(bescheidResource));
   }
 
-  public existBescheidDocumentFile(): Observable<boolean> {
-    return this.bescheidDocumentFile$.asObservable().pipe(map(isLoaded));
+  handleCreateBescheidDocumentResponse(commandStateResource: StateResource<CommandResource>): void {
+    if (notHasCommandError(commandStateResource.resource)) {
+      const documentUri: ResourceUri = getEffectedResourceUrl(commandStateResource.resource);
+      this._bescheidDocument$.next({ ...this._bescheidDocument$.value, documentUri });
+      this.loadBescheidDocumentByUri(documentUri);
+    } else {
+      this._bescheidDocument$.next({ ...this._bescheidDocument$.value, create: commandStateResource });
+    }
   }
 
-  public getBescheidDocumentFile(): Observable<StateResource<BinaryFileResource>> {
-    return this.bescheidDocumentFile$.asObservable();
+  emitBescheidDocumentError(stateResource: StateResource<Resource>): void {
+    const value: BescheidDocument = this._bescheidDocument$.value;
+    this._bescheidDocument$.next({
+      ...value,
+      upload: { ...value.upload, loading: false, error: stateResource.error },
+    });
   }
 
-  public getBescheidDocument(): Observable<StateResource<DocumentResource>> {
-    return this.bescheidDocument$.asObservable();
+  loadBescheidDocument(bescheidResource: BescheidResource): void {
+    if (hasLink(bescheidResource, BescheidLinkRel.BESCHEID_DOCUMENT)) {
+      this.loadBescheidDocumentByUri(getUrl(bescheidResource, BescheidLinkRel.BESCHEID_DOCUMENT));
+    }
   }
 
   public loadBescheidDocumentByUri(resourceUri: ResourceUri): void {
-    this.setBescheidDocumentFileLoading();
-    this.loadBescheidDocumentSubscription = this.repository
+    this.resourceRepository
       .getResource(resourceUri)
-      .pipe()
-      .subscribe((document: DocumentResource) => {
-        this.bescheidDocument$.next(createStateResource(document));
-        this.loadBescheidDocumentFile(document);
-        this.loadBescheidDocumentSubscription.unsubscribe();
-      });
+      .pipe(first())
+      .subscribe((document: DocumentResource) => this.loadBescheidDocumentFile(document));
   }
 
-  setBescheidDocumentFileLoading(): void {
-    this.bescheidDocumentFile$.next({ ...this.bescheidDocumentFile$.value, loading: true });
-  }
-
-  public uploadBescheidDocument(bescheid: BescheidResource, file: File): Observable<UploadFileInProgress> {
-    this.clearCreateBescheidDocumentInProgress();
-    this.initUploadBescheidDocumentInProgress(file.name);
-    this.doUploadBescheidDocument(bescheid, file);
-    return this.getUploadBescheidDocumentInProgress();
-  }
-
-  private clearCreateBescheidDocumentInProgress(): void {
-    this.createBescheidDocumentInProgress$.next(createEmptyStateResource());
-  }
-
-  private initUploadBescheidDocumentInProgress(fileName: string): void {
-    this.uploadBescheidDocumentInProgress$.next({ fileName, loading: true });
+  loadBescheidDocumentFile(document: DocumentResource): void {
+    this.binaryFileService
+      .getFile(getUrl(document, DocumentLinkRel.FILE))
+      .pipe(filterIsLoadedOrHasError(), first())
+      .subscribe((binaryFile: StateResource<BinaryFileResource>) => {
+        this._bescheidDocument$.next({
+          ...this._bescheidDocument$.value,
+          upload: createEmptyUploadInProgress(),
+          create: createEmptyStateResource(),
+          resource: binaryFile.resource,
+          documentUri: getUrl(document, LinkRel.Self),
+        });
+      });
   }
 
-  public getUploadBescheidDocumentInProgress(): Observable<UploadFileInProgress> {
-    return this.uploadBescheidDocumentInProgress$.asObservable();
+  loadAttachments(bescheidResource: BescheidResource): void {
+    if (hasLink(bescheidResource, BescheidLinkRel.ATTACHMENTS)) {
+      this.binaryFileService
+        .getFiles(bescheidResource, BescheidLinkRel.ATTACHMENTS)
+        .pipe(
+          filterIsLoadedOrHasError(),
+          first(),
+          map((stateResource: StateResource<BinaryFileListResource>) =>
+            getEmbeddedResources<BinaryFileResource>(stateResource, BinaryFileListLinkRel.FILE_LIST),
+          ),
+        )
+        .subscribe((files: BinaryFileResource[]) => this.binaryFileService.addFiles(BESCHEID_UPLOADED_ATTACHMENTS, files));
+    }
   }
 
-  doUploadBescheidDocument(bescheid: BescheidResource, file: File): void {
+  public uploadBescheidDocument(document: File, bescheid: BescheidResource): void {
+    this._bescheidDocument$.next({ ...this._bescheidDocument$.value, upload: { fileName: document.name, loading: true } });
     this.binaryFileService
-      .uploadFile(bescheid, BescheidLinkRel.UPLOAD_BESCHEID_FILE, file, false)
+      .uploadFile(bescheid, BescheidLinkRel.UPLOAD_BESCHEID_FILE, document, false)
       .pipe(filterIsLoadedOrHasError(), first())
       .subscribe((binaryFileStateResource: StateResource<BinaryFileResource>) =>
         this.handleUploadBescheidDocumentResponse(bescheid, binaryFileStateResource),
@@ -356,7 +203,7 @@ export class BescheidService {
     binaryFileStateResource: StateResource<BinaryFileResource>,
   ): void {
     if (hasStateResourceError(binaryFileStateResource)) {
-      this.setUploadBescheidDocumentInProgressError(binaryFileStateResource.error);
+      this.emitBescheidDocumentError(binaryFileStateResource);
     } else {
       this.createBescheidDocumentFromFile(bescheid, binaryFileStateResource.resource);
     }
@@ -376,203 +223,167 @@ export class BescheidService {
     binaryFile: BinaryFileResource,
   ): void {
     if (hasStateResourceError(commandStateResource)) {
-      this.setUploadBescheidDocumentInProgressError(commandStateResource.error);
+      this.emitBescheidDocumentError(commandStateResource);
     } else {
-      this.bescheidDocument$.next(createEmptyStateResource());
-      this.bescheidDocumentFile$.next(createStateResource(binaryFile));
-      this.bescheidDocumentUri$.next(getEffectedResourceUrl(commandStateResource.resource));
-      this.clearUploadBescheidDocumentInProgress();
+      this._bescheidDocument$.next({
+        ...this._bescheidDocument$.value,
+        documentUri: getEffectedResourceUrl(commandStateResource.resource),
+        upload: createEmptyUploadInProgress(),
+        resource: binaryFile,
+      });
     }
   }
 
-  private setUploadBescheidDocumentInProgressError(error: HttpError): void {
-    this.uploadBescheidDocumentInProgress$.next({ loading: false, error });
-  }
-
-  public deleteBescheidDocument(): void {
-    this.bescheidDocumentUri$.next(null);
-    this.bescheidDocumentFile$.next(createEmptyStateResource());
-    this.bescheidDocument$.next(createEmptyStateResource());
-  }
-
-  public createBescheidDocument(): Observable<StateResource<CommandResource>> {
-    this.clearUploadBescheidDocumentInProgress();
-    this.setCreateBescheidDocumentInProgress();
-    this.doCreateBescheidDocument()
-      .pipe(filterIsLoadedOrHasError(), first())
-      .subscribe((commandStateResource: StateResource<CommandResource>) =>
-        this.handleCreateBescheidDocumentResponse(commandStateResource),
+  public createBescheid(
+    vorgangWithEingang: VorgangWithEingangResource,
+    bescheid?: Bescheid,
+  ): Observable<StateResource<CommandResource>> {
+    this.bescheidFacade.createBescheidDraft(vorgangWithEingang, buildCreateBescheidCommand(bescheid));
+    return this.bescheidFacade
+      .getBescheidCommand()
+      .pipe(
+        tapOnCommandSuccessfullyDone((commandStateResource: StateResource<CommandResource>) =>
+          this.updateBescheidDraft(commandStateResource.resource),
+        ),
       );
-    return this.getCreateBescheidDocumentInProgress();
   }
 
-  private clearUploadBescheidDocumentInProgress(): void {
-    this.uploadBescheidDocumentInProgress$.next({ loading: false });
+  updateBescheidDraft(command: CommandResource): void {
+    this.bescheidResourceService.loadByResourceUri(getEffectedResourceUrl(command));
+    if (command.order === CommandOrder.CREATE_BESCHEID) {
+      this._wizard$.next({ ...this._wizard$.value, bescheidCreated: true });
+    }
   }
 
-  public getCreateBescheidDocumentInProgress(): Observable<StateResource<CommandResource>> {
-    return this.createBescheidDocumentInProgress$.asObservable();
+  public updateBescheid(
+    bescheidResource: BescheidResource,
+    updatedBescheid: Bescheid,
+  ): Observable<StateResource<CommandResource>> {
+    return this.doUpdateBescheid(bescheidResource, updatedBescheid).pipe(
+      tapOnCommandSuccessfullyDone((commandStateResource: StateResource<CommandResource>) => {
+        this.updateBescheidDraft(commandStateResource.resource);
+      }),
+    );
   }
 
-  private setCreateBescheidDocumentInProgress(): void {
-    this.createBescheidDocumentInProgress$.next(createEmptyStateResource(true));
+  doUpdateBescheid(bescheidResource: BescheidResource, bescheid: Bescheid): Observable<StateResource<CommandResource>> {
+    return this.commandService.createCommandByProps(buildUpdateBescheidCommandProps(bescheidResource, bescheid));
   }
 
-  doCreateBescheidDocument(): Observable<StateResource<CommandResource>> {
-    return this.commandService.createCommandByProps(buildCreateBescheidDocumentCommandProps(this.getResource()));
+  public sendBescheidManually(): Observable<StateResource<CommandResource>> {
+    return this.sendBescheid(BescheidLinkRel.BESCHEIDEN);
   }
 
-  private handleCreateBescheidDocumentResponse(commandStateResource: StateResource<CommandResource>): void {
-    this.createBescheidDocumentInProgress$.next(commandStateResource);
-    if (notHasCommandError(commandStateResource.resource)) {
-      const documentUri: ResourceUri = getEffectedResourceUrl(commandStateResource.resource);
-      this.bescheidDocumentUri$.next(documentUri);
-      this.loadBescheidDocumentByUri(documentUri);
-    }
+  public sendBescheidMessage(): Observable<StateResource<CommandResource>> {
+    return this.sendBescheid(BescheidLinkRel.BESCHEIDEN_UND_SENDEN);
   }
 
-  loadBescheidDocumentFile(document: DocumentResource): void {
-    this.binaryFileService
-      .getFile(getUrl(document, DocumentLinkRel.FILE))
-      .pipe(filterIsLoadedOrHasError(), first())
-      .subscribe((binaryFile) => {
-        this.bescheidDocumentFile$.next(binaryFile);
-        this.createBescheidDocumentInProgress$.next(createEmptyStateResource());
-      });
+  sendBescheid(linkRel: BescheidLinkRel): Observable<StateResource<CommandResource>> {
+    return this.getBescheidDraft().pipe(
+      filter(isLoaded),
+      map((stateResource: StateResource<BescheidResource>) => stateResource.resource),
+      switchMap((bescheidResource: BescheidResource) =>
+        this.commandService.createCommandByProps(buildSendBescheidCommandProps(bescheidResource, linkRel)),
+      ),
+    );
   }
 
-  public getBescheidDocumentCommand(): Observable<StateResource<CommandResource>> {
-    return this.commandService.getCommandByOrder(CommandOrder.CREATE_BESCHEID_DOCUMENT);
+  public getBescheidDraft(): Observable<StateResource<BescheidResource>> {
+    return this.bescheidResourceService.get();
   }
 
-  public existsBescheidDraft(): boolean {
-    let exists: boolean;
-    this.bescheidResourceService
-      .existResource()
-      .pipe(take(1))
-      .subscribe((existsDraft: boolean) => (exists = existsDraft));
-    return exists;
+  public getBescheidDocument(): Observable<BescheidDocument> {
+    return this._bescheidDocument$.asObservable();
   }
 
-  public bescheidVerwerfen(): Observable<StateResource<CommandResource>> {
-    return this.deleteBescheid(this.getResource()).pipe(
-      tapOnCommandSuccessfullyDone(() => {
-        this.deleteBescheidDocument();
-        this.vorgangService.reloadCurrentVorgang();
-      }),
-    );
+  public deleteBescheidDocument(): void {
+    this._bescheidDocument$.next(createEmptyBescheidDocument());
   }
 
-  deleteBescheid(bescheid: BescheidResource): Observable<StateResource<CommandResource>> {
-    return this.commandService.createCommandByProps(buildDeleteBescheidCommandProps(bescheid));
+  public getActiveStep(): Observable<BescheidWizardStep> {
+    return this._wizard$.asObservable().pipe(map((wizard: Wizard) => wizard.activeStep));
   }
 
-  /**
-   * @returns @deprecated Don't use this function, instead pass data to function if necessarry.
-   */
-  getResource(): BescheidResource {
-    let resource: StateResource<BescheidResource> = undefined;
-    this.bescheidResourceService
-      .selectResource()
-      .pipe(take(1))
-      .subscribe((stateResource: StateResource<BescheidResource>) => (resource = stateResource));
-
-    return resource.resource;
+  public setActiveStep(step: BescheidWizardStep): void {
+    this._clearUploadedFiles();
+    this._wizard$.next({ ...this._wizard$.value, activeStep: step });
   }
 
-  public reloadCurrentVorgang(): void {
-    this.vorgangService.reloadCurrentVorgang();
+  public getBescheidCreated(): Observable<boolean> {
+    return this._wizard$.asObservable().pipe(map((wizard: Wizard) => wizard.bescheidCreated));
   }
 
-  public loadBescheidDocument(resourceUri: ResourceUri): Observable<StateResource<DocumentResource>> {
-    return this.repository.getResource<DocumentResource>(resourceUri).pipe(
-      map((documentResource: DocumentResource) => createStateResource(documentResource)),
-      startWith(createEmptyStateResource<DocumentResource>(true)),
-    );
+  public selectBescheidResource(): Observable<StateResource<BescheidResource>> {
+    return this.bescheidResourceService.selectResource();
   }
 
-  public getEmpfaenger(): Observable<string> {
-    return this.vorgangService.getVorgangWithEingang().pipe(
-      filter(isLoaded),
-      map((stateResource) => stateResource.resource),
-      map(getEmpfaenger),
-    );
+  public getWizard(): Observable<Wizard> {
+    return this._wizard$.asObservable();
   }
 
-  public getLastBescheid(): Observable<BescheidResource> {
-    return this.bescheidListResourceService.getItems().pipe(
-      map((bescheide: BescheidResource[]) => this.filterBySentStatus(bescheide)),
-      map((bescheide: BescheidResource[]) => this.sortByBeschiedenAm(bescheide)),
-      map((bescheide: BescheidResource[]) => bescheide[0]),
-    );
+  public setSendBy(sendBy: BescheidSendBy): void {
+    this._wizard$.next({ ...this._wizard$.value, sendBy: sendBy });
   }
 
-  private sortByBeschiedenAm(bescheide: BescheidResource[]): BescheidResource[] {
-    return sortByGermanDateStr<BescheidResource>(bescheide, (bescheid: BescheidResource) => bescheid.beschiedenAm);
+  public setNachrichtEmpfaenger(empfaenger: string): void {
+    this._wizard$.next({ ...this._wizard$.value, empfaenger: empfaenger });
   }
 
-  public existBescheid(): Observable<boolean> {
-    return this.bescheidListResourceService.getItems().pipe(
-      map((bescheide: BescheidResource[]) => this.filterBySentStatus(bescheide)),
-      map((bescheide: BescheidResource[]) => isNotEmpty(bescheide)),
-    );
+  public lockBescheidSending(): void {
+    this._wizard$.next({ ...this._wizard$.value, canBeSend: false });
   }
 
-  public getBescheidList(): Observable<StateResource<BescheidListResource>> {
-    return this.bescheidListResourceService.getList();
+  public unlockBescheidSending(): void {
+    this._wizard$.next({ ...this._wizard$.value, canBeSend: true });
   }
 
-  filterBySentStatus(bescheide: BescheidResource[]): BescheidResource[] {
-    return isNotNil(bescheide) ? bescheide.filter(this.hasSentStatus) : [];
+  public finishAddingBescheidDocument(): void {
+    this._bescheidDocument$.next({
+      ...this._bescheidDocument$.value,
+      upload: createEmptyUploadInProgress(),
+      create: createEmptyStateResource(),
+    });
   }
 
-  private hasSentStatus(bescheid: BescheidResource): boolean {
-    return bescheid.status === BescheidStatus.SENT;
+  _clearUploadedFiles(): void {
+    this.binaryFileService.clearUploadedFiles(BESCHEID_UPLOADED_ATTACHMENTS);
   }
 
-  public refreshList(): void {
-    this.bescheidListResourceService.refresh();
+  public getBescheidList(): Observable<StateResource<BescheidListResource>> {
+    return this.bescheidListResourceService.getList();
   }
 
-  public uploadAttachment(bescheidResource: BescheidResource, file: File): Observable<StateResource<BinaryFileResource>> {
-    this.uploadAttachmentInProgress$.next({ fileName: file.name, loading: true });
-    return this.binaryFileService
-      .uploadFile(bescheidResource, BescheidLinkRel.UPLOAD_ATTACHMENT, file, false)
-      .pipe(
-        tap((binaryFileStateResource: StateResource<BinaryFileResource>) => this.handleAttachmentUpload(binaryFileStateResource)),
-      );
+  public getBescheidDocumentByUri(resourceUri: ResourceUri): Observable<StateResource<DocumentResource>> {
+    return this.resourceRepository.getResource<DocumentResource>(resourceUri).pipe(
+      map((documentResource: DocumentResource) => createStateResource(documentResource)),
+      startWith(createEmptyStateResource<DocumentResource>(true)),
+    );
   }
 
-  handleAttachmentUpload(binaryFileStateResource: StateResource<BinaryFileResource>) {
-    if (hasStateResourceError(binaryFileStateResource)) {
-      this.uploadAttachmentInProgress$.next({
-        loading: false,
-        error: binaryFileStateResource.error,
-      });
-    } else {
-      this.uploadAttachmentInProgress$.next({
-        ...this.uploadAttachmentInProgress$.value,
-        loading: binaryFileStateResource.loading,
-      });
-    }
-    this.uploadedAttachment$.next(binaryFileStateResource);
+  public getLastBescheid(): Observable<BescheidResource> {
+    return this.bescheidListResourceService.getItems().pipe(
+      map((bescheide: BescheidResource[]) => this.filterBySentStatus(bescheide)),
+      map((bescheide: BescheidResource[]) => this.sortByBeschiedenAm(bescheide)),
+      map((bescheide: BescheidResource[]) => bescheide[0]),
+    );
   }
 
-  public getUploadAttachmentInProgress(): Observable<UploadFileInProgress> {
-    return this.uploadAttachmentInProgress$.asObservable();
+  filterBySentStatus(bescheide: BescheidResource[]): BescheidResource[] {
+    return isNotNil(bescheide) ? bescheide.filter(this.hasSentStatus) : [];
   }
 
-  public getUploadedAttachment(): Observable<StateResource<BinaryFileResource>> {
-    return this.uploadedAttachment$.asObservable();
+  private hasSentStatus(bescheid: BescheidResource): boolean {
+    return bescheid.status === BescheidStatus.SENT;
   }
 
-  public clearAttachmentUpload(): void {
-    this.uploadAttachmentInProgress$.next(createEmptyStateResource());
+  private sortByBeschiedenAm(bescheide: BescheidResource[]): BescheidResource[] {
+    return sortByGermanDateStr<BescheidResource>(bescheide, (bescheid: BescheidResource) => bescheid.beschiedenAm);
   }
 
-  public exit(): void {
-    this.bescheidListResourceService.refresh();
-    this.vorgangService.reloadCurrentVorgang();
-    this.postfachService.setPostfachMailOnReload();
+  public existBescheid(): Observable<boolean> {
+    return this.bescheidListResourceService.getItems().pipe(
+      map((bescheide: BescheidResource[]) => this.filterBySentStatus(bescheide)),
+      map((bescheide: BescheidResource[]) => isNotEmpty(bescheide)),
+    );
   }
 }
diff --git a/alfa-client/libs/bescheid-shared/src/lib/bescheid2.service.spec.ts b/alfa-client/libs/bescheid-shared/src/lib/bescheid2.service.spec.ts
deleted file mode 100644
index 9fbf45a5ca814d6ed15691e08259f1a664f836e0..0000000000000000000000000000000000000000
--- a/alfa-client/libs/bescheid-shared/src/lib/bescheid2.service.spec.ts
+++ /dev/null
@@ -1,888 +0,0 @@
-/*
- * Copyright (C) 2023 Das Land Schleswig-Holstein vertreten durch den
- * Ministerpräsidenten des Landes Schleswig-Holstein
- * Staatskanzlei
- * Abteilung Digitalisierung und zentrales IT-Management der Landesregierung
- *
- * Lizenziert unter der EUPL, Version 1.2 oder - sobald
- * diese von der Europäischen Kommission genehmigt wurden -
- * Folgeversionen der EUPL ("Lizenz");
- * Sie dürfen dieses Werk ausschließlich gemäß
- * dieser Lizenz nutzen.
- * Eine Kopie der Lizenz finden Sie hier:
- *
- * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
- *
- * Sofern nicht durch anwendbare Rechtsvorschriften
- * gefordert oder in schriftlicher Form vereinbart, wird
- * die unter der Lizenz verbreitete Software "so wie sie
- * ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN -
- * ausdrücklich oder stillschweigend - verbreitet.
- * Die sprachspezifischen Genehmigungen und Beschränkungen
- * unter der Lizenz sind dem Lizenztext zu entnehmen.
- */
-import { BinaryFileListLinkRel, BinaryFileListResource, BinaryFileResource, BinaryFileService, } from '@alfa-client/binary-file-shared';
-import { CommandOrder, CommandResource, CommandResourceService, CommandService, CreateCommandProps, getEffectedResourceUrl, } from '@alfa-client/command-shared';
-import { PostfachService } from '@alfa-client/postfach-shared';
-import { createEmptyStateResource, createErrorStateResource, createStateResource, EMPTY_STRING, getEmbeddedResources, StateResource, } from '@alfa-client/tech-shared';
-import { Mock, mock } from '@alfa-client/test-utils';
-import { VorgangCommandService, VorgangService, VorgangWithEingangResource } from '@alfa-client/vorgang-shared';
-import { TestBed } from '@angular/core/testing';
-import { faker } from '@faker-js/faker';
-import { getUrl, LinkRel, ResourceUri } from '@ngxp/rest';
-import { CommandLinkRel } from 'libs/command-shared/src/lib/command.linkrel';
-import { createProblemDetail } from 'libs/tech-shared/test/error';
-import { createVorgangWithEingangResource } from 'libs/vorgang-shared/test/vorgang';
-import { EMPTY, Observable, of } from 'rxjs';
-import { createBinaryFileListResource, createBinaryFileResource } from '../../../binary-file-shared/test/binary-file';
-import { createCommandErrorStateResource, createCommandResource, createCommandStateResource, createCreateCommandProps, createSuccessfullyDoneCommandStateResource, } from '../../../command-shared/test/command';
-import { ResourceRepository } from '../../../tech-shared/src/lib/resource/resource.repository';
-import { createFile } from '../../../tech-shared/test/file';
-import { singleCold, singleColdCompleted } from '../../../tech-shared/test/marbles';
-import { createBescheid, createBescheidDocument, createBescheidResource } from '../test/bescheid';
-import { createDocumentResource } from '../test/document';
-import { BescheidFacade } from './+state/bescheid.facade';
-import { BescheidResourceService } from './bescheid-resource-service';
-import { BescheidLinkRel } from './bescheid.linkrel';
-import { Bescheid, BESCHEID_UPLOADED_ATTACHMENTS, BescheidDocument, BescheidResource, BescheidWizardStep, createEmptyBescheidDocument, createEmptyUploadInProgress, createInitialWizard, } from './bescheid.model';
-import { BescheidService2 } from './bescheid2.service';
-import { DocumentLinkRel } from './document.linkrel';
-import { DocumentResource } from './document.model';
-
-import { expect } from '@jest/globals';
-import * as BescheidUtil from './bescheid.util';
-
-describe('BescheidService', () => {
-  let service: BescheidService2;
-
-  let facade: Mock<BescheidFacade>;
-  let vorgangService: Mock<VorgangService>;
-  let resourceRepository: Mock<ResourceRepository>;
-  let commandService: Mock<CommandService>;
-  let vorgangCommandService: Mock<VorgangCommandService>;
-  let binaryFileService: Mock<BinaryFileService>;
-  let postfachService: Mock<PostfachService>;
-  let bescheidResourceService: Mock<BescheidResourceService>;
-
-  const vorgangWithEingangResource: VorgangWithEingangResource = createVorgangWithEingangResource();
-  const vorgangWithEingangStateResource: StateResource<VorgangWithEingangResource> =
-    createStateResource(vorgangWithEingangResource);
-  const bescheidResource: BescheidResource = createBescheidResource();
-  const commandStateResource: StateResource<CommandResource> = createCommandStateResource();
-
-  beforeEach(() => {
-    facade = mock(BescheidFacade);
-    resourceRepository = mock(ResourceRepository);
-    commandService = mock(CommandService);
-    vorgangCommandService = mock(VorgangCommandService);
-    vorgangService = mock(VorgangService);
-    vorgangService.getVorgangWithEingang.mockReturnValue(of(vorgangWithEingangStateResource));
-    binaryFileService = mock(BinaryFileService);
-    postfachService = mock(PostfachService);
-    bescheidResourceService = mock(CommandResourceService);
-
-    TestBed.configureTestingModule({
-      providers: [
-        { provide: BescheidFacade, useValue: facade },
-        { provide: VorgangService, useValue: vorgangService },
-        { provide: ResourceRepository, useValue: resourceRepository },
-        { provide: CommandService, useValue: commandService },
-        { provide: VorgangCommandService, useValue: vorgangCommandService },
-        { provide: BinaryFileService, useValue: binaryFileService },
-        {
-          provide: PostfachService,
-          useValue: postfachService,
-        },
-        { provide: BescheidResourceService, useValue: bescheidResourceService },
-        BescheidService2,
-      ],
-    });
-
-    service = TestBed.inject(BescheidService2);
-  });
-
-  it('should be created', () => {
-    expect(service).toBeTruthy();
-  });
-
-  describe('init', () => {
-    it('should init state', () => {
-      service.setActiveStep(2);
-
-      service.init();
-
-      expect(service.getWizard()).toBeObservable(singleCold(createInitialWizard()));
-      expect(service.getActiveStep()).toBeObservable(singleCold(BescheidWizardStep.AntragBescheiden));
-      expect(service.getBescheidCreated()).toBeObservable(singleCold(false));
-      expect(service.getBescheidDocument()).toBeObservable(singleCold(createEmptyBescheidDocument()));
-    });
-  });
-
-  describe('exit', () => {
-    beforeEach(() => {
-      service._clearUploadedFiles = jest.fn();
-    });
-
-    it('should reload postfach list', () => {
-      service.exit();
-
-      expect(postfachService.setPostfachMailOnReload).toHaveBeenCalled();
-    });
-
-    it('should clear uploaded files', () => {
-      service.exit();
-
-      expect(service._clearUploadedFiles).toHaveBeenCalled();
-    });
-  });
-
-  describe('skipBescheidCreation', () => {
-    beforeEach(() => {
-      service.deleteBescheidAndCompleteVorgang = jest.fn().mockReturnValue(of(commandStateResource));
-    });
-
-    it('should complete vorgang', () => {
-      service.skipBescheidCreation(vorgangWithEingangResource, null);
-
-      expect(vorgangCommandService.abschliessen).toHaveBeenCalledWith(vorgangWithEingangResource);
-    });
-
-    it('should NOT complete vorgang', () => {
-      service.skipBescheidCreation(vorgangWithEingangResource, bescheidResource);
-
-      expect(vorgangCommandService.abschliessen).not.toHaveBeenCalled();
-    });
-
-    it('should delete bescheid and complete vorgang', () => {
-      service.skipBescheidCreation(vorgangWithEingangResource, bescheidResource).subscribe();
-
-      expect(service.deleteBescheidAndCompleteVorgang).toHaveBeenCalledWith(vorgangWithEingangResource);
-    });
-
-    it('should return command', () => {
-      const command$: Observable<StateResource<CommandResource>> = service.skipBescheidCreation(
-        vorgangWithEingangResource,
-        bescheidResource,
-      );
-
-      expect(command$).toBeObservable(singleColdCompleted(commandStateResource));
-    });
-  });
-
-  describe('deleteBescheidAndCompleteVorgang', () => {
-    beforeEach(() => {
-      service.deleteBescheid = jest.fn().mockReturnValue(of(createCommandStateResource));
-      vorgangCommandService.abschliessen.mockReturnValue(EMPTY);
-    });
-
-    it('should complete vorgang', () => {
-      service.deleteBescheidAndCompleteVorgang(vorgangWithEingangResource).subscribe();
-
-      expect(vorgangCommandService.abschliessen).toHaveBeenCalledWith(vorgangWithEingangResource);
-    });
-
-    it('should delete bescheid', () => {
-      vorgangCommandService.abschliessen.mockReturnValue(of(createSuccessfullyDoneCommandStateResource()));
-
-      service.deleteBescheidAndCompleteVorgang(vorgangWithEingangResource).subscribe();
-
-      expect(service.deleteBescheid).toHaveBeenCalled();
-    });
-
-    it('should NOT delete bescheid on loading', () => {
-      vorgangCommandService.abschliessen.mockReturnValue(of(createEmptyStateResource(true)));
-
-      service.deleteBescheidAndCompleteVorgang(vorgangWithEingangResource).subscribe();
-
-      expect(service.deleteBescheid).not.toHaveBeenCalled();
-    });
-
-    it('should NOT delete bescheid on error', () => {
-      vorgangCommandService.abschliessen.mockReturnValue(of(createErrorStateResource(createProblemDetail())));
-
-      service.deleteBescheidAndCompleteVorgang(vorgangWithEingangResource).subscribe();
-
-      expect(service.deleteBescheid).not.toHaveBeenCalled();
-    });
-
-    it('should return vorgang abschliessen command', () => {
-      const command: StateResource<CommandResource> = createSuccessfullyDoneCommandStateResource();
-      vorgangCommandService.abschliessen.mockReturnValue(of(command));
-
-      const command$: Observable<StateResource<CommandResource>> =
-        service.deleteBescheidAndCompleteVorgang(vorgangWithEingangResource);
-
-      expect(command$).toBeObservable(singleColdCompleted(command));
-    });
-  });
-
-  describe('delete bescheid', () => {
-    it('should create command', () => {
-      service.deleteBescheid();
-
-      expect(bescheidResourceService.delete).toHaveBeenCalled();
-    });
-
-    it('should return command', () => {
-      const commandStateResource: StateResource<CommandResource> = createSuccessfullyDoneCommandStateResource();
-      bescheidResourceService.delete.mockReturnValue(of(commandStateResource));
-
-      const createdCommand$: Observable<StateResource<CommandResource>> = service.deleteBescheid();
-
-      expect(createdCommand$).toBeObservable(singleColdCompleted(commandStateResource));
-    });
-  });
-
-  describe('loadFiles', () => {
-    beforeEach(() => {
-      service.loadBescheidDocument = jest.fn();
-      service.loadAttachments = jest.fn();
-    });
-
-    it('should bescheid document', () => {
-      service.loadFiles(bescheidResource);
-
-      expect(service.loadBescheidDocument).toHaveBeenCalledWith(bescheidResource);
-    });
-
-    it('should load attachments', () => {
-      service.loadFiles(bescheidResource);
-
-      expect(service.loadAttachments).toHaveBeenCalledWith(bescheidResource);
-    });
-  });
-
-  describe('create bescheid document', () => {
-    beforeEach(() => {
-      service.doCreateBescheidDocument = jest.fn().mockReturnValue(EMPTY);
-      service.handleCreateBescheidDocumentResponse = jest.fn();
-    });
-
-    it('should emit bescheid document', () => {
-      service.createBescheidDocument(bescheidResource);
-
-      expect(service.getBescheidDocument()).toBeObservable(
-        singleCold({ ...createEmptyBescheidDocument(), create: createEmptyStateResource(true) }),
-      );
-    });
-
-    it('should do create bescheid document', () => {
-      service.createBescheidDocument(bescheidResource);
-
-      expect(service.doCreateBescheidDocument).toHaveBeenCalledWith(bescheidResource);
-    });
-
-    it('should handle create response on loaded', () => {
-      service.doCreateBescheidDocument = jest.fn().mockReturnValue(of(commandStateResource));
-
-      service.createBescheidDocument(bescheidResource);
-
-      expect(service.handleCreateBescheidDocumentResponse).toHaveBeenCalledWith(commandStateResource);
-    });
-
-    it('should handle create response on error', () => {
-      const commandError: StateResource<CommandResource> = createCommandErrorStateResource();
-      service.doCreateBescheidDocument = jest.fn().mockReturnValue(of(commandError));
-
-      service.createBescheidDocument(bescheidResource);
-
-      expect(service.handleCreateBescheidDocumentResponse).toHaveBeenCalledWith(commandError);
-    });
-  });
-
-  describe('doCreateBescheidDocument', () => {
-    it('should create command by props', () => {
-      service.doCreateBescheidDocument(bescheidResource);
-
-      expect(commandService.createCommandByProps).toHaveBeenCalledWith({
-        resource: bescheidResource,
-        linkRel: BescheidLinkRel.CREATE_DOCUMENT,
-        command: {
-          order: CommandOrder.CREATE_BESCHEID_DOCUMENT,
-          body: null,
-        },
-        snackBarMessage: EMPTY_STRING,
-      });
-    });
-  });
-
-  describe('handleCreateBescheidDocumentResponse', () => {
-    const commandStateResource: StateResource<CommandResource> = createStateResource(
-      createCommandResource([CommandLinkRel.EFFECTED_RESOURCE]),
-    );
-
-    beforeEach(() => {
-      service.loadBescheidDocumentByUri = jest.fn();
-      service.emitBescheidDocumentError = jest.fn();
-    });
-
-    it('should emit error', () => {
-      const commandErrorStateResource: StateResource<CommandResource> = createCommandErrorStateResource();
-
-      service.handleCreateBescheidDocumentResponse(commandErrorStateResource);
-
-      expect(service.getBescheidDocument()).toBeObservable(
-        singleCold({ ...createEmptyBescheidDocument(), create: commandErrorStateResource } as BescheidDocument),
-      );
-    });
-
-    it('should emit bescheid document state', () => {
-      service.handleCreateBescheidDocumentResponse(commandStateResource);
-
-      expect(service.getBescheidDocument()).toBeObservable(
-        singleCold({
-          ...createEmptyBescheidDocument(),
-          documentUri: getEffectedResourceUrl(commandStateResource.resource),
-        }),
-      );
-    });
-
-    it('should load document by uri', () => {
-      service.handleCreateBescheidDocumentResponse(commandStateResource);
-
-      expect(service.loadBescheidDocumentByUri).toHaveBeenCalledWith(getEffectedResourceUrl(commandStateResource.resource));
-    });
-  });
-
-  describe('emitBescheidDocumentError', () => {
-    it('should emit', () => {
-      const commandError: StateResource<CommandResource> = createCommandErrorStateResource();
-
-      service.emitBescheidDocumentError(commandError);
-
-      expect(service.getBescheidDocument()).toBeObservable(
-        singleCold({
-          ...createEmptyBescheidDocument(),
-          upload: { ...createEmptyUploadInProgress(), loading: false, error: commandError.error },
-        }),
-      );
-    });
-  });
-
-  describe('loadBescheidDocument', () => {
-    beforeEach(() => {
-      service.loadBescheidDocumentByUri = jest.fn();
-    });
-
-    it('should load by uri', () => {
-      const bescheidResource: BescheidResource = createBescheidResource([BescheidLinkRel.BESCHEID_DOCUMENT]);
-
-      service.loadBescheidDocument(bescheidResource);
-
-      expect(service.loadBescheidDocumentByUri).toHaveBeenCalledWith(getUrl(bescheidResource, BescheidLinkRel.BESCHEID_DOCUMENT));
-    });
-
-    it('should NOT load by uri', () => {
-      service.loadBescheidDocument(bescheidResource);
-
-      expect(service.loadBescheidDocumentByUri).not.toHaveBeenCalled();
-    });
-  });
-
-  describe('loadBescheidDocumentByUri', () => {
-    const resourceUri: ResourceUri = faker.internet.url();
-
-    beforeEach(() => {
-      resourceRepository.getResource.mockReturnValue(EMPTY);
-      service.loadBescheidDocumentFile = jest.fn();
-    });
-
-    it('should get resource', () => {
-      service.loadBescheidDocumentByUri(resourceUri);
-
-      expect(resourceRepository.getResource).toHaveBeenCalledWith(resourceUri);
-    });
-
-    it('should load bescheid document file', () => {
-      const documentResource: DocumentResource = createDocumentResource();
-      resourceRepository.getResource.mockReturnValue(of(documentResource));
-
-      service.loadBescheidDocumentByUri(resourceUri);
-
-      expect(service.loadBescheidDocumentFile).toHaveBeenCalledWith(documentResource);
-    });
-  });
-
-  describe('load bescheid document file', () => {
-    const document: DocumentResource = createDocumentResource([DocumentLinkRel.FILE]);
-    const binaryFileStateResource: StateResource<BinaryFileResource> = createStateResource(createBinaryFileResource());
-
-    beforeEach(() => {
-      binaryFileService.getFile.mockReturnValue(of(binaryFileStateResource));
-    });
-
-    it('should call binary file service', () => {
-      service.loadBescheidDocumentFile(document);
-
-      expect(binaryFileService.getFile).toHaveBeenCalledWith(getUrl(document, DocumentLinkRel.FILE));
-    });
-
-    it('should emit bescheid document state', () => {
-      service.loadBescheidDocumentFile(document);
-
-      expect(service.getBescheidDocument()).toBeObservable(
-        singleCold({
-          upload: createEmptyUploadInProgress(),
-          create: createEmptyStateResource(),
-          resource: binaryFileStateResource.resource,
-          documentUri: getUrl(document, LinkRel.Self),
-        }),
-      );
-    });
-  });
-
-  describe('loadAttachments', () => {
-    const bescheidResourceWithAttachments: BescheidResource = createBescheidResource([BescheidLinkRel.ATTACHMENTS]);
-
-    beforeEach(() => {
-      binaryFileService.getFiles.mockReturnValue(EMPTY);
-    });
-
-    it('should call binary file service', () => {
-      service.loadAttachments(bescheidResourceWithAttachments);
-
-      expect(binaryFileService.getFiles).toHaveBeenCalledWith(bescheidResourceWithAttachments, BescheidLinkRel.ATTACHMENTS);
-    });
-
-    it('should NOT call binary file service', () => {
-      service.loadAttachments(bescheidResource);
-
-      expect(binaryFileService.getFiles).not.toHaveBeenCalled();
-    });
-
-    it('should add files', () => {
-      const binaryFileListStateResource: StateResource<BinaryFileListResource> =
-        createStateResource(createBinaryFileListResource());
-      binaryFileService.getFiles.mockReturnValue(of(binaryFileListStateResource));
-
-      service.loadAttachments(bescheidResourceWithAttachments);
-
-      expect(binaryFileService.addFiles).toHaveBeenCalledWith(
-        BESCHEID_UPLOADED_ATTACHMENTS,
-        getEmbeddedResources(binaryFileListStateResource, BinaryFileListLinkRel.FILE_LIST),
-      );
-    });
-  });
-
-  describe('upload bescheid document', () => {
-    const documentFile: File = createFile();
-
-    beforeEach(() => {
-      binaryFileService.uploadFile.mockReturnValue(EMPTY);
-      service.handleUploadBescheidDocumentResponse = jest.fn();
-    });
-
-    it('should emit bescheid document state', () => {
-      service.uploadBescheidDocument(documentFile, bescheidResource);
-
-      expect(service.getBescheidDocument()).toBeObservable(
-        singleCold({ ...createEmptyBescheidDocument(), upload: { fileName: documentFile.name, loading: true } }),
-      );
-    });
-
-    it('should call binary file service', () => {
-      service.uploadBescheidDocument(documentFile, bescheidResource);
-
-      expect(binaryFileService.uploadFile).toHaveBeenCalledWith(
-        bescheidResource,
-        BescheidLinkRel.UPLOAD_BESCHEID_FILE,
-        documentFile,
-        false,
-      );
-    });
-
-    it('should handle upload response', () => {
-      const binaryFileStateResource: StateResource<BinaryFileResource> = createStateResource(createBinaryFileResource());
-      binaryFileService.uploadFile.mockReturnValue(of(binaryFileStateResource));
-
-      service.uploadBescheidDocument(documentFile, bescheidResource);
-
-      expect(service.handleUploadBescheidDocumentResponse).toHaveBeenCalledWith(bescheidResource, binaryFileStateResource);
-    });
-  });
-
-  describe('handleUploadBescheidDocumentResponse', () => {
-    beforeEach(() => {
-      service.emitBescheidDocumentError = jest.fn();
-      service.createBescheidDocumentFromFile = jest.fn();
-    });
-
-    it('should emit error', () => {
-      const errorStateResource: StateResource<BinaryFileResource> = createErrorStateResource(createProblemDetail());
-
-      service.handleUploadBescheidDocumentResponse(bescheidResource, errorStateResource);
-
-      expect(service.emitBescheidDocumentError).toHaveBeenCalledWith(errorStateResource);
-    });
-
-    it('should create bescheid document from file', () => {
-      const binaryFileStateResource: StateResource<BinaryFileResource> = createStateResource(createBinaryFileResource());
-
-      service.handleUploadBescheidDocumentResponse(bescheidResource, binaryFileStateResource);
-
-      expect(service.createBescheidDocumentFromFile).toHaveBeenCalledWith(bescheidResource, binaryFileStateResource.resource);
-    });
-  });
-
-  describe('create bescheid document from file', () => {
-    const bescheid: BescheidResource = createBescheidResource();
-    const binaryFile: BinaryFileResource = createBinaryFileResource();
-
-    const createCommandProps: CreateCommandProps = createCreateCommandProps();
-    let buildCreateBescheidDocumentFromFilePropsSpy;
-
-    const commandStateResource: StateResource<CommandResource> = createCommandStateResource();
-
-    beforeEach(() => {
-      buildCreateBescheidDocumentFromFilePropsSpy = jest
-        .spyOn(BescheidUtil, 'buildCreateBescheidDocumentFromFileProps')
-        .mockReturnValue(createCommandProps);
-      commandService.createCommandByProps.mockReturnValue(of(commandStateResource));
-    });
-
-    it('should call command sevice', () => {
-      service.createBescheidDocumentFromFile(bescheid, binaryFile);
-
-      expect(commandService.createCommandByProps).toHaveBeenCalledWith(createCommandProps);
-    });
-
-    it('should build create command document from file props', () => {
-      service.createBescheidDocumentFromFile(bescheid, binaryFile);
-
-      expect(buildCreateBescheidDocumentFromFilePropsSpy).toHaveBeenCalledWith(bescheid, binaryFile);
-    });
-
-    it('should call handle create bescheid document from file response', () => {
-      service.handleCreateBescheidDocumentFromFileResponse = jest.fn();
-
-      service.createBescheidDocumentFromFile(bescheid, binaryFile);
-
-      expect(service.handleCreateBescheidDocumentFromFileResponse).toHaveBeenCalledWith(commandStateResource, binaryFile);
-    });
-  });
-
-  describe('handleCreateBescheidDocumentFromFileResponse', () => {
-    const commandStateResource: StateResource<CommandResource> = createStateResource(
-      createCommandResource([CommandLinkRel.EFFECTED_RESOURCE]),
-    );
-
-    beforeEach(() => {
-      service.emitBescheidDocumentError = jest.fn();
-    });
-
-    it('should emit error', () => {
-      const errorStateResource: StateResource<CommandResource> = createErrorStateResource(createProblemDetail());
-
-      service.handleCreateBescheidDocumentFromFileResponse(errorStateResource, createBinaryFileResource());
-
-      expect(service.emitBescheidDocumentError).toHaveBeenCalledWith(errorStateResource);
-    });
-
-    it('should NOT emit error', () => {
-      const binaryFileResource: BinaryFileResource = createBinaryFileResource();
-
-      service.handleCreateBescheidDocumentFromFileResponse(commandStateResource, binaryFileResource);
-
-      expect(service.emitBescheidDocumentError).not.toHaveBeenCalled();
-    });
-
-    it('should emit bescheid document state', () => {
-      const binaryFileResource: BinaryFileResource = createBinaryFileResource();
-
-      service.handleCreateBescheidDocumentFromFileResponse(commandStateResource, binaryFileResource);
-
-      expect(service.getBescheidDocument()).toBeObservable(
-        singleCold({
-          ...createEmptyBescheidDocument(),
-          documentUri: getEffectedResourceUrl(commandStateResource.resource),
-          upload: createEmptyUploadInProgress(),
-          resource: binaryFileResource,
-        }),
-      );
-    });
-
-    it('should NOT emit bescheid document state', () => {
-      const errorStateResource: StateResource<CommandResource> = createErrorStateResource(createProblemDetail());
-
-      service.handleCreateBescheidDocumentFromFileResponse(errorStateResource, createBinaryFileResource());
-
-      expect(service.getBescheidDocument()).toBeObservable(singleCold(createEmptyBescheidDocument()));
-    });
-  });
-
-  describe('createBescheid', () => {
-    const vorgangWithEingang: VorgangWithEingangResource = createVorgangWithEingangResource();
-    const command: CommandResource = createCommandResource([CommandLinkRel.EFFECTED_RESOURCE]);
-    const commandStateResource: StateResource<CommandResource> = createStateResource(command);
-
-    beforeEach(() => {
-      service.updateBescheidDraft = jest.fn();
-    });
-
-    beforeEach(() => {
-      facade.getBescheidCommand.mockReturnValue(of(commandStateResource));
-      (service as any).bescheidResourceService.loadByResourceUri = jest.fn();
-    });
-
-    it('should call facade', () => {
-      service.createBescheid(vorgangWithEingang).subscribe();
-
-      expect(facade.createBescheidDraft).toHaveBeenCalledWith(vorgangWithEingang, {
-        order: CommandOrder.CREATE_BESCHEID,
-        body: null,
-      });
-    });
-
-    it('should update bescheid draft', () => {
-      service.createBescheid(vorgangWithEingang).subscribe();
-
-      expect(service.updateBescheidDraft).toHaveBeenCalledWith(commandStateResource.resource);
-    });
-  });
-
-  describe('updateBescheidDraft', () => {
-    const command: CommandResource = createCommandResource([CommandLinkRel.EFFECTED_RESOURCE]);
-
-    beforeEach(() => {
-      (service as any).bescheidResourceService.loadByResourceUri = jest.fn();
-    });
-
-    it('should load resource by uri', () => {
-      service.updateBescheidDraft(command);
-
-      expect((service as any).bescheidResourceService.loadByResourceUri).toHaveBeenCalledWith(
-        getUrl(command, CommandLinkRel.EFFECTED_RESOURCE),
-      );
-    });
-
-    it('should emit bescheid created', () => {
-      service.updateBescheidDraft({ ...command, order: CommandOrder.CREATE_BESCHEID });
-
-      expect(service.getBescheidCreated()).toBeObservable(singleCold(true));
-    });
-  });
-
-  describe('updateBescheid', () => {
-    const bescheid: Bescheid = createBescheid();
-    const commandResource: CommandResource = createCommandResource([CommandLinkRel.EFFECTED_RESOURCE]);
-    const commandStateResource: StateResource<CommandResource> = createStateResource(commandResource);
-
-    beforeEach(() => {
-      service.doUpdateBescheid = jest.fn().mockReturnValue(EMPTY);
-      service.updateBescheidDraft = jest.fn().mockReturnValue(EMPTY);
-    });
-
-    it('should do update bescheid', () => {
-      service.updateBescheid(bescheidResource, bescheid);
-
-      expect(service.doUpdateBescheid).toHaveBeenCalledWith(bescheidResource, bescheid);
-    });
-
-    it('should update bescheid draft', () => {
-      service.doUpdateBescheid = jest.fn().mockReturnValue(of(commandStateResource));
-
-      service.updateBescheid(bescheidResource, bescheid).subscribe();
-
-      expect(service.updateBescheidDraft).toHaveBeenCalledWith(commandResource);
-    });
-  });
-
-  describe('do update bescheid', () => {
-    const bescheid: Bescheid = createBescheid();
-    const bescheidResource: BescheidResource = createBescheidResource();
-
-    const createCommandProps: CreateCommandProps = createCreateCommandProps();
-    let buildUpdateBescheidCommandPropsSpy: jest.SpyInstance;
-
-    beforeEach(() => {
-      buildUpdateBescheidCommandPropsSpy = jest
-        .spyOn(BescheidUtil, 'buildUpdateBescheidCommandProps')
-        .mockReturnValue(createCommandProps);
-      commandService.createCommandByProps.mockClear();
-      commandService.createCommandByProps.mockReturnValue(of(createCommandStateResource()));
-    });
-
-    it('should build update bescheid command props', () => {
-      service.doUpdateBescheid(bescheidResource, bescheid);
-
-      expect(buildUpdateBescheidCommandPropsSpy).toHaveBeenCalledWith(bescheidResource, bescheid);
-    });
-
-    it('should call command service', () => {
-      service.doUpdateBescheid(bescheidResource, bescheid).subscribe();
-
-      expect(commandService.createCommandByProps).toHaveBeenCalledWith(createCommandProps);
-    });
-  });
-
-  describe('sendBescheidManually', () => {
-    beforeEach(() => {
-      service.sendBescheid = jest.fn().mockReturnValue(EMPTY);
-    });
-
-    it('should send bescheid', () => {
-      service.sendBescheidManually().subscribe();
-
-      expect(service.sendBescheid).toHaveBeenCalledWith(BescheidLinkRel.BESCHEIDEN);
-    });
-
-    it('should return send bescheid command', () => {
-      const commandStateResource: StateResource<CommandResource> = createSuccessfullyDoneCommandStateResource();
-      service.sendBescheid = jest.fn().mockReturnValue(of(commandStateResource));
-
-      const sendCommandStateResource$: Observable<StateResource<CommandResource>> = service.sendBescheidManually();
-
-      expect(sendCommandStateResource$).toBeObservable(singleColdCompleted(commandStateResource));
-    });
-  });
-
-  describe('sendBescheid', () => {
-    beforeEach(() => {
-      service.getBescheidDraft = jest.fn().mockReturnValue(of(createStateResource(bescheidResource)));
-      commandService.createCommandByProps.mockReturnValue(EMPTY);
-    });
-
-    it('should get bescheid draft', () => {
-      service.sendBescheidManually().subscribe();
-
-      expect(service.getBescheidDraft).toHaveBeenCalled();
-    });
-
-    it('should create command', () => {
-      service.sendBescheid(BescheidLinkRel.BESCHEIDEN).subscribe();
-
-      expect(commandService.createCommandByProps).toHaveBeenCalledWith({
-        resource: bescheidResource,
-        linkRel: BescheidLinkRel.BESCHEIDEN,
-        command: {
-          order: CommandOrder.SEND_BESCHEID,
-          body: null,
-        },
-        snackBarMessage: EMPTY_STRING,
-      } as CreateCommandProps);
-    });
-
-    it('should return send bescheid command', () => {
-      const commandStateResource: StateResource<CommandResource> = createSuccessfullyDoneCommandStateResource();
-      commandService.createCommandByProps = jest.fn().mockReturnValue(of(commandStateResource));
-
-      const sendCommandStateResource$: Observable<StateResource<CommandResource>> = service.sendBescheid(
-        BescheidLinkRel.BESCHEIDEN,
-      );
-
-      expect(sendCommandStateResource$).toBeObservable(singleColdCompleted(commandStateResource));
-    });
-  });
-
-  describe('sendBescheidMessage', () => {
-    beforeEach(() => {
-      service.getBescheidDraft = jest.fn().mockReturnValue(createStateResource(bescheidResource));
-      service.sendBescheid = jest.fn().mockReturnValue(EMPTY);
-    });
-
-    it('should send bescheid', () => {
-      service.sendBescheidMessage().subscribe();
-
-      expect(service.sendBescheid).toHaveBeenCalledWith(BescheidLinkRel.BESCHEIDEN_UND_SENDEN);
-    });
-
-    it('should return send bescheid command', () => {
-      const commandStateResource: StateResource<CommandResource> = createSuccessfullyDoneCommandStateResource();
-      service.sendBescheid = jest.fn().mockReturnValue(of(commandStateResource));
-
-      const sendCommandStateResource$: Observable<StateResource<CommandResource>> = service.sendBescheidMessage();
-
-      expect(sendCommandStateResource$).toBeObservable(singleColdCompleted(commandStateResource));
-    });
-  });
-
-  describe('setActiveStep', () => {
-    beforeEach(() => {
-      service._clearUploadedFiles = jest.fn();
-    });
-
-    it('should emit changed active step', () => {
-      service.setActiveStep(BescheidWizardStep.DokumenteHochladen);
-
-      expect(service.getActiveStep()).toBeObservable(singleCold(BescheidWizardStep.DokumenteHochladen));
-    });
-
-    it('should clear uploaded files', () => {
-      service.setActiveStep(BescheidWizardStep.DokumenteHochladen);
-
-      expect(service._clearUploadedFiles).toHaveBeenCalled();
-    });
-  });
-
-  describe('getBescheidDraft', () => {
-    const bescheidDraft: BescheidResource = createBescheidResource();
-    const bescheidDraftStateResource: StateResource<BescheidResource> = createStateResource(bescheidDraft);
-
-    it('should call resource service', () => {
-      bescheidResourceService.get = jest.fn();
-
-      service.getBescheidDraft();
-
-      expect(bescheidResourceService.get).toHaveBeenCalled();
-    });
-
-    it('should return value', () => {
-      bescheidResourceService.get = jest.fn().mockReturnValue(singleCold(bescheidDraftStateResource));
-
-      const bescheidStateResource$: Observable<StateResource<BescheidResource>> = service.getBescheidDraft();
-
-      expect(bescheidStateResource$).toBeObservable(singleCold(bescheidDraftStateResource));
-    });
-  });
-
-  describe('setNachrichtEmpfaenger', () => {
-    it('should change wizard state', () => {
-      const empfaenger: string = faker.person.fullName();
-
-      service.setNachrichtEmpfaenger(empfaenger);
-
-      expect(service.getWizard()).toBeObservable(singleCold({ ...createInitialWizard(), empfaenger }));
-    });
-  });
-
-  describe('lockBescheidSending', () => {
-    it('should change wizard state', () => {
-      service.lockBescheidSending();
-
-      expect(service.getWizard()).toBeObservable(singleCold({ ...createInitialWizard(), canBeSend: false }));
-    });
-  });
-
-  describe('unlockBescheidSending', () => {
-    it('should change wizard state', () => {
-      service.unlockBescheidSending();
-
-      expect(service.getWizard()).toBeObservable(singleCold({ ...createInitialWizard(), canBeSend: true }));
-    });
-  });
-
-  describe('finishAddingBescheidDocument', () => {
-    it('should update state', () => {
-      const bescheidDocument: BescheidDocument = createBescheidDocument();
-      service._bescheidDocument$.next(bescheidDocument);
-
-      service.finishAddingBescheidDocument();
-
-      expect(service.getBescheidDocument()).toBeObservable(
-        singleCold({
-          ...bescheidDocument,
-          create: createEmptyStateResource(),
-          upload: createEmptyUploadInProgress(),
-        } as BescheidDocument),
-      );
-    });
-  });
-
-  describe('clear uploaded files', () => {
-    it('should call binary files service', () => {
-      service._clearUploadedFiles();
-
-      expect(binaryFileService.clearUploadedFiles).toHaveBeenCalledWith(BESCHEID_UPLOADED_ATTACHMENTS);
-    });
-  });
-});
diff --git a/alfa-client/libs/bescheid-shared/src/lib/bescheid2.service.ts b/alfa-client/libs/bescheid-shared/src/lib/bescheid2.service.ts
deleted file mode 100644
index 8a48a4dbdf043a0994ac12c2a298a6ae2be2fb3e..0000000000000000000000000000000000000000
--- a/alfa-client/libs/bescheid-shared/src/lib/bescheid2.service.ts
+++ /dev/null
@@ -1,337 +0,0 @@
-import {
-  Bescheid,
-  BESCHEID_UPLOADED_ATTACHMENTS,
-  BescheidDocument,
-  BescheidLinkRel,
-  BescheidResource,
-  BescheidSendBy,
-  BescheidWizardStep,
-  buildCreateBescheidCommand,
-  buildCreateBescheidDocumentCommandProps,
-  buildCreateBescheidDocumentFromFileProps,
-  buildSendBescheidCommandProps,
-  buildUpdateBescheidCommandProps,
-  createEmptyBescheidDocument,
-  createEmptyUploadInProgress,
-  createInitialWizard,
-  DocumentResource,
-  Wizard,
-} from '@alfa-client/bescheid-shared';
-import {
-  BinaryFileListLinkRel,
-  BinaryFileListResource,
-  BinaryFileResource,
-  BinaryFileService,
-} from '@alfa-client/binary-file-shared';
-import {
-  CommandOrder,
-  CommandResource,
-  CommandService,
-  getEffectedResourceUrl,
-  notHasCommandError,
-  tapOnCommandSuccessfullyDone,
-} from '@alfa-client/command-shared';
-import { PostfachService } from '@alfa-client/postfach-shared';
-import {
-  createEmptyStateResource,
-  filterIsLoadedOrHasError,
-  getEmbeddedResources,
-  hasStateResourceError,
-  isLoaded,
-  ResourceRepository,
-  StateResource,
-} from '@alfa-client/tech-shared';
-import { VorgangCommandService, VorgangWithEingangResource } from '@alfa-client/vorgang-shared';
-import { inject, Injectable } from '@angular/core';
-import { getUrl, hasLink, LinkRel, Resource, ResourceUri } from '@ngxp/rest';
-import { isNil } from 'lodash-es';
-import { BehaviorSubject, filter, first, map, Observable, switchMap } from 'rxjs';
-import { BescheidFacade } from './+state/bescheid.facade';
-import { BescheidResourceService } from './bescheid-resource-service';
-import { DocumentLinkRel } from './document.linkrel';
-
-@Injectable()
-export class BescheidService2 {
-  private readonly bescheidFacade = inject(BescheidFacade);
-  private readonly commandService = inject(CommandService);
-  private readonly vorgangCommandService = inject(VorgangCommandService);
-  private readonly binaryFileService = inject(BinaryFileService);
-  private readonly resourceRepository = inject(ResourceRepository);
-  private readonly postfachService = inject(PostfachService);
-  private readonly bescheidResourceService = inject(BescheidResourceService);
-
-  readonly _bescheidDocument$: BehaviorSubject<BescheidDocument> = new BehaviorSubject(createEmptyBescheidDocument());
-  readonly _wizard$: BehaviorSubject<Wizard> = new BehaviorSubject(createInitialWizard());
-
-  public init(): void {
-    this._wizard$.next(createInitialWizard());
-    this._bescheidDocument$.next(createEmptyBescheidDocument());
-  }
-
-  public exit(): void {
-    this.postfachService.setPostfachMailOnReload();
-    this._clearUploadedFiles();
-  }
-
-  public skipBescheidCreation(
-    vorgangWithEingangResource: VorgangWithEingangResource,
-    bescheidResource: BescheidResource,
-  ): Observable<StateResource<CommandResource>> {
-    if (isNil(bescheidResource)) {
-      return this.vorgangCommandService.abschliessen(vorgangWithEingangResource);
-    }
-    return this.deleteBescheidAndCompleteVorgang(vorgangWithEingangResource);
-  }
-
-  deleteBescheidAndCompleteVorgang(
-    vorgangWithEingangResource: VorgangWithEingangResource,
-  ): Observable<StateResource<CommandResource>> {
-    return this.vorgangCommandService
-      .abschliessen(vorgangWithEingangResource)
-      .pipe(tapOnCommandSuccessfullyDone(() => this.deleteBescheid()));
-  }
-
-  public deleteBescheid(): Observable<StateResource<CommandResource>> {
-    return this.bescheidResourceService.delete();
-  }
-
-  public loadFiles(bescheidResource: BescheidResource): void {
-    this.loadBescheidDocument(bescheidResource);
-    this.loadAttachments(bescheidResource);
-  }
-
-  public createBescheidDocument(bescheidResource: BescheidResource): void {
-    this._bescheidDocument$.next({ ...createEmptyBescheidDocument(), create: createEmptyStateResource(true) });
-    this.doCreateBescheidDocument(bescheidResource)
-      .pipe(filterIsLoadedOrHasError(), first())
-      .subscribe((commandStateResource: StateResource<CommandResource>) =>
-        this.handleCreateBescheidDocumentResponse(commandStateResource),
-      );
-  }
-
-  doCreateBescheidDocument(bescheidResource: BescheidResource): Observable<StateResource<CommandResource>> {
-    return this.commandService.createCommandByProps(buildCreateBescheidDocumentCommandProps(bescheidResource));
-  }
-
-  handleCreateBescheidDocumentResponse(commandStateResource: StateResource<CommandResource>): void {
-    if (notHasCommandError(commandStateResource.resource)) {
-      const documentUri: ResourceUri = getEffectedResourceUrl(commandStateResource.resource);
-      this._bescheidDocument$.next({ ...this._bescheidDocument$.value, documentUri });
-      this.loadBescheidDocumentByUri(documentUri);
-    } else {
-      this._bescheidDocument$.next({ ...this._bescheidDocument$.value, create: commandStateResource });
-    }
-  }
-
-  emitBescheidDocumentError(stateResource: StateResource<Resource>): void {
-    const value: BescheidDocument = this._bescheidDocument$.value;
-    this._bescheidDocument$.next({
-      ...value,
-      upload: { ...value.upload, loading: false, error: stateResource.error },
-    });
-  }
-
-  loadBescheidDocument(bescheidResource: BescheidResource): void {
-    if (hasLink(bescheidResource, BescheidLinkRel.BESCHEID_DOCUMENT)) {
-      this.loadBescheidDocumentByUri(getUrl(bescheidResource, BescheidLinkRel.BESCHEID_DOCUMENT));
-    }
-  }
-
-  public loadBescheidDocumentByUri(resourceUri: ResourceUri): void {
-    this.resourceRepository
-      .getResource(resourceUri)
-      .pipe(first())
-      .subscribe((document: DocumentResource) => this.loadBescheidDocumentFile(document));
-  }
-
-  loadBescheidDocumentFile(document: DocumentResource): void {
-    this.binaryFileService
-      .getFile(getUrl(document, DocumentLinkRel.FILE))
-      .pipe(filterIsLoadedOrHasError(), first())
-      .subscribe((binaryFile: StateResource<BinaryFileResource>) => {
-        this._bescheidDocument$.next({
-          ...this._bescheidDocument$.value,
-          upload: createEmptyUploadInProgress(),
-          create: createEmptyStateResource(),
-          resource: binaryFile.resource,
-          documentUri: getUrl(document, LinkRel.Self),
-        });
-      });
-  }
-
-  loadAttachments(bescheidResource: BescheidResource): void {
-    if (hasLink(bescheidResource, BescheidLinkRel.ATTACHMENTS)) {
-      this.binaryFileService
-        .getFiles(bescheidResource, BescheidLinkRel.ATTACHMENTS)
-        .pipe(
-          filterIsLoadedOrHasError(),
-          first(),
-          map((stateResource: StateResource<BinaryFileListResource>) =>
-            getEmbeddedResources<BinaryFileResource>(stateResource, BinaryFileListLinkRel.FILE_LIST),
-          ),
-        )
-        .subscribe((files: BinaryFileResource[]) => this.binaryFileService.addFiles(BESCHEID_UPLOADED_ATTACHMENTS, files));
-    }
-  }
-
-  public uploadBescheidDocument(document: File, bescheid: BescheidResource): void {
-    this._bescheidDocument$.next({ ...this._bescheidDocument$.value, upload: { fileName: document.name, loading: true } });
-    this.binaryFileService
-      .uploadFile(bescheid, BescheidLinkRel.UPLOAD_BESCHEID_FILE, document, false)
-      .pipe(filterIsLoadedOrHasError(), first())
-      .subscribe((binaryFileStateResource: StateResource<BinaryFileResource>) =>
-        this.handleUploadBescheidDocumentResponse(bescheid, binaryFileStateResource),
-      );
-  }
-
-  handleUploadBescheidDocumentResponse(
-    bescheid: BescheidResource,
-    binaryFileStateResource: StateResource<BinaryFileResource>,
-  ): void {
-    if (hasStateResourceError(binaryFileStateResource)) {
-      this.emitBescheidDocumentError(binaryFileStateResource);
-    } else {
-      this.createBescheidDocumentFromFile(bescheid, binaryFileStateResource.resource);
-    }
-  }
-
-  createBescheidDocumentFromFile(bescheid: BescheidResource, binaryFile: BinaryFileResource): void {
-    this.commandService
-      .createCommandByProps(buildCreateBescheidDocumentFromFileProps(bescheid, binaryFile))
-      .pipe(filterIsLoadedOrHasError(), first())
-      .subscribe((commandStateResource: StateResource<CommandResource>) =>
-        this.handleCreateBescheidDocumentFromFileResponse(commandStateResource, binaryFile),
-      );
-  }
-
-  handleCreateBescheidDocumentFromFileResponse(
-    commandStateResource: StateResource<CommandResource>,
-    binaryFile: BinaryFileResource,
-  ): void {
-    if (hasStateResourceError(commandStateResource)) {
-      this.emitBescheidDocumentError(commandStateResource);
-    } else {
-      this._bescheidDocument$.next({
-        ...this._bescheidDocument$.value,
-        documentUri: getEffectedResourceUrl(commandStateResource.resource),
-        upload: createEmptyUploadInProgress(),
-        resource: binaryFile,
-      });
-    }
-  }
-
-  public createBescheid(
-    vorgangWithEingang: VorgangWithEingangResource,
-    bescheid?: Bescheid,
-  ): Observable<StateResource<CommandResource>> {
-    this.bescheidFacade.createBescheidDraft(vorgangWithEingang, buildCreateBescheidCommand(bescheid));
-    return this.bescheidFacade
-      .getBescheidCommand()
-      .pipe(
-        tapOnCommandSuccessfullyDone((commandStateResource: StateResource<CommandResource>) =>
-          this.updateBescheidDraft(commandStateResource.resource),
-        ),
-      );
-  }
-
-  updateBescheidDraft(command: CommandResource): void {
-    this.bescheidResourceService.loadByResourceUri(getEffectedResourceUrl(command));
-    if (command.order === CommandOrder.CREATE_BESCHEID) {
-      this._wizard$.next({ ...this._wizard$.value, bescheidCreated: true });
-    }
-  }
-
-  public updateBescheid(
-    bescheidResource: BescheidResource,
-    updatedBescheid: Bescheid,
-  ): Observable<StateResource<CommandResource>> {
-    return this.doUpdateBescheid(bescheidResource, updatedBescheid).pipe(
-      tapOnCommandSuccessfullyDone((commandStateResource: StateResource<CommandResource>) => {
-        this.updateBescheidDraft(commandStateResource.resource);
-      }),
-    );
-  }
-
-  doUpdateBescheid(bescheidResource: BescheidResource, bescheid: Bescheid): Observable<StateResource<CommandResource>> {
-    return this.commandService.createCommandByProps(buildUpdateBescheidCommandProps(bescheidResource, bescheid));
-  }
-
-  public sendBescheidManually(): Observable<StateResource<CommandResource>> {
-    return this.sendBescheid(BescheidLinkRel.BESCHEIDEN);
-  }
-
-  public sendBescheidMessage(): Observable<StateResource<CommandResource>> {
-    return this.sendBescheid(BescheidLinkRel.BESCHEIDEN_UND_SENDEN);
-  }
-
-  sendBescheid(linkRel: BescheidLinkRel): Observable<StateResource<CommandResource>> {
-    return this.getBescheidDraft().pipe(
-      filter(isLoaded),
-      map((stateResource: StateResource<BescheidResource>) => stateResource.resource),
-      switchMap((bescheidResource: BescheidResource) =>
-        this.commandService.createCommandByProps(buildSendBescheidCommandProps(bescheidResource, linkRel)),
-      ),
-    );
-  }
-
-  public getBescheidDraft(): Observable<StateResource<BescheidResource>> {
-    return this.bescheidResourceService.get();
-  }
-
-  public getBescheidDocument(): Observable<BescheidDocument> {
-    return this._bescheidDocument$.asObservable();
-  }
-
-  public deleteBescheidDocument(): void {
-    this._bescheidDocument$.next(createEmptyBescheidDocument());
-  }
-
-  public getActiveStep(): Observable<BescheidWizardStep> {
-    return this._wizard$.asObservable().pipe(map((wizard: Wizard) => wizard.activeStep));
-  }
-
-  public setActiveStep(step: BescheidWizardStep): void {
-    this._clearUploadedFiles();
-    this._wizard$.next({ ...this._wizard$.value, activeStep: step });
-  }
-
-  public getBescheidCreated(): Observable<boolean> {
-    return this._wizard$.asObservable().pipe(map((wizard: Wizard) => wizard.bescheidCreated));
-  }
-
-  public selectBescheidResource(): Observable<StateResource<BescheidResource>> {
-    return this.bescheidResourceService.selectResource();
-  }
-
-  public getWizard(): Observable<Wizard> {
-    return this._wizard$.asObservable();
-  }
-
-  public setSendBy(sendBy: BescheidSendBy): void {
-    this._wizard$.next({ ...this._wizard$.value, sendBy: sendBy });
-  }
-
-  public setNachrichtEmpfaenger(empfaenger: string): void {
-    this._wizard$.next({ ...this._wizard$.value, empfaenger: empfaenger });
-  }
-
-  public lockBescheidSending(): void {
-    this._wizard$.next({ ...this._wizard$.value, canBeSend: false });
-  }
-
-  public unlockBescheidSending(): void {
-    this._wizard$.next({ ...this._wizard$.value, canBeSend: true });
-  }
-
-  public finishAddingBescheidDocument(): void {
-    this._bescheidDocument$.next({
-      ...this._bescheidDocument$.value,
-      upload: createEmptyUploadInProgress(),
-      create: createEmptyStateResource(),
-    });
-  }
-
-  _clearUploadedFiles(): void {
-    this.binaryFileService.clearUploadedFiles(BESCHEID_UPLOADED_ATTACHMENTS);
-  }
-}
diff --git a/alfa-client/libs/bescheid/src/lib/bescheid-in-vorgang-container/bescheid-in-vorgang-container.component.html b/alfa-client/libs/bescheid/src/lib/bescheid-in-vorgang-container/bescheid-in-vorgang-container.component.html
deleted file mode 100644
index 0526dcd28fe6df116fd5b5265bf6c032ea25746a..0000000000000000000000000000000000000000
--- a/alfa-client/libs/bescheid/src/lib/bescheid-in-vorgang-container/bescheid-in-vorgang-container.component.html
+++ /dev/null
@@ -1,33 +0,0 @@
-<!--
-
-    Copyright (C) 2024 Das Land Schleswig-Holstein vertreten durch den
-    Ministerpräsidenten des Landes Schleswig-Holstein
-    Staatskanzlei
-    Abteilung Digitalisierung und zentrales IT-Management der Landesregierung
-
-    Lizenziert unter der EUPL, Version 1.2 oder - sobald
-    diese von der Europäischen Kommission genehmigt wurden -
-    Folgeversionen der EUPL ("Lizenz");
-    Sie dürfen dieses Werk ausschließlich gemäß
-    dieser Lizenz nutzen.
-    Eine Kopie der Lizenz finden Sie hier:
-
-    https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
-
-    Sofern nicht durch anwendbare Rechtsvorschriften
-    gefordert oder in schriftlicher Form vereinbart, wird
-    die unter der Lizenz verbreitete Software "so wie sie
-    ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN -
-    ausdrücklich oder stillschweigend - verbreitet.
-    Die sprachspezifischen Genehmigungen und Beschränkungen
-    unter der Lizenz sind dem Lizenztext zu entnehmen.
-
--->
-<alfa-bescheid-in-vorgang
-  *ngIf="bescheidStateResource$ | async as bescheidStateResource"
-  data-test-id="bescheid-in-vorgang"
-  [bescheidStateResource]="bescheidStateResource"
-  [bescheidDocumentFile]="bescheidDocumentFile$ | async"
-  [hasBescheidDraft]="hasBescheidDraft"
->
-</alfa-bescheid-in-vorgang>
diff --git a/alfa-client/libs/bescheid/src/lib/bescheid-in-vorgang-container/bescheid-in-vorgang-container.component.spec.ts b/alfa-client/libs/bescheid/src/lib/bescheid-in-vorgang-container/bescheid-in-vorgang-container.component.spec.ts
deleted file mode 100644
index 9e0e0870df4acfdef28672db7215f9eeb5839f8e..0000000000000000000000000000000000000000
--- a/alfa-client/libs/bescheid/src/lib/bescheid-in-vorgang-container/bescheid-in-vorgang-container.component.spec.ts
+++ /dev/null
@@ -1,147 +0,0 @@
-/*
- * Copyright (C) 2024 Das Land Schleswig-Holstein vertreten durch den
- * Ministerpräsidenten des Landes Schleswig-Holstein
- * Staatskanzlei
- * Abteilung Digitalisierung und zentrales IT-Management der Landesregierung
- *
- * Lizenziert unter der EUPL, Version 1.2 oder - sobald
- * diese von der Europäischen Kommission genehmigt wurden -
- * Folgeversionen der EUPL ("Lizenz");
- * Sie dürfen dieses Werk ausschließlich gemäß
- * dieser Lizenz nutzen.
- * Eine Kopie der Lizenz finden Sie hier:
- *
- * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
- *
- * Sofern nicht durch anwendbare Rechtsvorschriften
- * gefordert oder in schriftlicher Form vereinbart, wird
- * die unter der Lizenz verbreitete Software "so wie sie
- * ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN -
- * ausdrücklich oder stillschweigend - verbreitet.
- * Die sprachspezifischen Genehmigungen und Beschränkungen
- * unter der Lizenz sind dem Lizenztext zu entnehmen.
- */
-import { BescheidLinkRel, BescheidResource, BescheidService } from '@alfa-client/bescheid-shared';
-import { StateResource, createStateResource } from '@alfa-client/tech-shared';
-import { Mock, mock } from '@alfa-client/test-utils';
-import { VorgangWithEingangLinkRel, VorgangWithEingangResource } from '@alfa-client/vorgang-shared';
-import { SimpleChanges } from '@angular/core';
-import { ComponentFixture, TestBed } from '@angular/core/testing';
-import { createBescheidResource } from 'libs/bescheid-shared/src/test/bescheid';
-import { createVorgangWithEingangResource } from 'libs/vorgang-shared/test/vorgang';
-import { MockComponent } from 'ng-mocks';
-import { of } from 'rxjs';
-import { BescheidInVorgangContainerComponent } from './bescheid-in-vorgang-container.component';
-import { BescheidInVorgangComponent } from './bescheid-in-vorgang/bescheid-in-vorgang.component';
-
-describe('BescheidInVorgangContainerComponent', () => {
-  let component: BescheidInVorgangContainerComponent;
-  let fixture: ComponentFixture<BescheidInVorgangContainerComponent>;
-
-  let bescheidService: Mock<BescheidService>;
-  const vorgang: VorgangWithEingangResource = createVorgangWithEingangResource();
-
-  const noChanges: SimpleChanges = {};
-  const changes: SimpleChanges = <any>{ vorgang: vorgang };
-
-  const bescheidResource: BescheidResource = createBescheidResource();
-  const bescheidStateResource: StateResource<BescheidResource> =
-    createStateResource(bescheidResource);
-
-  beforeEach(async () => {
-    bescheidService = mock(BescheidService);
-    bescheidService.getBescheidDocumentFile = jest.fn();
-    bescheidService.loadBescheidDocument = jest.fn();
-    bescheidService.getBescheidDraft.mockReturnValue(of(bescheidStateResource));
-
-    await TestBed.configureTestingModule({
-      declarations: [
-        BescheidInVorgangContainerComponent,
-        MockComponent(BescheidInVorgangComponent),
-      ],
-      providers: [{ provide: BescheidService, useValue: bescheidService }],
-    }).compileComponents();
-
-    fixture = TestBed.createComponent(BescheidInVorgangContainerComponent);
-    component = fixture.componentInstance;
-    component.vorgang = vorgang;
-    fixture.detectChanges();
-  });
-
-  it('should create', () => {
-    expect(component).toBeTruthy();
-  });
-
-  describe('hasBescheidDraft', () => {
-    it('should return false', () => {
-      component.vorgang = vorgang;
-
-      expect(component.hasBescheidDraft).toBeFalsy();
-    });
-
-    it('should return true', () => {
-      component.vorgang = createVorgangWithEingangResource([
-        VorgangWithEingangLinkRel.BESCHEID_DRAFT,
-      ]);
-
-      expect(component.hasBescheidDraft).toBeTruthy();
-    });
-  });
-
-  describe('onChanges', () => {
-    it('should not call getBescheid', () => {
-      component.getBescheid = jest.fn();
-
-      component.ngOnChanges(noChanges);
-
-      expect(component.getBescheid).not.toHaveBeenCalled();
-    });
-
-    it('should call getBescheid', () => {
-      component.getBescheid = jest.fn();
-
-      component.ngOnChanges(changes);
-
-      expect(component.getBescheid).toHaveBeenCalled();
-    });
-
-    it('should not call bescheidService.getBescheidDocumentFile', () => {
-      component.ngOnChanges(noChanges);
-
-      expect(bescheidService.getBescheidDocumentFile).not.toHaveBeenCalled();
-    });
-
-    it('should call bescheidService.getBescheidDocumentFile', () => {
-      component.ngOnChanges(changes);
-
-      expect(bescheidService.getBescheidDocumentFile).toHaveBeenCalled();
-    });
-  });
-
-  describe('getBescheid', () => {
-    it('should not call bescheidService.loadBescheidDocumentByUri', (done) => {
-      component.ngOnChanges(changes);
-
-      component.bescheidStateResource$.subscribe(() => {
-        expect(bescheidService.loadBescheidDocumentByUri).not.toHaveBeenCalled();
-        done();
-      });
-    });
-
-    it('should call bescheidService.loadBescheidDocumentByUri', (done) => {
-      const bescheidResource: BescheidResource = createBescheidResource([
-        BescheidLinkRel.BESCHEID_DOCUMENT,
-      ]);
-      const bescheidStateResource: StateResource<BescheidResource> =
-        createStateResource(bescheidResource);
-      bescheidService.getBescheidDraft.mockReturnValue(of(bescheidStateResource));
-
-      component.ngOnChanges(changes);
-
-      component.bescheidStateResource$.subscribe(() => {
-        expect(bescheidService.loadBescheidDocumentByUri).toHaveBeenCalled();
-        done();
-      });
-    });
-  });
-});
diff --git a/alfa-client/libs/bescheid/src/lib/bescheid-in-vorgang-container/bescheid-in-vorgang-container.component.ts b/alfa-client/libs/bescheid/src/lib/bescheid-in-vorgang-container/bescheid-in-vorgang-container.component.ts
deleted file mode 100644
index 97dc8bd587a6a4ece1d5d88c44a283681dc288dd..0000000000000000000000000000000000000000
--- a/alfa-client/libs/bescheid/src/lib/bescheid-in-vorgang-container/bescheid-in-vorgang-container.component.ts
+++ /dev/null
@@ -1,71 +0,0 @@
-/*
- * Copyright (C) 2024 Das Land Schleswig-Holstein vertreten durch den
- * Ministerpräsidenten des Landes Schleswig-Holstein
- * Staatskanzlei
- * Abteilung Digitalisierung und zentrales IT-Management der Landesregierung
- *
- * Lizenziert unter der EUPL, Version 1.2 oder - sobald
- * diese von der Europäischen Kommission genehmigt wurden -
- * Folgeversionen der EUPL ("Lizenz");
- * Sie dürfen dieses Werk ausschließlich gemäß
- * dieser Lizenz nutzen.
- * Eine Kopie der Lizenz finden Sie hier:
- *
- * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
- *
- * Sofern nicht durch anwendbare Rechtsvorschriften
- * gefordert oder in schriftlicher Form vereinbart, wird
- * die unter der Lizenz verbreitete Software "so wie sie
- * ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN -
- * ausdrücklich oder stillschweigend - verbreitet.
- * Die sprachspezifischen Genehmigungen und Beschränkungen
- * unter der Lizenz sind dem Lizenztext zu entnehmen.
- */
-import { BescheidLinkRel, BescheidResource, BescheidService } from '@alfa-client/bescheid-shared';
-import { BinaryFileResource } from '@alfa-client/binary-file-shared';
-import { StateResource } from '@alfa-client/tech-shared';
-import { VorgangResource, VorgangWithEingangLinkRel } from '@alfa-client/vorgang-shared';
-import { Component, Input, OnChanges, SimpleChanges } from '@angular/core';
-import { getUrl, hasLink } from '@ngxp/rest';
-import { has } from 'lodash-es';
-import { Observable, tap } from 'rxjs';
-
-@Component({
-  selector: 'alfa-bescheid-in-vorgang-container',
-  templateUrl: './bescheid-in-vorgang-container.component.html',
-  styles: [],
-})
-export class BescheidInVorgangContainerComponent implements OnChanges {
-  @Input() vorgang: VorgangResource;
-
-  public bescheidStateResource$: Observable<StateResource<BescheidResource>>;
-  public bescheidDocumentFile$: Observable<StateResource<BinaryFileResource>>;
-
-  get hasBescheidDraft(): boolean {
-    return hasLink(this.vorgang, VorgangWithEingangLinkRel.BESCHEID_DRAFT);
-  }
-
-  constructor(private bescheidService: BescheidService) {}
-
-  // TODO Prüfen, warum nicht als Setter möglich. Hatte im ersten Versuch zu Laufzeitfehlern geführt.
-  ngOnChanges(changes: SimpleChanges): void {
-    if (!has(changes, 'vorgang')) {
-      return;
-    }
-
-    this.bescheidStateResource$ = this.getBescheid();
-    this.bescheidDocumentFile$ = this.bescheidService.getBescheidDocumentFile();
-  }
-
-  getBescheid(): Observable<StateResource<BescheidResource>> {
-    return this.bescheidService.getBescheidDraft().pipe(
-      tap((bescheidResource) => {
-        if (hasLink(bescheidResource.resource, BescheidLinkRel.BESCHEID_DOCUMENT)) {
-          this.bescheidService.loadBescheidDocumentByUri(
-            getUrl(bescheidResource.resource, BescheidLinkRel.BESCHEID_DOCUMENT),
-          );
-        }
-      }),
-    );
-  }
-}
diff --git a/alfa-client/libs/bescheid/src/lib/bescheid-in-vorgang-container/bescheid-in-vorgang/bescheid-in-vorgang.component.html b/alfa-client/libs/bescheid/src/lib/bescheid-in-vorgang-container/bescheid-in-vorgang/bescheid-in-vorgang.component.html
deleted file mode 100644
index 8273187344645af3ac5814af70eb389e268283ba..0000000000000000000000000000000000000000
--- a/alfa-client/libs/bescheid/src/lib/bescheid-in-vorgang-container/bescheid-in-vorgang/bescheid-in-vorgang.component.html
+++ /dev/null
@@ -1,41 +0,0 @@
-<!--
-
-    Copyright (C) 2024 Das Land Schleswig-Holstein vertreten durch den
-    Ministerpräsidenten des Landes Schleswig-Holstein
-    Staatskanzlei
-    Abteilung Digitalisierung und zentrales IT-Management der Landesregierung
-
-    Lizenziert unter der EUPL, Version 1.2 oder - sobald
-    diese von der Europäischen Kommission genehmigt wurden -
-    Folgeversionen der EUPL ("Lizenz");
-    Sie dürfen dieses Werk ausschließlich gemäß
-    dieser Lizenz nutzen.
-    Eine Kopie der Lizenz finden Sie hier:
-
-    https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
-
-    Sofern nicht durch anwendbare Rechtsvorschriften
-    gefordert oder in schriftlicher Form vereinbart, wird
-    die unter der Lizenz verbreitete Software "so wie sie
-    ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN -
-    ausdrücklich oder stillschweigend - verbreitet.
-    Die sprachspezifischen Genehmigungen und Beschränkungen
-    unter der Lizenz sind dem Lizenztext zu entnehmen.
-
--->
-<ozgcloud-spinner [stateResource]="bescheidStateResource">
-  <ng-container *ngIf="bescheidStateResource.resource as bescheid">
-    <ozgcloud-expansion-panel headline="Bescheid">
-      <div class="flex max-w-xl flex-col gap-4">
-        <ods-bescheid-status-text [dateText]="bescheid.beschiedenAm | formatFullDatePipe" />
-
-        <alfa-binary-file2-container
-          *ngIf="bescheidDocumentFile.resource && bescheidDocumentFile.loaded"
-          [file]="bescheidDocumentFile.resource"
-          data-test-id="bescheid-document-in-vorgang-binary-file"
-        >
-        </alfa-binary-file2-container>
-      </div>
-    </ozgcloud-expansion-panel>
-  </ng-container>
-</ozgcloud-spinner>
diff --git a/alfa-client/libs/bescheid/src/lib/bescheid-in-vorgang-container/bescheid-in-vorgang/bescheid-in-vorgang.component.spec.ts b/alfa-client/libs/bescheid/src/lib/bescheid-in-vorgang-container/bescheid-in-vorgang/bescheid-in-vorgang.component.spec.ts
deleted file mode 100644
index c68eaca257bb2cc3feaad12ab0cb232a199c0ecc..0000000000000000000000000000000000000000
--- a/alfa-client/libs/bescheid/src/lib/bescheid-in-vorgang-container/bescheid-in-vorgang/bescheid-in-vorgang.component.spec.ts
+++ /dev/null
@@ -1,136 +0,0 @@
-/*
- * Copyright (C) 2024 Das Land Schleswig-Holstein vertreten durch den
- * Ministerpräsidenten des Landes Schleswig-Holstein
- * Staatskanzlei
- * Abteilung Digitalisierung und zentrales IT-Management der Landesregierung
- *
- * Lizenziert unter der EUPL, Version 1.2 oder - sobald
- * diese von der Europäischen Kommission genehmigt wurden -
- * Folgeversionen der EUPL ("Lizenz");
- * Sie dürfen dieses Werk ausschließlich gemäß
- * dieser Lizenz nutzen.
- * Eine Kopie der Lizenz finden Sie hier:
- *
- * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
- *
- * Sofern nicht durch anwendbare Rechtsvorschriften
- * gefordert oder in schriftlicher Form vereinbart, wird
- * die unter der Lizenz verbreitete Software "so wie sie
- * ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN -
- * ausdrücklich oder stillschweigend - verbreitet.
- * Die sprachspezifischen Genehmigungen und Beschränkungen
- * unter der Lizenz sind dem Lizenztext zu entnehmen.
- */
-import { BescheidResource } from '@alfa-client/bescheid-shared';
-import { BinaryFile2ContainerComponent, BinaryFileContainerComponent } from '@alfa-client/binary-file';
-import { BinaryFileResource } from '@alfa-client/binary-file-shared';
-import { StateResource, createStateResource } from '@alfa-client/tech-shared';
-import { existsAsHtmlElement, notExistsAsHtmlElement } from '@alfa-client/test-utils';
-import { ExpansionPanelComponent, SpinnerComponent } from '@alfa-client/ui';
-import { registerLocaleData } from '@angular/common';
-import localeDe from '@angular/common/locales/de';
-import { ComponentFixture, TestBed } from '@angular/core/testing';
-import { FormatFullDatePipe } from 'libs/tech-shared/src/lib/pipe/format-full-date.pipe';
-import { MockComponent } from 'ng-mocks';
-import { createBescheidResource } from '../../../../../bescheid-shared/src/test/bescheid';
-import { createBinaryFileResource } from '../../../../../binary-file-shared/test/binary-file';
-import { getDataTestIdOf } from '../../../../../tech-shared/test/data-test';
-import { BescheidInVorgangComponent } from './bescheid-in-vorgang.component';
-
-import { BescheidStatusTextComponent } from '@ods/system';
-
-registerLocaleData(localeDe);
-
-describe('BescheidInVorgangComponent', () => {
-  let component: BescheidInVorgangComponent;
-  let fixture: ComponentFixture<BescheidInVorgangComponent>;
-
-  const bescheidResource: BescheidResource = createBescheidResource();
-  const bescheidStateResource: StateResource<BescheidResource> = createStateResource(bescheidResource);
-
-  const binaryFile: BinaryFileResource = createBinaryFileResource();
-  const binaryFileStateResource: StateResource<BinaryFileResource> = createStateResource(binaryFile);
-
-  const bescheidDocumentBinaryFileContainer: string = getDataTestIdOf('bescheid-document-in-vorgang-binary-file');
-
-  beforeEach(async () => {
-    await TestBed.configureTestingModule({
-      declarations: [
-        BescheidInVorgangComponent,
-        FormatFullDatePipe,
-        MockComponent(SpinnerComponent),
-        MockComponent(ExpansionPanelComponent),
-        MockComponent(BinaryFileContainerComponent),
-        MockComponent(BescheidStatusTextComponent),
-        MockComponent(BinaryFile2ContainerComponent),
-      ],
-    }).compileComponents();
-
-    fixture = TestBed.createComponent(BescheidInVorgangComponent);
-    component = fixture.componentInstance;
-    component.bescheidStateResource = bescheidStateResource;
-    component.bescheidDocumentFile = binaryFileStateResource;
-    fixture.detectChanges();
-  });
-
-  it('should create', () => {
-    expect(component).toBeTruthy();
-  });
-
-  describe('render', () => {
-    it('should show bescheid document file', () => {
-      component.bescheidDocumentFile = createStateResource(createBinaryFileResource());
-
-      fixture.detectChanges();
-
-      existsAsHtmlElement(fixture, bescheidDocumentBinaryFileContainer);
-    });
-
-    it('should NOT show bescheid document file if resource null', () => {
-      component.bescheidDocumentFile = { ...createStateResource(null), loaded: true };
-
-      fixture.detectChanges();
-
-      notExistsAsHtmlElement(fixture, bescheidDocumentBinaryFileContainer);
-    });
-
-    it('should NOT show bescheid document file if resource loading', () => {
-      component.bescheidDocumentFile = {
-        ...createStateResource(createBinaryFileResource()),
-        loaded: false,
-      };
-
-      fixture.detectChanges();
-
-      notExistsAsHtmlElement(fixture, bescheidDocumentBinaryFileContainer);
-    });
-  });
-
-  describe('bescheidBewilligt', () => {
-    it('should return true', () => {
-      component.bescheidStateResource.resource.bewilligt = true;
-
-      expect(component.bescheidBewilligt).toBeTruthy();
-    });
-
-    it('should return false', () => {
-      component.bescheidStateResource.resource.bewilligt = false;
-
-      expect(component.bescheidBewilligt).toBeFalsy();
-    });
-  });
-
-  describe('bescheidAbgelehnt', () => {
-    it('should return false', () => {
-      component.bescheidStateResource.resource.bewilligt = true;
-
-      expect(component.bescheidAbgelehnt).toBeFalsy();
-    });
-
-    it('should return true', () => {
-      component.bescheidStateResource.resource.bewilligt = false;
-
-      expect(component.bescheidAbgelehnt).toBeTruthy();
-    });
-  });
-});
diff --git a/alfa-client/libs/bescheid/src/lib/bescheid-in-vorgang-container/bescheid-in-vorgang/bescheid-in-vorgang.component.ts b/alfa-client/libs/bescheid/src/lib/bescheid-in-vorgang-container/bescheid-in-vorgang/bescheid-in-vorgang.component.ts
deleted file mode 100644
index cb92b3bebba90cb4bc62d3685519dbc9c29683d5..0000000000000000000000000000000000000000
--- a/alfa-client/libs/bescheid/src/lib/bescheid-in-vorgang-container/bescheid-in-vorgang/bescheid-in-vorgang.component.ts
+++ /dev/null
@@ -1,45 +0,0 @@
-/*
- * Copyright (C) 2024 Das Land Schleswig-Holstein vertreten durch den
- * Ministerpräsidenten des Landes Schleswig-Holstein
- * Staatskanzlei
- * Abteilung Digitalisierung und zentrales IT-Management der Landesregierung
- *
- * Lizenziert unter der EUPL, Version 1.2 oder - sobald
- * diese von der Europäischen Kommission genehmigt wurden -
- * Folgeversionen der EUPL ("Lizenz");
- * Sie dürfen dieses Werk ausschließlich gemäß
- * dieser Lizenz nutzen.
- * Eine Kopie der Lizenz finden Sie hier:
- *
- * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
- *
- * Sofern nicht durch anwendbare Rechtsvorschriften
- * gefordert oder in schriftlicher Form vereinbart, wird
- * die unter der Lizenz verbreitete Software "so wie sie
- * ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN -
- * ausdrücklich oder stillschweigend - verbreitet.
- * Die sprachspezifischen Genehmigungen und Beschränkungen
- * unter der Lizenz sind dem Lizenztext zu entnehmen.
- */
-import { BescheidResource } from '@alfa-client/bescheid-shared';
-import { BinaryFileResource } from '@alfa-client/binary-file-shared';
-import { StateResource } from '@alfa-client/tech-shared';
-import { Component, Input } from '@angular/core';
-
-@Component({
-  selector: 'alfa-bescheid-in-vorgang',
-  templateUrl: './bescheid-in-vorgang.component.html',
-})
-export class BescheidInVorgangComponent {
-  @Input() bescheidStateResource: StateResource<BescheidResource>;
-  @Input() bescheidDocumentFile: StateResource<BinaryFileResource>;
-  @Input() hasBescheidDraft: boolean = false;
-
-  get bescheidBewilligt(): boolean {
-    return <boolean>this.bescheidStateResource.resource.bewilligt;
-  }
-
-  get bescheidAbgelehnt(): boolean {
-    return !this.bescheidBewilligt;
-  }
-}
diff --git a/alfa-client/libs/bescheid/src/lib/bescheid-list-in-vorgang-container/bescheid-list-in-vorgang/document-in-bescheid-container/document-in-bescheid-container.component.spec.ts b/alfa-client/libs/bescheid/src/lib/bescheid-list-in-vorgang-container/bescheid-list-in-vorgang/document-in-bescheid-container/document-in-bescheid-container.component.spec.ts
index 9d003e6fff71a5306124381c873fc1eef9d2b496..d1c390fc0df7df8a30b9463b1d22eeef9b5dcb82 100644
--- a/alfa-client/libs/bescheid/src/lib/bescheid-list-in-vorgang-container/bescheid-list-in-vorgang/document-in-bescheid-container/document-in-bescheid-container.component.spec.ts
+++ b/alfa-client/libs/bescheid/src/lib/bescheid-list-in-vorgang-container/bescheid-list-in-vorgang/document-in-bescheid-container/document-in-bescheid-container.component.spec.ts
@@ -23,22 +23,11 @@
  */
 import { BescheidService } from '@alfa-client/bescheid-shared';
 import { BinaryFileUriContainerComponent } from '@alfa-client/binary-file';
-import {
-  GetUrlPipe,
-  HasLinkPipe,
-  StateResource,
-  createStateResource,
-} from '@alfa-client/tech-shared';
-import {
-  Mock,
-  existsAsHtmlElement,
-  getMockComponent,
-  mock,
-  notExistsAsHtmlElement,
-} from '@alfa-client/test-utils';
+import { createStateResource, GetUrlPipe, HasLinkPipe, StateResource } from '@alfa-client/tech-shared';
+import { existsAsHtmlElement, getMockComponent, Mock, mock, notExistsAsHtmlElement } from '@alfa-client/test-utils';
 import { ComponentFixture, TestBed } from '@angular/core/testing';
 import { faker } from '@faker-js/faker';
-import { ResourceUri, getUrl } from '@ngxp/rest';
+import { getUrl, ResourceUri } from '@ngxp/rest';
 import { AttachmentWrapperComponent } from '@ods/system';
 import { DocumentLinkRel } from 'libs/bescheid-shared/src/lib/document.linkrel';
 import { DocumentResource } from 'libs/bescheid-shared/src/lib/document.model';
@@ -81,7 +70,7 @@ describe('DocumentInBescheidContainerComponent', () => {
     fixture = TestBed.createComponent(DocumentInBescheidContainerComponent);
     component = fixture.componentInstance;
     component.documentUri = documentUri;
-    bescheidService.loadBescheidDocument.mockReturnValue(of(documentStateResource));
+    bescheidService.getBescheidDocumentByUri.mockReturnValue(of(documentStateResource));
     fixture.detectChanges();
   });
 
@@ -93,15 +82,13 @@ describe('DocumentInBescheidContainerComponent', () => {
     it('should call service to load bescheid document', () => {
       component.ngOnInit();
 
-      expect(bescheidService.loadBescheidDocument).toHaveBeenCalledWith(documentUri);
+      expect(bescheidService.getBescheidDocumentByUri).toHaveBeenCalledWith(documentUri);
     });
   });
 
   describe('binary file uri container', () => {
     it('should be visible if link exists on resource', () => {
-      component.documentStateResource$ = of(
-        createStateResource(createDocumentResource([DocumentLinkRel.FILE])),
-      );
+      component.documentStateResource$ = of(createStateResource(createDocumentResource([DocumentLinkRel.FILE])));
 
       fixture.detectChanges();
 
@@ -117,8 +104,10 @@ describe('DocumentInBescheidContainerComponent', () => {
     });
 
     it('should be called with binaryFileUri', () => {
-      const binaryFileUriContainer: BinaryFileUriContainerComponent =
-        getMockComponent<BinaryFileUriContainerComponent>(fixture, BinaryFileUriContainerComponent);
+      const binaryFileUriContainer: BinaryFileUriContainerComponent = getMockComponent<BinaryFileUriContainerComponent>(
+        fixture,
+        BinaryFileUriContainerComponent,
+      );
 
       expect(binaryFileUriContainer.binaryFileUri).toBe(getUrl(document, DocumentLinkRel.FILE));
     });
diff --git a/alfa-client/libs/bescheid/src/lib/bescheid-list-in-vorgang-container/bescheid-list-in-vorgang/document-in-bescheid-container/document-in-bescheid-container.component.ts b/alfa-client/libs/bescheid/src/lib/bescheid-list-in-vorgang-container/bescheid-list-in-vorgang/document-in-bescheid-container/document-in-bescheid-container.component.ts
index d4ff2b232c9cbd6e4a0602dfb8de775b2f6b8634..a99457f2b2edf4a0aeca4060a5e2fbe6588c99bc 100644
--- a/alfa-client/libs/bescheid/src/lib/bescheid-list-in-vorgang-container/bescheid-list-in-vorgang/document-in-bescheid-container/document-in-bescheid-container.component.ts
+++ b/alfa-client/libs/bescheid/src/lib/bescheid-list-in-vorgang-container/bescheid-list-in-vorgang/document-in-bescheid-container/document-in-bescheid-container.component.ts
@@ -43,6 +43,6 @@ export class DocumentInBescheidContainerComponent implements OnInit {
   constructor(private bescheidService: BescheidService) {}
 
   ngOnInit(): void {
-    this.documentStateResource$ = this.bescheidService.loadBescheidDocument(this.documentUri);
+    this.documentStateResource$ = this.bescheidService.getBescheidDocumentByUri(this.documentUri);
   }
 }
diff --git a/alfa-client/libs/bescheid/src/lib/bescheid-wizard-container/bescheid-wizard-container.component.spec.ts b/alfa-client/libs/bescheid/src/lib/bescheid-wizard-container/bescheid-wizard-container.component.spec.ts
index 1fe204ade444f7609bea459484de54ed0ab5a829..ed66740aa800ca2b5243d64b3f60d0b04552e43b 100644
--- a/alfa-client/libs/bescheid/src/lib/bescheid-wizard-container/bescheid-wizard-container.component.spec.ts
+++ b/alfa-client/libs/bescheid/src/lib/bescheid-wizard-container/bescheid-wizard-container.component.spec.ts
@@ -21,19 +21,11 @@
  * Die sprachspezifischen Genehmigungen und Beschränkungen
  * unter der Lizenz sind dem Lizenztext zu entnehmen.
  */
-import { BescheidResource, BescheidWizardDialogResult, BescheidWizardStep } from '@alfa-client/bescheid-shared';
+import { BescheidWizardContainerComponent } from '@alfa-client/bescheid';
+import { BescheidResource, BescheidService, BescheidWizardDialogResult, BescheidWizardStep } from '@alfa-client/bescheid-shared';
 import { CommandOrder, CommandResource } from '@alfa-client/command-shared';
 import { createEmptyStateResource, createStateResource, ESCAPE_KEY, StateResource } from '@alfa-client/tech-shared';
-import {
-  createDialogRefMock,
-  DialogRefMock,
-  existsAsHtmlElement,
-  getElementFromFixtureByType,
-  Mock,
-  mock,
-  triggerEvent,
-  useFromMock,
-} from '@alfa-client/test-utils';
+import { createDialogRefMock, DialogRefMock, existsAsHtmlElement, getElementFromFixtureByType, Mock, mock, triggerEvent, useFromMock, } from '@alfa-client/test-utils';
 import { OzgcloudDialogService } from '@alfa-client/ui';
 import { VorgangWithEingangLinkRel, VorgangWithEingangResource } from '@alfa-client/vorgang-shared';
 import { DIALOG_DATA, DialogRef } from '@angular/cdk/dialog';
@@ -41,20 +33,14 @@ import { ComponentFixture, TestBed } from '@angular/core/testing';
 import { ButtonComponent, CloseIconComponent } from '@ods/system';
 import { MockComponent } from 'ng-mocks';
 import { EMPTY, of } from 'rxjs';
-import { BescheidService2 } from '../../../../bescheid-shared/src/lib/bescheid2.service';
 import { createBescheidResource, createBescheidStateResource } from '../../../../bescheid-shared/src/test/bescheid';
 import { createCommandErrorResource, createSuccessfullyDoneCommandResource } from '../../../../command-shared/test/command';
 import { getDataTestIdAttributeOf, getDataTestIdOf } from '../../../../tech-shared/test/data-test';
 import { singleColdCompleted } from '../../../../tech-shared/test/marbles';
 import { createKeydownKeyboardEvent } from '../../../../test-utils/src/lib/keyboard';
 import { createVorgangWithEingangResource } from '../../../../vorgang-shared/test/vorgang';
-import { BescheidWizardContainerComponent } from './bescheid-wizard-container.component';
 import { BescheidWizardComponent } from './bescheid-wizard/bescheid-wizard.component';
-import {
-  BescheidWizardCancelDialogContainerComponent,
-  CancelWizardDialogData,
-  CancelWizardDialogResult,
-} from './bescheid-wizard/cancel-dialog-container/bescheid-wizard-cancel-dialog-container.component';
+import { BescheidWizardCancelDialogContainerComponent, CancelWizardDialogData, CancelWizardDialogResult, } from './bescheid-wizard/cancel-dialog-container/bescheid-wizard-cancel-dialog-container.component';
 import { BescheidFormService } from './bescheid.formservice';
 
 describe('BescheidWizardContainerComponent', () => {
@@ -64,7 +50,7 @@ describe('BescheidWizardContainerComponent', () => {
   const bescheidWizard: string = getDataTestIdOf('bescheid-wizard');
   const closeButton: string = getDataTestIdAttributeOf('close-bescheid');
 
-  let bescheidService: Mock<BescheidService2>;
+  let bescheidService: Mock<BescheidService>;
   let ozgcloudDialogService: Mock<OzgcloudDialogService>;
   let formService: Mock<BescheidFormService>;
   let wizardDialogRef: DialogRefMock<BescheidWizardDialogResult>;
@@ -72,7 +58,7 @@ describe('BescheidWizardContainerComponent', () => {
   const vorgangWithEingangResource: VorgangWithEingangResource = createVorgangWithEingangResource();
 
   beforeEach(() => {
-    bescheidService = mock(BescheidService2);
+    bescheidService = mock(BescheidService);
     bescheidService.getBescheidCreated.mockReturnValue(EMPTY);
     ozgcloudDialogService = mock(OzgcloudDialogService);
     formService = mock(BescheidFormService);
@@ -105,7 +91,7 @@ describe('BescheidWizardContainerComponent', () => {
           useValue: { vorgangWithEingangResource },
         },
         {
-          provide: BescheidService2,
+          provide: BescheidService,
           useValue: bescheidService,
         },
         {
diff --git a/alfa-client/libs/bescheid/src/lib/bescheid-wizard-container/bescheid-wizard-container.component.ts b/alfa-client/libs/bescheid/src/lib/bescheid-wizard-container/bescheid-wizard-container.component.ts
index cba4185d1a3d6805f5291ad6972c11965ed40fc5..75bf0b0c07f51e508304f2b353af195b6bc97254 100644
--- a/alfa-client/libs/bescheid/src/lib/bescheid-wizard-container/bescheid-wizard-container.component.ts
+++ b/alfa-client/libs/bescheid/src/lib/bescheid-wizard-container/bescheid-wizard-container.component.ts
@@ -21,18 +21,16 @@
  * Die sprachspezifischen Genehmigungen und Beschränkungen
  * unter der Lizenz sind dem Lizenztext zu entnehmen.
  */
-import { BescheidResource, BescheidWizardDialogResult, BescheidWizardStep } from '@alfa-client/bescheid-shared';
-import { CommandOrder, CommandResource, CommandService, isSuccessfulDone } from '@alfa-client/command-shared';
-import { createEmptyStateResource, isEscapeKey, isNotLoading, isNotNil, ResourceRepository, StateResource, } from '@alfa-client/tech-shared';
+import { BescheidResource, BescheidService, BescheidWizardDialogResult, BescheidWizardStep } from '@alfa-client/bescheid-shared';
+import { CommandOrder, CommandResource, isSuccessfulDone } from '@alfa-client/command-shared';
+import { createEmptyStateResource, isEscapeKey, isNotLoading, isNotNil, StateResource } from '@alfa-client/tech-shared';
 import { OzgcloudDialogService } from '@alfa-client/ui';
-import { VorgangService, VorgangWithEingangLinkRel, VorgangWithEingangResource } from '@alfa-client/vorgang-shared';
+import { VorgangWithEingangLinkRel, VorgangWithEingangResource } from '@alfa-client/vorgang-shared';
 import { getEmpfaenger } from '@alfa-client/vorgang-shared-ui';
 import { DIALOG_DATA, DialogRef } from '@angular/cdk/dialog';
 import { Component, inject, OnDestroy, OnInit, ViewContainerRef } from '@angular/core';
 import { hasLink } from '@ngxp/rest';
-import { BescheidResourceService, createBescheidResourceService } from 'libs/bescheid-shared/src/lib/bescheid-resource-service';
 import { filter, first, Observable, of, Subscription, switchMap } from 'rxjs';
-import { BescheidService2 } from '../../../../bescheid-shared/src/lib/bescheid2.service';
 import { BescheidWizardCancelDialogContainerComponent, CancelWizardDialogData, CancelWizardDialogResult, } from './bescheid-wizard/cancel-dialog-container/bescheid-wizard-cancel-dialog-container.component';
 import { BescheidFormService } from './bescheid.formservice';
 
@@ -43,18 +41,10 @@ export interface BescheidWizardDialogData {
 @Component({
   selector: 'alfa-bescheid-wizard-container',
   templateUrl: './bescheid-wizard-container.component.html',
-  providers: [
-    BescheidFormService,
-    BescheidService2,
-    {
-      provide: BescheidResourceService,
-      useFactory: createBescheidResourceService,
-      deps: [ResourceRepository, CommandService, VorgangService],
-    },
-  ],
+  providers: [BescheidFormService],
 })
 export class BescheidWizardContainerComponent implements OnInit, OnDestroy {
-  private readonly bescheidService = inject(BescheidService2);
+  private readonly bescheidService = inject(BescheidService);
   private readonly ozgcloudDialogService = inject(OzgcloudDialogService);
   private readonly dialogData: BescheidWizardDialogData = inject(DIALOG_DATA);
   private readonly dialogRef = inject(DialogRef<BescheidWizardDialogResult>);
diff --git a/alfa-client/libs/bescheid/src/lib/bescheid-wizard-container/bescheid-wizard/antrag-bescheiden/abschliessen-dialog-container/bescheid-wizard-abschliessen-dialog-container.component.spec.ts b/alfa-client/libs/bescheid/src/lib/bescheid-wizard-container/bescheid-wizard/antrag-bescheiden/abschliessen-dialog-container/bescheid-wizard-abschliessen-dialog-container.component.spec.ts
index df6b0e09d088b27f5601ba9b12abf43363b8a0a7..176d402990d293f01afab28575a5d1d0dce49a32 100644
--- a/alfa-client/libs/bescheid/src/lib/bescheid-wizard-container/bescheid-wizard/antrag-bescheiden/abschliessen-dialog-container/bescheid-wizard-abschliessen-dialog-container.component.spec.ts
+++ b/alfa-client/libs/bescheid/src/lib/bescheid-wizard-container/bescheid-wizard/antrag-bescheiden/abschliessen-dialog-container/bescheid-wizard-abschliessen-dialog-container.component.spec.ts
@@ -21,7 +21,7 @@
  * Die sprachspezifischen Genehmigungen und Beschränkungen
  * unter der Lizenz sind dem Lizenztext zu entnehmen.
  */
-import { BescheidResource } from '@alfa-client/bescheid-shared';
+import { BescheidResource, BescheidService } from '@alfa-client/bescheid-shared';
 import { CommandResource } from '@alfa-client/command-shared';
 import { StateResource } from '@alfa-client/tech-shared';
 import { createDialogRefMock, DialogRefMock, getElementComponentFromFixtureByCss, mock, Mock, triggerEvent, } from '@alfa-client/test-utils';
@@ -32,7 +32,6 @@ import { ComponentFixture, TestBed } from '@angular/core/testing';
 import { MatIcon } from '@angular/material/icon';
 import { MockComponent } from 'ng-mocks';
 import { of } from 'rxjs';
-import { BescheidService2 } from '../../../../../../../bescheid-shared/src/lib/bescheid2.service';
 import { createBescheidResource } from '../../../../../../../bescheid-shared/src/test/bescheid';
 import { createSuccessfullyDoneCommandStateResource } from '../../../../../../../command-shared/test/command';
 import { getDataTestIdOf } from '../../../../../../../tech-shared/test/data-test';
@@ -52,10 +51,10 @@ describe('BescheidWizardAbschliessenDialogContainerComponent', () => {
   const dialogData: AbschliessenDialogData = { vorgangWithEingangResource, bescheidResource };
 
   let dialogRef: DialogRefMock;
-  let bescheidService: Mock<BescheidService2>;
+  let bescheidService: Mock<BescheidService>;
 
   beforeEach(() => {
-    bescheidService = mock(BescheidService2);
+    bescheidService = mock(BescheidService);
     dialogRef = createDialogRefMock();
   });
 
@@ -76,7 +75,7 @@ describe('BescheidWizardAbschliessenDialogContainerComponent', () => {
           useValue: dialogRef,
         },
         {
-          provide: BescheidService2,
+          provide: BescheidService,
           useValue: bescheidService,
         },
       ],
diff --git a/alfa-client/libs/bescheid/src/lib/bescheid-wizard-container/bescheid-wizard/antrag-bescheiden/abschliessen-dialog-container/bescheid-wizard-abschliessen-dialog-container.component.ts b/alfa-client/libs/bescheid/src/lib/bescheid-wizard-container/bescheid-wizard/antrag-bescheiden/abschliessen-dialog-container/bescheid-wizard-abschliessen-dialog-container.component.ts
index 5a8ace4040ce03c2e7cff5f2efc3f24877d0f201..b420406bed82120b5f314a766ded532bdc413b9e 100644
--- a/alfa-client/libs/bescheid/src/lib/bescheid-wizard-container/bescheid-wizard/antrag-bescheiden/abschliessen-dialog-container/bescheid-wizard-abschliessen-dialog-container.component.ts
+++ b/alfa-client/libs/bescheid/src/lib/bescheid-wizard-container/bescheid-wizard/antrag-bescheiden/abschliessen-dialog-container/bescheid-wizard-abschliessen-dialog-container.component.ts
@@ -21,7 +21,7 @@
  * Die sprachspezifischen Genehmigungen und Beschränkungen
  * unter der Lizenz sind dem Lizenztext zu entnehmen.
  */
-import { BescheidResource } from '@alfa-client/bescheid-shared';
+import { BescheidResource, BescheidService } from '@alfa-client/bescheid-shared';
 import { CommandResource, tapOnCommandSuccessfullyDone } from '@alfa-client/command-shared';
 import { StateResource } from '@alfa-client/tech-shared';
 import { createDialogResult } from '@alfa-client/ui';
@@ -29,7 +29,6 @@ import { VorgangWithEingangResource } from '@alfa-client/vorgang-shared';
 import { DIALOG_DATA, DialogRef } from '@angular/cdk/dialog';
 import { Component, inject } from '@angular/core';
 import { Observable } from 'rxjs';
-import { BescheidService2 } from '../../../../../../../bescheid-shared/src/lib/bescheid2.service';
 
 export interface AbschliessenDialogData {
   vorgangWithEingangResource: VorgangWithEingangResource;
@@ -43,7 +42,7 @@ export interface AbschliessenDialogData {
 export class BescheidWizardAbschliessenDialogContainerComponent {
   private readonly dialogData: AbschliessenDialogData = inject(DIALOG_DATA);
   private readonly dialogRef = inject(DialogRef);
-  private readonly bescheidService = inject(BescheidService2);
+  private readonly bescheidService = inject(BescheidService);
 
   public abschliessen$: Observable<StateResource<CommandResource>>;
 
diff --git a/alfa-client/libs/bescheid/src/lib/bescheid-wizard-container/bescheid-wizard/antrag-bescheiden/bescheid-wizard-antrag-bescheiden-container.component.spec.ts b/alfa-client/libs/bescheid/src/lib/bescheid-wizard-container/bescheid-wizard/antrag-bescheiden/bescheid-wizard-antrag-bescheiden-container.component.spec.ts
index d3452acaabaa91d8cced04afc925138dd1d2d546..44b1340298c7853918997126eb57c715dbd6ecf7 100644
--- a/alfa-client/libs/bescheid/src/lib/bescheid-wizard-container/bescheid-wizard/antrag-bescheiden/bescheid-wizard-antrag-bescheiden-container.component.spec.ts
+++ b/alfa-client/libs/bescheid/src/lib/bescheid-wizard-container/bescheid-wizard/antrag-bescheiden/bescheid-wizard-antrag-bescheiden-container.component.spec.ts
@@ -21,11 +21,11 @@
  * Die sprachspezifischen Genehmigungen und Beschränkungen
  * unter der Lizenz sind dem Lizenztext zu entnehmen.
  */
+import { BescheidService } from '@alfa-client/bescheid-shared';
 import { existsAsHtmlElement, getElementFromFixtureByType, Mock, mock, triggerEvent, useFromMock } from '@alfa-client/test-utils';
 import { EventEmitter } from '@angular/core';
 import { ComponentFixture, TestBed } from '@angular/core/testing';
 import { MockComponent } from 'ng-mocks';
-import { BescheidService2 } from '../../../../../../bescheid-shared/src/lib/bescheid2.service';
 import { createBescheidResource } from '../../../../../../bescheid-shared/src/test/bescheid';
 import { getDataTestIdOf } from '../../../../../../tech-shared/test/data-test';
 import { createVorgangWithEingangResource } from '../../../../../../vorgang-shared/test/vorgang';
@@ -47,10 +47,10 @@ describe('BescheidWizardAntragBescheidenComponent', () => {
   const abschliessenButton: string = getDataTestIdOf('wizard-abschliessen-button');
   const antragBescheidenSummary: string = getDataTestIdOf('antrag-bescheiden-summary');
 
-  let bescheidService: Mock<BescheidService2>;
+  let bescheidService: Mock<BescheidService>;
 
   beforeEach(() => {
-    bescheidService = mock(BescheidService2);
+    bescheidService = mock(BescheidService);
   });
 
   beforeEach(async () => {
@@ -67,7 +67,7 @@ describe('BescheidWizardAntragBescheidenComponent', () => {
       ],
       providers: [
         {
-          provide: BescheidService2,
+          provide: BescheidService,
           useValue: bescheidService,
         },
       ],
diff --git a/alfa-client/libs/bescheid/src/lib/bescheid-wizard-container/bescheid-wizard/antrag-bescheiden/bescheid-wizard-antrag-bescheiden-container.component.ts b/alfa-client/libs/bescheid/src/lib/bescheid-wizard-container/bescheid-wizard/antrag-bescheiden/bescheid-wizard-antrag-bescheiden-container.component.ts
index 9837cbe2bca5ed1e8ff4f9674d10895c476d7faf..c7a230663a49cf616a2d6429527f2c28a23a0af6 100644
--- a/alfa-client/libs/bescheid/src/lib/bescheid-wizard-container/bescheid-wizard/antrag-bescheiden/bescheid-wizard-antrag-bescheiden-container.component.ts
+++ b/alfa-client/libs/bescheid/src/lib/bescheid-wizard-container/bescheid-wizard/antrag-bescheiden/bescheid-wizard-antrag-bescheiden-container.component.ts
@@ -21,10 +21,9 @@
  * Die sprachspezifischen Genehmigungen und Beschränkungen
  * unter der Lizenz sind dem Lizenztext zu entnehmen.
  */
-import { BescheidResource, BescheidWizardStep } from '@alfa-client/bescheid-shared';
+import { BescheidResource, BescheidService, BescheidWizardStep } from '@alfa-client/bescheid-shared';
 import { VorgangWithEingangResource } from '@alfa-client/vorgang-shared';
 import { Component, EventEmitter, inject, Input, Output } from '@angular/core';
-import { BescheidService2 } from '../../../../../../bescheid-shared/src/lib/bescheid2.service';
 
 @Component({
   selector: 'alfa-bescheid-wizard-antrag-bescheiden-container',
@@ -36,7 +35,7 @@ export class BescheidWizardAntragBescheidenContainerComponent {
 
   @Output() vorgangAbgeschlossen: EventEmitter<void> = new EventEmitter<void>();
 
-  private readonly bescheidService = inject(BescheidService2);
+  private readonly bescheidService = inject(BescheidService);
 
   public readonly BescheidWizardStep = BescheidWizardStep;
 
diff --git a/alfa-client/libs/bescheid/src/lib/bescheid-wizard-container/bescheid-wizard/antrag-bescheiden/form/bescheid-wizard-antrag-bescheiden-form.component.spec.ts b/alfa-client/libs/bescheid/src/lib/bescheid-wizard-container/bescheid-wizard/antrag-bescheiden/form/bescheid-wizard-antrag-bescheiden-form.component.spec.ts
index fc15a7f9282febbd25179f0b255a5781234bfb86..17cafdfc31404bd5b48a694aac2cb4886ffa039b 100644
--- a/alfa-client/libs/bescheid/src/lib/bescheid-wizard-container/bescheid-wizard/antrag-bescheiden/form/bescheid-wizard-antrag-bescheiden-form.component.spec.ts
+++ b/alfa-client/libs/bescheid/src/lib/bescheid-wizard-container/bescheid-wizard/antrag-bescheiden/form/bescheid-wizard-antrag-bescheiden-form.component.spec.ts
@@ -21,7 +21,7 @@
  * Die sprachspezifischen Genehmigungen und Beschränkungen
  * unter der Lizenz sind dem Lizenztext zu entnehmen.
  */
-import { BescheidLinkRel } from '@alfa-client/bescheid-shared';
+import { BescheidLinkRel, BescheidService } from '@alfa-client/bescheid-shared';
 import { CommandResource } from '@alfa-client/command-shared';
 import { createEmptyStateResource, HasLinkPipe, StateResource } from '@alfa-client/tech-shared';
 import { existsAsHtmlElement, getElementFromFixtureByType, mock, notExistsAsHtmlElement, triggerEvent, useFromMock, } from '@alfa-client/test-utils';
@@ -33,7 +33,6 @@ import { ReactiveFormsModule, UntypedFormBuilder } from '@angular/forms';
 import { CloseIconComponent, RadioButtonCardComponent, StampIconComponent } from '@ods/system';
 import { MockComponent } from 'ng-mocks';
 import { EMPTY, of } from 'rxjs';
-import { BescheidService2 } from '../../../../../../../bescheid-shared/src/lib/bescheid2.service';
 import { createBescheidResource } from '../../../../../../../bescheid-shared/src/test/bescheid';
 import { createSuccessfullyDoneCommandStateResource } from '../../../../../../../command-shared/test/command';
 import { getDataTestIdOf } from '../../../../../../../tech-shared/test/data-test';
@@ -52,7 +51,7 @@ describe('BescheidWizardAntragBescheidenFormComponent', () => {
   let formService: BescheidFormService;
 
   beforeEach(async () => {
-    formService = new BescheidFormService(new UntypedFormBuilder(), useFromMock(mock(BescheidService2)));
+    formService = new BescheidFormService(new UntypedFormBuilder(), useFromMock(mock(BescheidService)));
     formService.submit = jest.fn().mockReturnValue(EMPTY);
 
     await TestBed.configureTestingModule({
diff --git a/alfa-client/libs/bescheid/src/lib/bescheid-wizard-container/bescheid-wizard/bescheid-versenden/bescheid-wizard-bescheid-versenden-container.component.spec.ts b/alfa-client/libs/bescheid/src/lib/bescheid-wizard-container/bescheid-wizard/bescheid-versenden/bescheid-wizard-bescheid-versenden-container.component.spec.ts
index abdb3be7cef699e775c5bbc324911d1ef71b7127..2c380d39800c54ee08bb2df2ccf0cbf8772454de 100644
--- a/alfa-client/libs/bescheid/src/lib/bescheid-wizard-container/bescheid-wizard/bescheid-versenden/bescheid-wizard-bescheid-versenden-container.component.spec.ts
+++ b/alfa-client/libs/bescheid/src/lib/bescheid-wizard-container/bescheid-wizard/bescheid-versenden/bescheid-wizard-bescheid-versenden-container.component.spec.ts
@@ -1,9 +1,8 @@
-import { BescheidResource, BescheidSendBy, BescheidWizardStep, Wizard } from '@alfa-client/bescheid-shared';
+import { BescheidResource, BescheidSendBy, BescheidService, BescheidWizardStep, Wizard } from '@alfa-client/bescheid-shared';
 import { existsAsHtmlElement, getElementComponentFromFixtureByCss, mock, Mock, triggerEvent } from '@alfa-client/test-utils';
 import { ComponentFixture, TestBed } from '@angular/core/testing';
 import { MockComponent } from 'ng-mocks';
 import { of } from 'rxjs';
-import { BescheidService2 } from '../../../../../../bescheid-shared/src/lib/bescheid2.service';
 import { createBescheidResource, createWizard } from '../../../../../../bescheid-shared/src/test/bescheid';
 import { getDataTestIdOf } from '../../../../../../tech-shared/test/data-test';
 import { singleColdCompleted } from '../../../../../../tech-shared/test/marbles';
@@ -26,10 +25,10 @@ describe('BescheidWizardBescheidVersendenComponent', () => {
 
   const bescheidResource: BescheidResource = createBescheidResource();
 
-  let bescheidService: Mock<BescheidService2>;
+  let bescheidService: Mock<BescheidService>;
 
   beforeEach(() => {
-    bescheidService = mock(BescheidService2);
+    bescheidService = mock(BescheidService);
   });
 
   beforeEach(async () => {
@@ -42,7 +41,7 @@ describe('BescheidWizardBescheidVersendenComponent', () => {
         MockComponent(BescheidWizardSummaryComponent),
         MockComponent(BescheidWizardBescheidVersendenSummaryComponent),
       ],
-      providers: [{ provide: BescheidService2, useValue: bescheidService }],
+      providers: [{ provide: BescheidService, useValue: bescheidService }],
     }).compileComponents();
 
     createComponent();
diff --git a/alfa-client/libs/bescheid/src/lib/bescheid-wizard-container/bescheid-wizard/bescheid-versenden/bescheid-wizard-bescheid-versenden-container.component.ts b/alfa-client/libs/bescheid/src/lib/bescheid-wizard-container/bescheid-wizard/bescheid-versenden/bescheid-wizard-bescheid-versenden-container.component.ts
index 70408d0b23afb74630248f0a140e07f8f0ccf60a..d1bbf807849412342cc64563b8a77f8b84be271f 100644
--- a/alfa-client/libs/bescheid/src/lib/bescheid-wizard-container/bescheid-wizard/bescheid-versenden/bescheid-wizard-bescheid-versenden-container.component.ts
+++ b/alfa-client/libs/bescheid/src/lib/bescheid-wizard-container/bescheid-wizard/bescheid-versenden/bescheid-wizard-bescheid-versenden-container.component.ts
@@ -1,7 +1,6 @@
-import { BescheidResource, BescheidSendBy, BescheidWizardStep, Wizard } from '@alfa-client/bescheid-shared';
+import { BescheidResource, BescheidSendBy, BescheidService, BescheidWizardStep, Wizard } from '@alfa-client/bescheid-shared';
 import { Component, inject, Input } from '@angular/core';
 import { Observable } from 'rxjs';
-import { BescheidService2 } from '../../../../../../bescheid-shared/src/lib/bescheid2.service';
 
 @Component({
   selector: 'alfa-bescheid-wizard-bescheid-versenden-container',
@@ -17,7 +16,7 @@ export class BescheidWizardBescheidVersendenContainerComponent {
     return this._bescheidResource;
   }
 
-  private readonly bescheidService: BescheidService2 = inject(BescheidService2);
+  private readonly bescheidService: BescheidService = inject(BescheidService);
 
   public readonly wizard$: Observable<Wizard> = this.bescheidService.getWizard();
 
diff --git a/alfa-client/libs/bescheid/src/lib/bescheid-wizard-container/bescheid-wizard/bescheid-versenden/summary/senden/bescheid-wizard-bescheid-versenden-senden.component.spec.ts b/alfa-client/libs/bescheid/src/lib/bescheid-wizard-container/bescheid-wizard/bescheid-versenden/summary/senden/bescheid-wizard-bescheid-versenden-senden.component.spec.ts
index 3f2dd5b69457b1b28b56291e838c633fc17b120f..f26bf0b030c3f4e2ce0e4eab50433c485302069c 100644
--- a/alfa-client/libs/bescheid/src/lib/bescheid-wizard-container/bescheid-wizard/bescheid-versenden/summary/senden/bescheid-wizard-bescheid-versenden-senden.component.spec.ts
+++ b/alfa-client/libs/bescheid/src/lib/bescheid-wizard-container/bescheid-wizard/bescheid-versenden/summary/senden/bescheid-wizard-bescheid-versenden-senden.component.spec.ts
@@ -1,4 +1,4 @@
-import { BescheidLinkRel, BescheidWizardDialogResult } from '@alfa-client/bescheid-shared';
+import { BescheidLinkRel, BescheidService, BescheidWizardDialogResult } from '@alfa-client/bescheid-shared';
 import { BinaryFileListContainerComponent } from '@alfa-client/binary-file';
 import {
   createEmptyStateResource,
@@ -14,7 +14,6 @@ import { expect } from '@jest/globals';
 import { ButtonWithSpinnerComponent, TextareaEditorComponent, TextEditorComponent } from '@ods/component';
 import { MockComponent } from 'ng-mocks';
 import { EMPTY, of } from 'rxjs';
-import { BescheidService2 } from '../../../../../../../../bescheid-shared/src/lib/bescheid2.service';
 import { createBescheidResource, createWizard } from '../../../../../../../../bescheid-shared/src/test/bescheid';
 import { createSuccessfullyDoneCommandStateResource } from '../../../../../../../../command-shared/test/command';
 import { getDataTestIdOf } from '../../../../../../../../tech-shared/test/data-test';
@@ -31,12 +30,12 @@ describe('BescheidWizardBescheidVersendenSendenComponent', () => {
   const attachmentsTestId: string = getDataTestIdOf('bescheid-attachments');
   const empfaengerTestId: string = getDataTestIdOf('bescheid-nachricht-empfaenger');
 
-  let bescheidService: Mock<BescheidService2>;
+  let bescheidService: Mock<BescheidService>;
   let formService: BescheidFormService;
   let dialogRef: Mock<DialogRef<BescheidWizardDialogResult>>;
 
   beforeEach(() => {
-    bescheidService = mock(BescheidService2);
+    bescheidService = mock(BescheidService);
     formService = new BescheidFormService(new FormBuilder(), useFromMock(bescheidService));
     formService.submit = jest.fn();
     dialogRef = mock(DialogRef<BescheidWizardDialogResult>);
diff --git a/alfa-client/libs/bescheid/src/lib/bescheid-wizard-container/bescheid-wizard/bescheid-wizard.component.spec.ts b/alfa-client/libs/bescheid/src/lib/bescheid-wizard-container/bescheid-wizard/bescheid-wizard.component.spec.ts
index c818a3613876e7b6533d508d5714fbbfa5881330..93aeea17c15dd88b2a0cd57455c972025c297de7 100644
--- a/alfa-client/libs/bescheid/src/lib/bescheid-wizard-container/bescheid-wizard/bescheid-wizard.component.spec.ts
+++ b/alfa-client/libs/bescheid/src/lib/bescheid-wizard-container/bescheid-wizard/bescheid-wizard.component.spec.ts
@@ -21,23 +21,9 @@
  * Die sprachspezifischen Genehmigungen und Beschränkungen
  * unter der Lizenz sind dem Lizenztext zu entnehmen.
  */
-import { BescheidResource, BescheidWizardStep } from '@alfa-client/bescheid-shared';
-import {
-  createEmptyStateResource,
-  createErrorStateResource,
-  createLoadingStateResource,
-  HasLinkPipe,
-  StateResource,
-} from '@alfa-client/tech-shared';
-import {
-  existsAsHtmlElement,
-  getElementComponentFromFixtureByCss,
-  Mock,
-  mock,
-  notExistsAsHtmlElement,
-  triggerEvent,
-  useFromMock,
-} from '@alfa-client/test-utils';
+import { BescheidResource, BescheidService, BescheidWizardStep } from '@alfa-client/bescheid-shared';
+import { createEmptyStateResource, createErrorStateResource, createLoadingStateResource, HasLinkPipe, StateResource, } from '@alfa-client/tech-shared';
+import { existsAsHtmlElement, getElementComponentFromFixtureByCss, Mock, mock, notExistsAsHtmlElement, triggerEvent, useFromMock, } from '@alfa-client/test-utils';
 import { SpinnerComponent } from '@alfa-client/ui';
 import { VorgangWithEingangLinkRel } from '@alfa-client/vorgang-shared';
 import { EventEmitter } from '@angular/core';
@@ -45,7 +31,6 @@ import { ComponentFixture, TestBed } from '@angular/core/testing';
 import { ReactiveFormsModule, UntypedFormBuilder } from '@angular/forms';
 import { expect } from '@jest/globals';
 import { MockComponent } from 'ng-mocks';
-import { BescheidService2 } from '../../../../../bescheid-shared/src/lib/bescheid2.service';
 import { createBescheidResource, createBescheidStateResource } from '../../../../../bescheid-shared/src/test/bescheid';
 import { getDataTestIdOf } from '../../../../../tech-shared/test/data-test';
 import { createProblemDetail } from '../../../../../tech-shared/test/error';
@@ -66,11 +51,11 @@ describe('BescheidWizardComponent', () => {
   const dokumenteHochladenStep: string = getDataTestIdOf('dokumente-hochladen-step');
   const bescheidVersendenStepTestId: string = getDataTestIdOf('bescheid-versenden-step');
 
-  let bescheidService: Mock<BescheidService2>;
+  let bescheidService: Mock<BescheidService>;
   let formService: BescheidFormService;
 
   beforeEach(() => {
-    bescheidService = mock(BescheidService2);
+    bescheidService = mock(BescheidService);
     formService = new BescheidFormService(new UntypedFormBuilder(), useFromMock(bescheidService));
   });
 
diff --git a/alfa-client/libs/bescheid/src/lib/bescheid-wizard-container/bescheid-wizard/cancel-dialog-container/bescheid-wizard-cancel-dialog-container.component.spec.ts b/alfa-client/libs/bescheid/src/lib/bescheid-wizard-container/bescheid-wizard/cancel-dialog-container/bescheid-wizard-cancel-dialog-container.component.spec.ts
index 47aa453fd30472816900af6f9f3c15c74063a05d..54f6e363e26b5372102bc8be397585cae8b839f5 100644
--- a/alfa-client/libs/bescheid/src/lib/bescheid-wizard-container/bescheid-wizard/cancel-dialog-container/bescheid-wizard-cancel-dialog-container.component.spec.ts
+++ b/alfa-client/libs/bescheid/src/lib/bescheid-wizard-container/bescheid-wizard/cancel-dialog-container/bescheid-wizard-cancel-dialog-container.component.spec.ts
@@ -21,23 +21,15 @@
  * Die sprachspezifischen Genehmigungen und Beschränkungen
  * unter der Lizenz sind dem Lizenztext zu entnehmen.
  */
+import { BescheidService } from '@alfa-client/bescheid-shared';
 import { CommandResource } from '@alfa-client/command-shared';
 import { createErrorStateResource, StateResource } from '@alfa-client/tech-shared';
-import {
-  createDialogRefMock,
-  DialogRefMock,
-  existsAsHtmlElement,
-  getElementComponentFromFixtureByCss,
-  Mock,
-  mock,
-  triggerEvent,
-} from '@alfa-client/test-utils';
+import { createDialogRefMock, DialogRefMock, existsAsHtmlElement, getElementComponentFromFixtureByCss, Mock, mock, triggerEvent, } from '@alfa-client/test-utils';
 import { DIALOG_DATA, DialogRef } from '@angular/cdk/dialog';
 import { ComponentFixture, TestBed } from '@angular/core/testing';
 import { expect } from '@jest/globals';
 import { ButtonWithSpinnerComponent } from '@ods/component';
 import { CheckIconComponent, CloseIconComponent } from '@ods/system';
-import { BescheidService2 } from 'libs/bescheid-shared/src/lib/bescheid2.service';
 import { createBescheidResource } from 'libs/bescheid-shared/src/test/bescheid';
 import { createCommandStateResource, createSuccessfullyDoneCommandStateResource } from 'libs/command-shared/test/command';
 import { getDataTestIdAttributeOf } from 'libs/tech-shared/test/data-test';
@@ -46,10 +38,7 @@ import { singleColdCompleted } from 'libs/tech-shared/test/marbles';
 import { MockComponent } from 'ng-mocks';
 import { EMPTY, of } from 'rxjs';
 import { BescheidFormService } from '../../bescheid.formservice';
-import {
-  BescheidWizardCancelDialogContainerComponent,
-  CancelWizardDialogData,
-} from './bescheid-wizard-cancel-dialog-container.component';
+import { BescheidWizardCancelDialogContainerComponent, CancelWizardDialogData, } from './bescheid-wizard-cancel-dialog-container.component';
 
 describe('BescheidWizardCancelDialogContainerComponent', () => {
   let component: BescheidWizardCancelDialogContainerComponent;
@@ -63,13 +52,13 @@ describe('BescheidWizardCancelDialogContainerComponent', () => {
   };
 
   let formService: Mock<BescheidFormService>;
-  let bescheidService: Mock<BescheidService2>;
+  let bescheidService: Mock<BescheidService>;
   let dialogRef: DialogRefMock;
 
   beforeEach(() => {
     formService = mock(BescheidFormService);
     formService.submit = jest.fn().mockReturnValue(EMPTY);
-    bescheidService = mock(BescheidService2);
+    bescheidService = mock(BescheidService);
     bescheidService.deleteBescheid.mockReturnValue(EMPTY);
     dialogRef = createDialogRefMock();
   });
@@ -84,7 +73,7 @@ describe('BescheidWizardCancelDialogContainerComponent', () => {
       ],
       providers: [
         {
-          provide: BescheidService2,
+          provide: BescheidService,
           useValue: bescheidService,
         },
         {
diff --git a/alfa-client/libs/bescheid/src/lib/bescheid-wizard-container/bescheid-wizard/cancel-dialog-container/bescheid-wizard-cancel-dialog-container.component.ts b/alfa-client/libs/bescheid/src/lib/bescheid-wizard-container/bescheid-wizard/cancel-dialog-container/bescheid-wizard-cancel-dialog-container.component.ts
index 2b2ee2327c607f41cc889b00a62c84ff3b9560b2..e230e5d3b832b550dd2e99035e02bf44f9e4f5cf 100644
--- a/alfa-client/libs/bescheid/src/lib/bescheid-wizard-container/bescheid-wizard/cancel-dialog-container/bescheid-wizard-cancel-dialog-container.component.ts
+++ b/alfa-client/libs/bescheid/src/lib/bescheid-wizard-container/bescheid-wizard/cancel-dialog-container/bescheid-wizard-cancel-dialog-container.component.ts
@@ -21,14 +21,13 @@
  * Die sprachspezifischen Genehmigungen und Beschränkungen
  * unter der Lizenz sind dem Lizenztext zu entnehmen.
  */
-import { BescheidResource } from '@alfa-client/bescheid-shared';
+import { BescheidResource, BescheidService } from '@alfa-client/bescheid-shared';
 import { tapOnCommandSuccessfullyDone } from '@alfa-client/command-shared';
 import { isNotNil, StateResource } from '@alfa-client/tech-shared';
 import { DIALOG_DATA, DialogRef } from '@angular/cdk/dialog';
 import { Component, inject, OnDestroy, OnInit } from '@angular/core';
 import { Resource } from '@ngxp/rest';
 import { Observable } from 'rxjs';
-import { BescheidService2 } from '../../../../../../bescheid-shared/src/lib/bescheid2.service';
 import { BescheidFormService } from '../../bescheid.formservice';
 
 export interface CancelWizardDialogData {
@@ -45,7 +44,7 @@ export interface CancelWizardDialogResult {
 export class BescheidWizardCancelDialogContainerComponent implements OnInit, OnDestroy {
   private readonly dialogData: CancelWizardDialogData = inject(DIALOG_DATA);
   private readonly dialogRef = inject(DialogRef);
-  private readonly bescheidService = inject(BescheidService2);
+  private readonly bescheidService = inject(BescheidService);
   private readonly formService = inject(BescheidFormService);
 
   public saveStateResource$: Observable<StateResource<Resource>>;
diff --git a/alfa-client/libs/bescheid/src/lib/bescheid-wizard-container/bescheid-wizard/create-document-button-container/bescheid-wizard-create-document-button-container.component.spec.ts b/alfa-client/libs/bescheid/src/lib/bescheid-wizard-container/bescheid-wizard/create-document-button-container/bescheid-wizard-create-document-button-container.component.spec.ts
index 578b614b16d24e6b9d40ed36e1a0608b04781e24..3bc3dff8884f2550f4cdd597a520aedbfde10ef2 100644
--- a/alfa-client/libs/bescheid/src/lib/bescheid-wizard-container/bescheid-wizard/create-document-button-container/bescheid-wizard-create-document-button-container.component.spec.ts
+++ b/alfa-client/libs/bescheid/src/lib/bescheid-wizard-container/bescheid-wizard/create-document-button-container/bescheid-wizard-create-document-button-container.component.spec.ts
@@ -1,9 +1,8 @@
-import { BescheidDocument, BescheidResource } from '@alfa-client/bescheid-shared';
+import { BescheidDocument, BescheidResource, BescheidService } from '@alfa-client/bescheid-shared';
 import { existsAsHtmlElement, getElementComponentFromFixtureByCss, mock, Mock, triggerEvent } from '@alfa-client/test-utils';
 import { ComponentFixture, TestBed } from '@angular/core/testing';
 import { MockComponent } from 'ng-mocks';
 import { of } from 'rxjs';
-import { BescheidService2 } from '../../../../../../bescheid-shared/src/lib/bescheid2.service';
 import { createBescheidDocument, createBescheidResource } from '../../../../../../bescheid-shared/src/test/bescheid';
 import { getDataTestIdOf } from '../../../../../../tech-shared/test/data-test';
 import { singleColdCompleted } from '../../../../../../tech-shared/test/marbles';
@@ -19,10 +18,10 @@ describe('BescheidWizardCreateDocumentButtonContainerComponent', () => {
   const bescheidDocument: BescheidDocument = createBescheidDocument();
   const bescheidResource: BescheidResource = createBescheidResource();
 
-  let bescheidService: Mock<BescheidService2>;
+  let bescheidService: Mock<BescheidService>;
 
   beforeEach(() => {
-    bescheidService = mock(BescheidService2);
+    bescheidService = mock(BescheidService);
   });
 
   beforeEach(async () => {
@@ -31,7 +30,7 @@ describe('BescheidWizardCreateDocumentButtonContainerComponent', () => {
         BescheidWizardCreateDocumentButtonContainerComponent,
         MockComponent(BescheidWizardCreateDocumentButtonComponent),
       ],
-      providers: [{ provide: BescheidService2, useValue: bescheidService }],
+      providers: [{ provide: BescheidService, useValue: bescheidService }],
     }).compileComponents();
 
     createComponent();
diff --git a/alfa-client/libs/bescheid/src/lib/bescheid-wizard-container/bescheid-wizard/create-document-button-container/bescheid-wizard-create-document-button-container.component.ts b/alfa-client/libs/bescheid/src/lib/bescheid-wizard-container/bescheid-wizard/create-document-button-container/bescheid-wizard-create-document-button-container.component.ts
index 63c525d76932091bdf971c5789c843568afd8112..4d9e68343b9ab3dc71d0afe637df79b13af83687 100644
--- a/alfa-client/libs/bescheid/src/lib/bescheid-wizard-container/bescheid-wizard/create-document-button-container/bescheid-wizard-create-document-button-container.component.ts
+++ b/alfa-client/libs/bescheid/src/lib/bescheid-wizard-container/bescheid-wizard/create-document-button-container/bescheid-wizard-create-document-button-container.component.ts
@@ -1,7 +1,6 @@
-import { BescheidDocument, BescheidResource } from '@alfa-client/bescheid-shared';
+import { BescheidDocument, BescheidResource, BescheidService } from '@alfa-client/bescheid-shared';
 import { Component, inject, Input } from '@angular/core';
 import { Observable } from 'rxjs';
-import { BescheidService2 } from '../../../../../../bescheid-shared/src/lib/bescheid2.service';
 
 @Component({
   selector: 'alfa-bescheid-wizard-create-document-button-container',
@@ -10,7 +9,7 @@ import { BescheidService2 } from '../../../../../../bescheid-shared/src/lib/besc
 export class BescheidWizardCreateDocumentButtonContainerComponent {
   @Input() bescheidResource: BescheidResource;
 
-  private readonly bescheidService = inject(BescheidService2);
+  private readonly bescheidService = inject(BescheidService);
 
   public readonly bescheidDocument$: Observable<BescheidDocument> = this.bescheidService.getBescheidDocument();
 
diff --git a/alfa-client/libs/bescheid/src/lib/bescheid-wizard-container/bescheid-wizard/document-file-container/bescheid-wizard-document-file-container.component.spec.ts b/alfa-client/libs/bescheid/src/lib/bescheid-wizard-container/bescheid-wizard/document-file-container/bescheid-wizard-document-file-container.component.spec.ts
index 9171b0143e8af45416b48d4a779d6e277ad0a5ef..0a88e197e4883b8c2186568328d0c104e0c10fcd 100644
--- a/alfa-client/libs/bescheid/src/lib/bescheid-wizard-container/bescheid-wizard/document-file-container/bescheid-wizard-document-file-container.component.spec.ts
+++ b/alfa-client/libs/bescheid/src/lib/bescheid-wizard-container/bescheid-wizard/document-file-container/bescheid-wizard-document-file-container.component.spec.ts
@@ -1,9 +1,8 @@
-import { BescheidDocument, BescheidWizardStep } from '@alfa-client/bescheid-shared';
+import { BescheidDocument, BescheidService, BescheidWizardStep } from '@alfa-client/bescheid-shared';
 import { existsAsHtmlElement, getElementComponentFromFixtureByCss, Mock, mock, triggerEvent } from '@alfa-client/test-utils';
 import { ComponentFixture, TestBed } from '@angular/core/testing';
 import { MockComponent } from 'ng-mocks';
 import { of } from 'rxjs';
-import { BescheidService2 } from '../../../../../../bescheid-shared/src/lib/bescheid2.service';
 import { createBescheidDocument } from '../../../../../../bescheid-shared/src/test/bescheid';
 import { getDataTestIdOf } from '../../../../../../tech-shared/test/data-test';
 import { singleColdCompleted } from '../../../../../../tech-shared/test/marbles';
@@ -19,11 +18,11 @@ describe('BescheidWizardDocumentFileContainerComponent', () => {
 
   const bescheidDocument: BescheidDocument = createBescheidDocument();
 
-  let bescheidService: Mock<BescheidService2>;
+  let bescheidService: Mock<BescheidService>;
   let formService: Mock<BescheidFormService>;
 
   beforeEach(() => {
-    bescheidService = mock(BescheidService2);
+    bescheidService = mock(BescheidService);
     formService = mock(BescheidFormService);
   });
 
@@ -31,7 +30,7 @@ describe('BescheidWizardDocumentFileContainerComponent', () => {
     await TestBed.configureTestingModule({
       declarations: [BescheidWizardDocumentFileContainerComponent, MockComponent(BescheidWizardDocumentFileComponent)],
       providers: [
-        { provide: BescheidService2, useValue: bescheidService },
+        { provide: BescheidService, useValue: bescheidService },
         { provide: BescheidFormService, useValue: formService },
       ],
     }).compileComponents();
diff --git a/alfa-client/libs/bescheid/src/lib/bescheid-wizard-container/bescheid-wizard/document-file-container/bescheid-wizard-document-file-container.component.ts b/alfa-client/libs/bescheid/src/lib/bescheid-wizard-container/bescheid-wizard/document-file-container/bescheid-wizard-document-file-container.component.ts
index f50758a6f2914eacb0f1f0a3711e6d0eec3f5d13..cfaf1a4a8de33e7cf16ea21c8fc79a922987fda5 100644
--- a/alfa-client/libs/bescheid/src/lib/bescheid-wizard-container/bescheid-wizard/document-file-container/bescheid-wizard-document-file-container.component.ts
+++ b/alfa-client/libs/bescheid/src/lib/bescheid-wizard-container/bescheid-wizard/document-file-container/bescheid-wizard-document-file-container.component.ts
@@ -1,7 +1,6 @@
-import { BescheidDocument, BescheidWizardStep } from '@alfa-client/bescheid-shared';
+import { BescheidDocument, BescheidService, BescheidWizardStep } from '@alfa-client/bescheid-shared';
 import { Component, inject } from '@angular/core';
 import { Observable } from 'rxjs';
-import { BescheidService2 } from '../../../../../../bescheid-shared/src/lib/bescheid2.service';
 import { BescheidFormService } from '../../bescheid.formservice';
 
 @Component({
@@ -9,7 +8,7 @@ import { BescheidFormService } from '../../bescheid.formservice';
   templateUrl: './bescheid-wizard-document-file-container.component.html',
 })
 export class BescheidWizardDocumentFileContainerComponent {
-  private readonly bescheidService = inject(BescheidService2);
+  private readonly bescheidService = inject(BescheidService);
   private readonly formService = inject(BescheidFormService);
 
   public readonly bescheidDocument$: Observable<BescheidDocument> = this.bescheidService.getBescheidDocument();
diff --git a/alfa-client/libs/bescheid/src/lib/bescheid-wizard-container/bescheid-wizard/dokumente-hochladen-container/bescheid-wizard-dokumente-hochladen-container.component.spec.ts b/alfa-client/libs/bescheid/src/lib/bescheid-wizard-container/bescheid-wizard/dokumente-hochladen-container/bescheid-wizard-dokumente-hochladen-container.component.spec.ts
index 26fb71e977b88813e501e3adcebe112e4077c3fb..258427f6c2c4d46ec153dde019e6f51f0cb777b6 100644
--- a/alfa-client/libs/bescheid/src/lib/bescheid-wizard-container/bescheid-wizard/dokumente-hochladen-container/bescheid-wizard-dokumente-hochladen-container.component.spec.ts
+++ b/alfa-client/libs/bescheid/src/lib/bescheid-wizard-container/bescheid-wizard/dokumente-hochladen-container/bescheid-wizard-dokumente-hochladen-container.component.spec.ts
@@ -21,13 +21,12 @@
  * Die sprachspezifischen Genehmigungen und Beschränkungen
  * unter der Lizenz sind dem Lizenztext zu entnehmen.
  */
-import { BescheidDocument, BescheidResource, BescheidWizardStep } from '@alfa-client/bescheid-shared';
+import { BescheidDocument, BescheidResource, BescheidService, BescheidWizardStep } from '@alfa-client/bescheid-shared';
 import { getElementComponentFromFixtureByCss, Mock, mock, triggerEvent } from '@alfa-client/test-utils';
 import { ComponentFixture, TestBed } from '@angular/core/testing';
 import { expect } from '@jest/globals';
 import { MockComponent } from 'ng-mocks';
 import { of } from 'rxjs';
-import { BescheidService2 } from '../../../../../../bescheid-shared/src/lib/bescheid2.service';
 import { createBescheidDocument, createBescheidResource } from '../../../../../../bescheid-shared/src/test/bescheid';
 import { getDataTestIdOf } from '../../../../../../tech-shared/test/data-test';
 import { singleColdCompleted } from '../../../../../../tech-shared/test/marbles';
@@ -52,10 +51,10 @@ describe('BescheidWizardDokumenteHochladenComponent', () => {
   const bescheidResource: BescheidResource = createBescheidResource();
   const bescheidDocument: BescheidDocument = createBescheidDocument();
 
-  let bescheidService: Mock<BescheidService2>;
+  let bescheidService: Mock<BescheidService>;
 
   beforeEach(() => {
-    bescheidService = mock(BescheidService2);
+    bescheidService = mock(BescheidService);
   });
 
   beforeEach(async () => {
@@ -70,7 +69,7 @@ describe('BescheidWizardDokumenteHochladenComponent', () => {
         MockComponent(BescheidWizardDokumenteHochladenFormComponent),
         MockComponent(BescheidWizardStepperComponent),
       ],
-      providers: [{ provide: BescheidService2, useValue: bescheidService }],
+      providers: [{ provide: BescheidService, useValue: bescheidService }],
     }).compileComponents();
 
     createComponent();
diff --git a/alfa-client/libs/bescheid/src/lib/bescheid-wizard-container/bescheid-wizard/dokumente-hochladen-container/bescheid-wizard-dokumente-hochladen-container.component.ts b/alfa-client/libs/bescheid/src/lib/bescheid-wizard-container/bescheid-wizard/dokumente-hochladen-container/bescheid-wizard-dokumente-hochladen-container.component.ts
index c15d92820a7e08b122ed18f729dc344adc8f8a58..6f6f5711ad1c0996f6382f316255a2b248e8a671 100644
--- a/alfa-client/libs/bescheid/src/lib/bescheid-wizard-container/bescheid-wizard/dokumente-hochladen-container/bescheid-wizard-dokumente-hochladen-container.component.ts
+++ b/alfa-client/libs/bescheid/src/lib/bescheid-wizard-container/bescheid-wizard/dokumente-hochladen-container/bescheid-wizard-dokumente-hochladen-container.component.ts
@@ -21,10 +21,9 @@
  * Die sprachspezifischen Genehmigungen und Beschränkungen
  * unter der Lizenz sind dem Lizenztext zu entnehmen.
  */
-import { BescheidDocument, BescheidResource, BescheidWizardStep } from '@alfa-client/bescheid-shared';
+import { BescheidDocument, BescheidResource, BescheidService, BescheidWizardStep } from '@alfa-client/bescheid-shared';
 import { Component, inject, Input, OnInit } from '@angular/core';
 import { Observable } from 'rxjs';
-import { BescheidService2 } from '../../../../../../bescheid-shared/src/lib/bescheid2.service';
 
 @Component({
   selector: 'alfa-bescheid-wizard-dokumente-hochladen-container',
@@ -33,7 +32,7 @@ import { BescheidService2 } from '../../../../../../bescheid-shared/src/lib/besc
 export class BescheidWizardDokumenteHochladenContainerComponent implements OnInit {
   @Input() bescheidResource: BescheidResource;
 
-  private readonly bescheidService = inject(BescheidService2);
+  private readonly bescheidService = inject(BescheidService);
 
   public readonly bescheidDocument$: Observable<BescheidDocument> = this.bescheidService.getBescheidDocument();
   public isBescheidDocumentMissing: boolean = false;
diff --git a/alfa-client/libs/bescheid/src/lib/bescheid-wizard-container/bescheid-wizard/upload-document-button-container/bescheid-wizard-upload-document-button-container.component.spec.ts b/alfa-client/libs/bescheid/src/lib/bescheid-wizard-container/bescheid-wizard/upload-document-button-container/bescheid-wizard-upload-document-button-container.component.spec.ts
index aad7d40ccedf3a798acadb6be1b76e9560b43912..c2c9cd000ce52b6755a0dc94e667cfa89975b87d 100644
--- a/alfa-client/libs/bescheid/src/lib/bescheid-wizard-container/bescheid-wizard/upload-document-button-container/bescheid-wizard-upload-document-button-container.component.spec.ts
+++ b/alfa-client/libs/bescheid/src/lib/bescheid-wizard-container/bescheid-wizard/upload-document-button-container/bescheid-wizard-upload-document-button-container.component.spec.ts
@@ -1,9 +1,8 @@
-import { BescheidDocument, BescheidResource } from '@alfa-client/bescheid-shared';
+import { BescheidDocument, BescheidResource, BescheidService } from '@alfa-client/bescheid-shared';
 import { getElementComponentFromFixtureByCss, mock, Mock, triggerEvent } from '@alfa-client/test-utils';
 import { ComponentFixture, TestBed } from '@angular/core/testing';
 import { MockComponent } from 'ng-mocks';
 import { of } from 'rxjs';
-import { BescheidService2 } from '../../../../../../bescheid-shared/src/lib/bescheid2.service';
 import { createBescheidDocument, createBescheidResource } from '../../../../../../bescheid-shared/src/test/bescheid';
 import { getDataTestIdOf } from '../../../../../../tech-shared/test/data-test';
 import { createFile } from '../../../../../../tech-shared/test/file';
@@ -19,10 +18,10 @@ describe('BescheidWizardDokumentHochladenContainerButtonComponent', () => {
 
   const bescheidDocument: BescheidDocument = createBescheidDocument();
 
-  let bescheidService: Mock<BescheidService2>;
+  let bescheidService: Mock<BescheidService>;
 
   beforeEach(() => {
-    bescheidService = mock(BescheidService2);
+    bescheidService = mock(BescheidService);
   });
 
   beforeEach(async () => {
@@ -31,7 +30,7 @@ describe('BescheidWizardDokumentHochladenContainerButtonComponent', () => {
         BescheidWizardUploadDocumentButtonContainerComponent,
         MockComponent(BescheidWizardUploadDocumentButtonComponent),
       ],
-      providers: [{ provide: BescheidService2, useValue: bescheidService }],
+      providers: [{ provide: BescheidService, useValue: bescheidService }],
     }).compileComponents();
 
     createComponent();
diff --git a/alfa-client/libs/bescheid/src/lib/bescheid-wizard-container/bescheid-wizard/upload-document-button-container/bescheid-wizard-upload-document-button-container.component.ts b/alfa-client/libs/bescheid/src/lib/bescheid-wizard-container/bescheid-wizard/upload-document-button-container/bescheid-wizard-upload-document-button-container.component.ts
index a874617f496f42ccb8492a8fd116ae29d2384d36..a20952de3f529cca7bfe2dcc1bbb5328b773c793 100644
--- a/alfa-client/libs/bescheid/src/lib/bescheid-wizard-container/bescheid-wizard/upload-document-button-container/bescheid-wizard-upload-document-button-container.component.ts
+++ b/alfa-client/libs/bescheid/src/lib/bescheid-wizard-container/bescheid-wizard/upload-document-button-container/bescheid-wizard-upload-document-button-container.component.ts
@@ -1,7 +1,6 @@
-import { BescheidDocument, BescheidResource } from '@alfa-client/bescheid-shared';
+import { BescheidDocument, BescheidResource, BescheidService } from '@alfa-client/bescheid-shared';
 import { Component, inject, Input } from '@angular/core';
 import { Observable } from 'rxjs';
-import { BescheidService2 } from '../../../../../../bescheid-shared/src/lib/bescheid2.service';
 
 @Component({
   selector: 'alfa-bescheid-wizard-upload-document-button-container',
@@ -10,7 +9,7 @@ import { BescheidService2 } from '../../../../../../bescheid-shared/src/lib/besc
 export class BescheidWizardUploadDocumentButtonContainerComponent {
   @Input() bescheidResource: BescheidResource;
 
-  private readonly bescheidService = inject(BescheidService2);
+  private readonly bescheidService = inject(BescheidService);
 
   public readonly bescheidDocument$: Observable<BescheidDocument> = this.bescheidService.getBescheidDocument();
 
diff --git a/alfa-client/libs/bescheid/src/lib/bescheid-wizard-container/bescheid-wizard/upload-document-button-container/upload-document-button/bescheid-wizard-upload-document-button.component.spec.ts b/alfa-client/libs/bescheid/src/lib/bescheid-wizard-container/bescheid-wizard/upload-document-button-container/upload-document-button/bescheid-wizard-upload-document-button.component.spec.ts
index 66689e97b55fe62c4176df10614f23737020c5ba..083c98f7eed6d4c044c5069d477adce953fd8722 100644
--- a/alfa-client/libs/bescheid/src/lib/bescheid-wizard-container/bescheid-wizard/upload-document-button-container/upload-document-button/bescheid-wizard-upload-document-button.component.spec.ts
+++ b/alfa-client/libs/bescheid/src/lib/bescheid-wizard-container/bescheid-wizard/upload-document-button-container/upload-document-button/bescheid-wizard-upload-document-button.component.spec.ts
@@ -1,4 +1,4 @@
-import { BescheidDocument, BescheidLinkRel, createEmptyUploadInProgress } from '@alfa-client/bescheid-shared';
+import { BescheidDocument, BescheidLinkRel, BescheidService, createEmptyUploadInProgress } from '@alfa-client/bescheid-shared';
 import { HasLinkPipe } from '@alfa-client/tech-shared';
 import {
   existsAsHtmlElement,
@@ -12,7 +12,6 @@ import { ReactiveFormsModule, UntypedFormBuilder } from '@angular/forms';
 import { SingleFileUploadEditorComponent } from '@ods/component';
 import { BescheidUploadIconComponent, SpinnerIconComponent } from '@ods/system';
 import { MockComponent } from 'ng-mocks';
-import { BescheidService2 } from '../../../../../../../bescheid-shared/src/lib/bescheid2.service';
 import {
   createBescheidDocument,
   createBescheidResource,
@@ -34,7 +33,7 @@ describe('BescheidWizardDokumentHochladenButtonComponent', () => {
   let formService: BescheidFormService;
 
   beforeEach(() => {
-    formService = new BescheidFormService(new UntypedFormBuilder(), useFromMock(mock(BescheidService2)));
+    formService = new BescheidFormService(new UntypedFormBuilder(), useFromMock(mock(BescheidService)));
   });
 
   beforeEach(async () => {
diff --git a/alfa-client/libs/bescheid/src/lib/bescheid-wizard-container/bescheid.formservice.spec.ts b/alfa-client/libs/bescheid/src/lib/bescheid-wizard-container/bescheid.formservice.spec.ts
index 86c5f0caee0f27416b51343699e465ec2eb4ef47..2197d0fc501a39c9c0569732ba606df100d60f9d 100644
--- a/alfa-client/libs/bescheid/src/lib/bescheid-wizard-container/bescheid.formservice.spec.ts
+++ b/alfa-client/libs/bescheid/src/lib/bescheid-wizard-container/bescheid.formservice.spec.ts
@@ -21,7 +21,15 @@
  * Die sprachspezifischen Genehmigungen und Beschränkungen
  * unter der Lizenz sind dem Lizenztext zu entnehmen.
  */
-import { Bescheid, BescheidLinkRel, BescheidResource, BescheidSendBy, BescheidWizardStep, Wizard, } from '@alfa-client/bescheid-shared';
+import {
+  Bescheid,
+  BescheidLinkRel,
+  BescheidResource,
+  BescheidSendBy,
+  BescheidService,
+  BescheidWizardStep,
+  Wizard,
+} from '@alfa-client/bescheid-shared';
 import { CommandResource } from '@alfa-client/command-shared';
 import { createErrorStateResource, createLoadingStateResource, formatForDatabase, StateResource } from '@alfa-client/tech-shared';
 import { Mock, mock, useFromMock } from '@alfa-client/test-utils';
@@ -33,7 +41,6 @@ import { faker } from '@faker-js/faker';
 import { expect } from '@jest/globals';
 import { ResourceUri } from '@ngxp/rest';
 import { EMPTY, Observable, of } from 'rxjs';
-import { BescheidService2 } from '../../../../bescheid-shared/src/lib/bescheid2.service';
 import { createBescheid, createBescheidResource, createWizard } from '../../../../bescheid-shared/src/test/bescheid';
 import { createSuccessfullyDoneCommandStateResource } from '../../../../command-shared/test/command';
 import { createProblemDetail } from '../../../../tech-shared/test/error';
@@ -45,13 +52,13 @@ registerLocaleData(localeDe);
 
 describe('BescheidFormService', () => {
   let service: BescheidFormService;
-  let bescheidService: Mock<BescheidService2>;
+  let bescheidService: Mock<BescheidService>;
   const now: Date = new Date();
   Date.now = jest.fn().mockReturnValue(now);
   const vorgangWithEingangResource: VorgangWithEingangResource = createVorgangWithEingangResource();
 
   beforeEach(() => {
-    bescheidService = mock(BescheidService2);
+    bescheidService = mock(BescheidService);
     service = new BescheidFormService(new UntypedFormBuilder(), useFromMock(bescheidService));
     service.setVorgangWithEingangResource(vorgangWithEingangResource);
   });
diff --git a/alfa-client/libs/bescheid/src/lib/bescheid-wizard-container/bescheid.formservice.ts b/alfa-client/libs/bescheid/src/lib/bescheid-wizard-container/bescheid.formservice.ts
index eb96bb9d90af5f6729a3f251ea01bc2e91c58eb7..bdcd436ea2fe58713c255e8a953101205e6b9b90 100644
--- a/alfa-client/libs/bescheid/src/lib/bescheid-wizard-container/bescheid.formservice.ts
+++ b/alfa-client/libs/bescheid/src/lib/bescheid-wizard-container/bescheid.formservice.ts
@@ -21,7 +21,7 @@
  * Die sprachspezifischen Genehmigungen und Beschränkungen
  * unter der Lizenz sind dem Lizenztext zu entnehmen.
  */
-import { Bescheid, BescheidLinkRel, BescheidResource, BescheidSendBy, BescheidWizardStep, Wizard, } from '@alfa-client/bescheid-shared';
+import { Bescheid, BescheidLinkRel, BescheidResource, BescheidSendBy, BescheidService, BescheidWizardStep, Wizard, } from '@alfa-client/bescheid-shared';
 import { CommandResource, switchMapCommandSuccessfullyDone } from '@alfa-client/command-shared';
 import { AbstractFormService, convertToBoolean, formatForDatabase, isNotNil, StateResource } from '@alfa-client/tech-shared';
 import { VorgangWithEingangResource } from '@alfa-client/vorgang-shared';
@@ -30,7 +30,6 @@ import { FormControl, UntypedFormArray, UntypedFormBuilder, UntypedFormControl,
 import { getUrl, hasLink, ResourceUri } from '@ngxp/rest';
 import { isNil } from 'lodash-es';
 import { first, Observable, startWith, switchMap } from 'rxjs';
-import { BescheidService2 } from '../../../../bescheid-shared/src/lib/bescheid2.service';
 
 @Injectable()
 export class BescheidFormService extends AbstractFormService<CommandResource> {
@@ -49,7 +48,7 @@ export class BescheidFormService extends AbstractFormService<CommandResource> {
 
   constructor(
     formBuilder: UntypedFormBuilder,
-    private readonly bescheidService: BescheidService2,
+    private readonly bescheidService: BescheidService,
   ) {
     super(formBuilder);
   }
diff --git a/alfa-client/libs/bescheid/src/lib/bescheid.module.ts b/alfa-client/libs/bescheid/src/lib/bescheid.module.ts
index f098c06d4ec7b163b55a8bad5f60c7682521866c..bff2453ae3266fe805b85177073edc854782757c 100644
--- a/alfa-client/libs/bescheid/src/lib/bescheid.module.ts
+++ b/alfa-client/libs/bescheid/src/lib/bescheid.module.ts
@@ -28,8 +28,6 @@ import { ConvertForDataTestPipe, ConvertProblemDetailToErrorMessagesPipe, GetUrl
 import { CommonModule } from '@angular/common';
 import { NgModule } from '@angular/core';
 import { ButtonWithSpinnerComponent, FileUploadEditorComponent, SingleFileUploadEditorComponent, TextareaEditorComponent, TextEditorComponent, } from '@ods/component';
-import { BescheidInVorgangContainerComponent } from './bescheid-in-vorgang-container/bescheid-in-vorgang-container.component';
-import { BescheidInVorgangComponent } from './bescheid-in-vorgang-container/bescheid-in-vorgang/bescheid-in-vorgang.component';
 import { BescheidListInVorgangContainerComponent } from './bescheid-list-in-vorgang-container/bescheid-list-in-vorgang-container.component';
 import { BescheidListInVorgangComponent } from './bescheid-list-in-vorgang-container/bescheid-list-in-vorgang/bescheid-list-in-vorgang.component';
 import { DocumentInBescheidContainerComponent } from './bescheid-list-in-vorgang-container/bescheid-list-in-vorgang/document-in-bescheid-container/document-in-bescheid-container.component';
@@ -114,8 +112,6 @@ import { BescheidWizardWeiterButtonComponent } from './bescheid-wizard-container
     MultiFileUploadEditorComponent,
   ],
   declarations: [
-    BescheidInVorgangContainerComponent,
-    BescheidInVorgangComponent,
     BescheidListInVorgangContainerComponent,
     BescheidListInVorgangComponent,
     DocumentInBescheidContainerComponent,
@@ -152,10 +148,6 @@ import { BescheidWizardWeiterButtonComponent } from './bescheid-wizard-container
     BescheidWizardBescheidVersendenSpeichernComponent,
     StepContentLayoutComponent,
   ],
-  exports: [
-    BescheidInVorgangContainerComponent,
-    BescheidListInVorgangContainerComponent,
-    BeschiedenDateInVorgangContainerComponent,
-  ],
+  exports: [BescheidListInVorgangContainerComponent, BeschiedenDateInVorgangContainerComponent],
 })
 export class BescheidModule {}
diff --git a/alfa-client/libs/bescheid/src/lib/beschieden-date-in-vorgang-container/beschieden-date-container/beschieden-date-container.component.spec.ts b/alfa-client/libs/bescheid/src/lib/beschieden-date-in-vorgang-container/beschieden-date-container/beschieden-date-container.component.spec.ts
index 94e4e5de89a58a43eaacae49d8473f9e979afb7b..e70aa9d868a76481094ebd59714e262e0356a98d 100644
--- a/alfa-client/libs/bescheid/src/lib/beschieden-date-in-vorgang-container/beschieden-date-container/beschieden-date-container.component.spec.ts
+++ b/alfa-client/libs/bescheid/src/lib/beschieden-date-in-vorgang-container/beschieden-date-container/beschieden-date-container.component.spec.ts
@@ -21,13 +21,13 @@
  * Die sprachspezifischen Genehmigungen und Beschränkungen
  * unter der Lizenz sind dem Lizenztext zu entnehmen.
  */
-import { BescheidService } from '@alfa-client/bescheid-shared';
-import { Mock, existsAsHtmlElement, mock, notExistsAsHtmlElement } from '@alfa-client/test-utils';
+import { existsAsHtmlElement, Mock, mock, notExistsAsHtmlElement } from '@alfa-client/test-utils';
 import { registerLocaleData } from '@angular/common';
 import localeDe from '@angular/common/locales/de';
 import { ComponentFixture, TestBed } from '@angular/core/testing';
 import { MockComponent } from 'ng-mocks';
 
+import { BescheidService } from '@alfa-client/bescheid-shared';
 import { CloseIconComponent, StampIconComponent } from '@ods/system';
 import { createBescheidResource } from 'libs/bescheid-shared/src/test/bescheid';
 import { FormatFullDatePipe } from 'libs/tech-shared/src/lib/pipe/format-full-date.pipe';
diff --git a/alfa-client/libs/bescheid/src/lib/beschieden-date-in-vorgang-container/beschieden-date-in-vorgang-container.component.spec.ts b/alfa-client/libs/bescheid/src/lib/beschieden-date-in-vorgang-container/beschieden-date-in-vorgang-container.component.spec.ts
index c2ace7dc8dfdb9b91b374315dcd557b38962c0e9..d7b59d493cc09da7afa7a84f1decfc6fa5ba1a86 100644
--- a/alfa-client/libs/bescheid/src/lib/beschieden-date-in-vorgang-container/beschieden-date-in-vorgang-container.component.spec.ts
+++ b/alfa-client/libs/bescheid/src/lib/beschieden-date-in-vorgang-container/beschieden-date-in-vorgang-container.component.spec.ts
@@ -22,7 +22,7 @@
  * unter der Lizenz sind dem Lizenztext zu entnehmen.
  */
 import { BescheidService } from '@alfa-client/bescheid-shared';
-import { Mock, existsAsHtmlElement, mock, notExistsAsHtmlElement } from '@alfa-client/test-utils';
+import { existsAsHtmlElement, Mock, mock, notExistsAsHtmlElement } from '@alfa-client/test-utils';
 import { ComponentFixture, TestBed } from '@angular/core/testing';
 import { getDataTestIdOf } from 'libs/tech-shared/test/data-test';
 import { MockComponent } from 'ng-mocks';
@@ -40,10 +40,7 @@ describe('BeschiedenDateInVorgangContainerComponent', () => {
 
   beforeEach(async () => {
     await TestBed.configureTestingModule({
-      declarations: [
-        BeschiedenDateInVorgangContainerComponent,
-        MockComponent(BeschiedenDateContainerComponent),
-      ],
+      declarations: [BeschiedenDateInVorgangContainerComponent, MockComponent(BeschiedenDateContainerComponent)],
       providers: [
         {
           provide: BescheidService,
diff --git a/alfa-client/libs/ui/src/lib/ui/ozgcloud-dialog/ozgcloud-dialog.service.spec.ts b/alfa-client/libs/ui/src/lib/ui/ozgcloud-dialog/ozgcloud-dialog.service.spec.ts
index b95396349c8cb79f0e97601877a7fcd108529e56..971f3982258f6c9b65e7c031763595d20a3f900a 100644
--- a/alfa-client/libs/ui/src/lib/ui/ozgcloud-dialog/ozgcloud-dialog.service.spec.ts
+++ b/alfa-client/libs/ui/src/lib/ui/ozgcloud-dialog/ozgcloud-dialog.service.spec.ts
@@ -123,21 +123,30 @@ describe('OzgcloudDialogService', () => {
   });
 
   describe('openWizard', () => {
+    beforeEach(() => {
+      service.openInCallingComponentContext = jest.fn();
+    });
+
     it('should open wizard dialog', () => {
-      service.openWizard(component);
+      service.openWizard(component, viewContainerRef);
 
-      expect(dialog.open).toHaveBeenCalledWith(component, {
-        ...service.WIZARD_DIALOG_CONFIG,
-      });
+      expect(service.openInCallingComponentContext).toHaveBeenCalledWith(
+        component,
+        viewContainerRef,
+        undefined,
+        service.WIZARD_DIALOG_CONFIG,
+      );
     });
 
     it('should open wizard dialog with data', () => {
-      service.openWizard(component, dialogData);
+      service.openWizard(component, viewContainerRef, dialogData);
 
-      expect(dialog.open).toHaveBeenCalledWith(component, {
-        ...service.WIZARD_DIALOG_CONFIG,
-        data: dialogData,
-      });
+      expect(service.openInCallingComponentContext).toHaveBeenCalledWith(
+        component,
+        viewContainerRef,
+        dialogData,
+        service.WIZARD_DIALOG_CONFIG,
+      );
     });
   });
 
diff --git a/alfa-client/libs/ui/src/lib/ui/ozgcloud-dialog/ozgcloud-dialog.service.ts b/alfa-client/libs/ui/src/lib/ui/ozgcloud-dialog/ozgcloud-dialog.service.ts
index aebed88efe5a54fafce9ec09283f0314c744fc5e..cbea4f7eb2ab5ed2a177d1ac3809fae3fabaaae8 100644
--- a/alfa-client/libs/ui/src/lib/ui/ozgcloud-dialog/ozgcloud-dialog.service.ts
+++ b/alfa-client/libs/ui/src/lib/ui/ozgcloud-dialog/ozgcloud-dialog.service.ts
@@ -43,8 +43,8 @@ export class OzgcloudDialogService {
     disableClose: true,
   };
 
-  public openWizard<C, D, R = unknown>(component: ComponentType<C>, data?: D): DialogRef<R> {
-    return this.openDialog<C, R>(component, this.buildDialogConfigWithData<D>(data, this.WIZARD_DIALOG_CONFIG));
+  public openWizard<C, D, R = unknown>(component: ComponentType<C>, viewContainerRef: ViewContainerRef, data?: D): DialogRef<R> {
+    return this.openInCallingComponentContext<C, D, R>(component, viewContainerRef, data, this.WIZARD_DIALOG_CONFIG);
   }
 
   /**
diff --git a/alfa-client/libs/vorgang-detail/src/index.ts b/alfa-client/libs/vorgang-detail/src/index.ts
index d9615b0082ac270218d00ecc945e2c2410bd0251..765983a28a264f4ee218a4b33ad3ee2cf3488959 100644
--- a/alfa-client/libs/vorgang-detail/src/index.ts
+++ b/alfa-client/libs/vorgang-detail/src/index.ts
@@ -23,5 +23,4 @@
  */
 export * from './lib/aktenzeichen-edit-dialog/aktenzeichen-edit-dialog.component';
 export * from './lib/aktenzeichen-editable/aktenzeichen-editable.component';
-export * from './lib/vorgang-detail-page/vorgang-detail-bescheiden/bescheiden.model';
 export * from './lib/vorgang-detail.module';
diff --git a/alfa-client/libs/vorgang-detail/src/lib/buttons/bescheiden-button/bescheiden-button.component.spec.ts b/alfa-client/libs/vorgang-detail/src/lib/buttons/bescheiden-button/bescheiden-button.component.spec.ts
index 932363f2b33c3e0ebf50e8082a9389fd83a0a5a7..728a67f0542506e2c817191447c4fce7b5400b6c 100644
--- a/alfa-client/libs/vorgang-detail/src/lib/buttons/bescheiden-button/bescheiden-button.component.spec.ts
+++ b/alfa-client/libs/vorgang-detail/src/lib/buttons/bescheiden-button/bescheiden-button.component.spec.ts
@@ -24,18 +24,8 @@
 import { BescheidWizardContainerComponent } from '@alfa-client/bescheid';
 import { BescheidWizardDialogResult } from '@alfa-client/bescheid-shared';
 import { CommandResource } from '@alfa-client/command-shared';
-import { createEmptyStateResource, createStateResource, HasLinkPipe, StateResource } from '@alfa-client/tech-shared';
-import {
-  createDialogRefMock,
-  DialogRefMock,
-  getElementComponentFromFixtureByCss,
-  getMockComponent,
-  Mock,
-  mock,
-  notExistsAsHtmlElement,
-  tooltipExistsWithText,
-  triggerEvent,
-} from '@alfa-client/test-utils';
+import { createStateResource, HasLinkPipe, StateResource } from '@alfa-client/tech-shared';
+import { createDialogRefMock, DialogRefMock, getElementComponentFromFixtureByCss, getMockComponent, Mock, mock, notExistsAsHtmlElement, tooltipExistsWithText, triggerEvent, } from '@alfa-client/test-utils';
 import { OzgcloudDialogService } from '@alfa-client/ui';
 import { VorgangCommandService, VorgangService, VorgangWithEingangLinkRel } from '@alfa-client/vorgang-shared';
 import { DialogRef } from '@angular/cdk/dialog';
@@ -46,8 +36,7 @@ import { createCommandResource } from 'libs/command-shared/test/command';
 import { getDataTestIdAttributeOf } from 'libs/tech-shared/test/data-test';
 import { createVorgangWithEingangResource } from 'libs/vorgang-shared/test/vorgang';
 import { MockComponent } from 'ng-mocks';
-import { Observable, of } from 'rxjs';
-import { VorgangDetailBescheidenComponent } from '../../vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden.component';
+import { of } from 'rxjs';
 import { BescheidenButtonComponent } from './bescheiden-button.component';
 
 describe('BescheidenButtonComponent', () => {
@@ -57,11 +46,13 @@ describe('BescheidenButtonComponent', () => {
   const bescheidenButton: string = getDataTestIdAttributeOf('bescheiden-button');
   const bescheidenIconButton: string = getDataTestIdAttributeOf('bescheiden-icon-button');
 
+  const viewContainerRef = <any>{};
+
   let vorgangCommandService: Mock<VorgangCommandService>;
   let ozgcloudDialogService: Mock<OzgcloudDialogService>;
   let vorgangService: Mock<VorgangService>;
 
-  const dialogRef = <DialogRef<VorgangDetailBescheidenComponent>>{};
+  const dialogRef = <DialogRef<BescheidWizardDialogResult>>{};
 
   beforeEach(() => {
     vorgangCommandService = mock(VorgangCommandService);
@@ -96,6 +87,7 @@ describe('BescheidenButtonComponent', () => {
 
     fixture = TestBed.createComponent(BescheidenButtonComponent);
     component = fixture.componentInstance;
+    component.viewContainerRef = viewContainerRef;
     ozgcloudDialogService.openWizard = jest.fn().mockReturnValue(dialogRef);
     fixture.detectChanges();
   });
@@ -132,29 +124,6 @@ describe('BescheidenButtonComponent', () => {
           expect(component.openBescheidenWizard).toHaveBeenCalled();
         });
       });
-
-      describe('should do bescheiden', () => {
-        const command: CommandResource = createCommandResource();
-        const comandStateResource$: Observable<StateResource<CommandResource>> = of(createStateResource(command));
-
-        beforeEach(() => {
-          vorgangCommandService.bescheiden.mockReturnValue(comandStateResource$);
-        });
-
-        it('should call vorgangCommandService.bescheiden', () => {
-          component.bescheiden();
-
-          expect(vorgangCommandService.bescheiden).toHaveBeenCalled();
-        });
-
-        it('should assign response', () => {
-          component.commandStateResource$ = of(createEmptyStateResource<CommandResource>());
-
-          component.bescheiden();
-
-          expect(component.commandStateResource$).toBe(comandStateResource$);
-        });
-      });
     });
 
     describe('bescheiden icon button', () => {
@@ -196,7 +165,7 @@ describe('BescheidenButtonComponent', () => {
 
         component.openBescheidenWizard();
 
-        expect(ozgcloudDialogService.openWizard).toHaveBeenCalledWith(BescheidWizardContainerComponent, {
+        expect(ozgcloudDialogService.openWizard).toHaveBeenCalledWith(BescheidWizardContainerComponent, viewContainerRef, {
           vorgangWithEingangResource: vorgang,
         });
       });
diff --git a/alfa-client/libs/vorgang-detail/src/lib/buttons/bescheiden-button/bescheiden-button.component.ts b/alfa-client/libs/vorgang-detail/src/lib/buttons/bescheiden-button/bescheiden-button.component.ts
index 14105a18936391dbbf8646abed381e2b9273767c..eb3496cd4e8844f34b270c19ee130fc9722639c2 100644
--- a/alfa-client/libs/vorgang-detail/src/lib/buttons/bescheiden-button/bescheiden-button.component.ts
+++ b/alfa-client/libs/vorgang-detail/src/lib/buttons/bescheiden-button/bescheiden-button.component.ts
@@ -21,22 +21,16 @@
  * Die sprachspezifischen Genehmigungen und Beschränkungen
  * unter der Lizenz sind dem Lizenztext zu entnehmen.
  */
-import { BescheidWizardContainerComponent } from '@alfa-client/bescheid';
+import { BescheidWizardContainerComponent, BescheidWizardDialogData } from '@alfa-client/bescheid';
 import { BescheidWizardDialogResult } from '@alfa-client/bescheid-shared';
 import { CommandResource } from '@alfa-client/command-shared';
 import { createEmptyStateResource, isNotNil, StateResource } from '@alfa-client/tech-shared';
 import { OzgcloudDialogService } from '@alfa-client/ui';
-import {
-  VorgangCommandService,
-  VorgangService,
-  VorgangWithEingangLinkRel,
-  VorgangWithEingangResource,
-} from '@alfa-client/vorgang-shared';
+import { VorgangCommandService, VorgangService, VorgangWithEingangLinkRel, VorgangWithEingangResource, } from '@alfa-client/vorgang-shared';
 import { DialogRef } from '@angular/cdk/dialog';
-import { Component, Input, OnInit } from '@angular/core';
+import { Component, inject, Input, OnInit, ViewContainerRef } from '@angular/core';
 import { hasLink } from '@ngxp/rest';
 import { Observable, of } from 'rxjs';
-import { BescheidenDialogData } from '../../vorgang-detail-page/vorgang-detail-bescheiden/bescheiden.model';
 
 @Component({
   selector: 'alfa-bescheiden-button',
@@ -47,6 +41,11 @@ export class BescheidenButtonComponent implements OnInit {
   @Input() vorgang: VorgangWithEingangResource;
   @Input() showAsIconButton: boolean = false;
 
+  viewContainerRef = inject(ViewContainerRef);
+  private readonly vorgangCommandService = inject(VorgangCommandService);
+  private readonly vorgangService = inject(VorgangService);
+  private readonly ozgcloudDialogService = inject(OzgcloudDialogService);
+
   commandStateResource$: Observable<StateResource<CommandResource>> = of(createEmptyStateResource<CommandResource>());
 
   readonly linkRel = VorgangWithEingangLinkRel;
@@ -61,38 +60,21 @@ export class BescheidenButtonComponent implements OnInit {
       );
   }
 
-  constructor(
-    private vorgangCommandService: VorgangCommandService,
-    private vorgangService: VorgangService,
-    private ozgcloudDialogService: OzgcloudDialogService,
-  ) {}
-
   ngOnInit(): void {
     this.commandStateResource$ = this.vorgangCommandService.getBeschiedenCommand();
   }
 
   public bescheiden(): void {
-    if (this.shouldOpenBescheidenWizard()) {
-      this.openBescheidenWizard();
-    } else {
-      this.commandStateResource$ = this.vorgangCommandService.bescheiden(this.vorgang);
-    }
-  }
-
-  private shouldOpenBescheidenWizard(): boolean {
-    return (
-      hasLink(this.vorgang, VorgangWithEingangLinkRel.CREATE_BESCHEID_DRAFT) ||
-      hasLink(this.vorgang, VorgangWithEingangLinkRel.BESCHEID_DRAFT)
-    );
+    this.openBescheidenWizard();
   }
 
   public openBescheidenWizard(): void {
-    const dialogData: BescheidenDialogData = { vorgangWithEingangResource: this.vorgang };
+    const dialogData: BescheidWizardDialogData = { vorgangWithEingangResource: this.vorgang };
     const dialogRef: DialogRef<BescheidWizardDialogResult> = this.ozgcloudDialogService.openWizard<
       BescheidWizardContainerComponent,
-      BescheidenDialogData,
+      BescheidWizardDialogData,
       BescheidWizardDialogResult
-    >(BescheidWizardContainerComponent, dialogData);
+    >(BescheidWizardContainerComponent, this.viewContainerRef, dialogData);
     dialogRef.closed.subscribe((dialogResult: BescheidWizardDialogResult) => this.handleBescheidWizardClosed(dialogResult));
   }
 
diff --git a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/bescheiden.formservice.spec.ts b/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/bescheiden.formservice.spec.ts
deleted file mode 100644
index f69a1d6f6d0127dbc83a1ead4b55b751d42714cb..0000000000000000000000000000000000000000
--- a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/bescheiden.formservice.spec.ts
+++ /dev/null
@@ -1,578 +0,0 @@
-/*
- * Copyright (C) 2024 Das Land Schleswig-Holstein vertreten durch den
- * Ministerpräsidenten des Landes Schleswig-Holstein
- * Staatskanzlei
- * Abteilung Digitalisierung und zentrales IT-Management der Landesregierung
- *
- * Lizenziert unter der EUPL, Version 1.2 oder - sobald
- * diese von der Europäischen Kommission genehmigt wurden -
- * Folgeversionen der EUPL ("Lizenz");
- * Sie dürfen dieses Werk ausschließlich gemäß
- * dieser Lizenz nutzen.
- * Eine Kopie der Lizenz finden Sie hier:
- *
- * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
- *
- * Sofern nicht durch anwendbare Rechtsvorschriften
- * gefordert oder in schriftlicher Form vereinbart, wird
- * die unter der Lizenz verbreitete Software "so wie sie
- * ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN -
- * ausdrücklich oder stillschweigend - verbreitet.
- * Die sprachspezifischen Genehmigungen und Beschränkungen
- * unter der Lizenz sind dem Lizenztext zu entnehmen.
- */
-import {
-  Bescheid,
-  BescheidLinkRel,
-  BescheidResource,
-  BescheidSendBy,
-  BescheidService,
-  DocumentResource,
-} from '@alfa-client/bescheid-shared';
-import { BinaryFileResource } from '@alfa-client/binary-file-shared';
-import { CommandLinkRel, CommandResource } from '@alfa-client/command-shared';
-import {
-  EMPTY_STRING,
-  StateResource,
-  createStateResource,
-  formatForDatabase,
-} from '@alfa-client/tech-shared';
-import { Mock, mock, useFromMock } from '@alfa-client/test-utils';
-import { VorgangWithEingangResource } from '@alfa-client/vorgang-shared';
-import { registerLocaleData } from '@angular/common';
-import localeDe from '@angular/common/locales/de';
-import { fakeAsync, tick } from '@angular/core/testing';
-import { UntypedFormBuilder } from '@angular/forms';
-import { faker } from '@faker-js/faker';
-import { Resource, ResourceUri } from '@ngxp/rest';
-import { cold } from 'jest-marbles';
-import {
-  createCommandResource,
-  createCommandStateResource,
-} from 'libs/command-shared/test/command';
-import { toResource } from 'libs/tech-shared/test/resource';
-import { of } from 'rxjs';
-import {
-  createBescheid,
-  createBescheidResource,
-} from '../../../../../bescheid-shared/src/test/bescheid';
-import { createDocumentResource } from '../../../../../bescheid-shared/src/test/document';
-import { createBinaryFileResource } from '../../../../../binary-file-shared/test/binary-file';
-import { singleCold } from '../../../../../tech-shared/test/marbles';
-import { createVorgangWithEingangResource } from '../../../../../vorgang-shared/test/vorgang';
-import { BescheidenFormService } from './bescheiden.formservice';
-
-registerLocaleData(localeDe);
-
-describe('BescheidenFormService', () => {
-  let service: BescheidenFormService;
-  let bescheidService: Mock<BescheidService>;
-  const now: Date = new Date();
-  Date.now = jest.fn().mockReturnValue(now);
-
-  beforeEach(() => {
-    bescheidService = mock(BescheidService);
-    service = new BescheidenFormService(new UntypedFormBuilder(), useFromMock(bescheidService));
-  });
-
-  describe('constructor', () => {
-    it('should initialize form beschieden am', () => {
-      expect(service.getValue().beschiedenAm).toEqual(formatForDatabase(now));
-    });
-
-    it('should initialize form bewilligt', () => {
-      expect(service.getValue().bewilligt).toBeTruthy();
-    });
-
-    it('should initialize form send by', () => {
-      expect(service.getValue().sendBy).toEqual(BescheidSendBy.NACHRICHT);
-    });
-
-    it('should initialize form bescheid dokument', () => {
-      expect(service.getValue().bescheidDocument).toBeNull();
-    });
-
-    it('should initialize form attachments', () => {
-      expect(service.getValue().attachments).toEqual([]);
-    });
-
-    it('should initialize form nachricht subject', () => {
-      expect(service.getValue().nachrichtSubject).toEqual(EMPTY_STRING);
-    });
-
-    it('should initialize form nachricht text', () => {
-      expect(service.getValue().nachrichtText).toEqual(EMPTY_STRING);
-    });
-  });
-
-  describe('init', () => {
-    it('should subscribe to sendBy', () => {
-      service.subscribeToSendBy = jest.fn();
-
-      service.init();
-
-      expect(service.subscribeToSendBy).toHaveBeenCalled();
-    });
-  });
-
-  describe('subscribe to send by', () => {
-    it('should update send by on value change', () => {
-      service.updateSendByManual = jest.fn();
-
-      service.subscribeToSendBy();
-      service.form.controls[BescheidenFormService.FIELD_SEND_BY].patchValue(BescheidSendBy.MANUAL);
-
-      expect(service.updateSendByManual).toHaveBeenCalled();
-    });
-  });
-
-  describe('update send by manual', () => {
-    it('should set to true if its manual', () => {
-      service.updateSendByManual(BescheidSendBy.MANUAL);
-
-      expect(service.sendByManual.value).toBeTruthy();
-    });
-    it('should set to false if its nachricht', () => {
-      service.updateSendByManual(BescheidSendBy.NACHRICHT);
-
-      expect(service.sendByManual.value).toBeFalsy();
-    });
-    it('should not emit if value not changed', () => {
-      service.sendByManual.next(true);
-      service.sendByManual.next = jest.fn();
-
-      service.updateSendByManual(BescheidSendBy.MANUAL);
-
-      expect(service.sendByManual.next).not.toHaveBeenCalled();
-    });
-    it('should emit on value change', () => {
-      service.sendByManual.next(false);
-      service.sendByManual.next = jest.fn();
-
-      service.updateSendByManual(BescheidSendBy.MANUAL);
-
-      expect(service.sendByManual.next).toHaveBeenCalled();
-    });
-  });
-
-  describe('initializeFormChanges', () => {
-    it('should emit initial form value', () => {
-      expect(service.getBescheidChanges()).toBeObservable(
-        cold('a', {
-          a: {
-            beschiedenAm: now,
-            bewilligt: true,
-            attachments: [],
-            bescheidDocument: null,
-            sendBy: BescheidSendBy.NACHRICHT,
-            nachrichtSubject: '',
-            nachrichtText: '',
-          },
-        }),
-      );
-    });
-  });
-
-  describe('getValue', () => {
-    let getFormValue: jest.Mock;
-
-    beforeEach(() => {
-      getFormValue = service.getFormValue = jest.fn();
-      getFormValue.mockReturnValue({ beschiedenAm: now, bewilligt: 'true' });
-    });
-
-    it('should call getFormValue', () => {
-      service.getValue();
-
-      expect(getFormValue).toHaveBeenCalled();
-    });
-
-    it('should return bescheid', () => {
-      const value: Bescheid = service.getValue();
-
-      expect(value).toEqual({ bewilligt: true, beschiedenAm: formatForDatabase(now) } as Bescheid);
-    });
-  });
-
-  describe('getValueWithApproved', () => {
-    it('should convert string bewilligt from bescheid if it is not nil', () => {
-      const bescheid: Bescheid = { ...createBescheid(), bewilligt: 'true' };
-
-      const result = service.getValueWithApproved(bescheid);
-
-      expect(result.bewilligt).toBeTruthy();
-    });
-
-    it('should set bewilligt to false if it is nil', () => {
-      const bescheid: Bescheid = { ...createBescheid(), bewilligt: undefined };
-
-      const result = service.getValueWithApproved(bescheid);
-
-      expect(result.bewilligt).toBeFalsy();
-    });
-  });
-
-  describe('getBescheidChanges', () => {
-    it('should emit initial form value', () => {
-      expect(service.getBescheidChanges()).toBeObservable(
-        singleCold({
-          beschiedenAm: now,
-          bewilligt: true,
-          attachments: [],
-          bescheidDocument: null,
-          sendBy: BescheidSendBy.NACHRICHT,
-          nachrichtSubject: '',
-          nachrichtText: '',
-        }),
-      );
-    });
-  });
-
-  describe('patchValues', () => {
-    let bescheidResource: BescheidResource;
-    let patch: jest.Mock;
-
-    beforeEach(() => {
-      bescheidResource = createBescheidResource();
-      patch = service.patch = jest.fn();
-    });
-
-    it('should call patch', () => {
-      service.patchValues(bescheidResource);
-
-      expect(patch).toHaveBeenCalledWith({
-        [BescheidenFormService.FIELD_BESCHIEDEN_AM]: bescheidResource.beschiedenAm,
-        [BescheidenFormService.FIELD_BEWILLIGT]: String(bescheidResource.bewilligt),
-        [BescheidenFormService.FIELD_BESCHEID_DOCUMENT]: null,
-        [BescheidenFormService.FIELD_SEND_BY]: String(bescheidResource.sendBy),
-        [BescheidenFormService.FIELD_NACHRICHT_SUBJECT]: bescheidResource.nachrichtSubject,
-        [BescheidenFormService.FIELD_NACHRICHT_TEXT]: bescheidResource.nachrichtText,
-      });
-    });
-
-    it('should call patch with undefined sendBy', () => {
-      const bescheidDocumentUri: ResourceUri = faker.internet.url();
-      service.patchValues({
-        ...bescheidResource,
-        sendBy: undefined,
-        _links: {
-          ...bescheidResource._links,
-          [BescheidLinkRel.BESCHEID_DOCUMENT]: { href: bescheidDocumentUri },
-        },
-      });
-
-      expect(patch).toHaveBeenCalledWith({
-        [BescheidenFormService.FIELD_BESCHIEDEN_AM]: bescheidResource.beschiedenAm,
-        [BescheidenFormService.FIELD_BEWILLIGT]: String(bescheidResource.bewilligt),
-        [BescheidenFormService.FIELD_SEND_BY]: BescheidSendBy.NACHRICHT,
-        [BescheidenFormService.FIELD_BESCHEID_DOCUMENT]: bescheidDocumentUri,
-        [BescheidenFormService.FIELD_NACHRICHT_SUBJECT]: bescheidResource.nachrichtSubject,
-        [BescheidenFormService.FIELD_NACHRICHT_TEXT]: bescheidResource.nachrichtText,
-      });
-    });
-
-    it('should not call patch', () => {
-      service.patchValues(null);
-
-      expect(patch).not.toHaveBeenCalled();
-    });
-
-    it('should patch attachments', () => {
-      service.patchValues(bescheidResource);
-
-      expect(service.getFormValue().attachments).toEqual(bescheidResource.attachments);
-    });
-  });
-
-  describe('submit', () => {
-    const commandStateResource: StateResource<CommandResource> =
-      createStateResource(createCommandResource());
-
-    beforeEach(() => {
-      bescheidService.updateBescheid.mockReturnValue(of(commandStateResource));
-      bescheidService.createBescheid.mockReturnValue(of(commandStateResource));
-      service.updateNachrichtOnSuccess = jest.fn().mockReturnValue(() => of(commandStateResource));
-    });
-
-    it('should call bescheid service update bescheid draft if is patch', (done) => {
-      const dummyPatchResource: Resource = toResource({});
-      service.patch(dummyPatchResource);
-
-      service.submit().subscribe(() => {
-        expect(bescheidService.updateBescheid).toHaveBeenCalledWith(service.getValue());
-        done();
-      });
-    });
-
-    it('should call bescheid service update bescheid draft if bescheid draft exists', (done) => {
-      bescheidService.existsBescheidDraft.mockReturnValue(true);
-
-      service.submit().subscribe(() => {
-        expect(bescheidService.updateBescheid).toHaveBeenCalledWith(service.getValue());
-        done();
-      });
-    });
-
-    it('should call bescheid service create bescheid draft if bescheid draft not exists', (done) => {
-      bescheidService.existsBescheidDraft.mockReturnValue(false);
-
-      service.submit().subscribe(() => {
-        expect(bescheidService.createBescheid).toHaveBeenCalledWith(
-          service.vorgangWithEingangResource,
-          service.getValue(),
-        );
-        done();
-      });
-    });
-
-    it('should update nachricht after successful bescheid creation', (done) => {
-      bescheidService.existsBescheidDraft.mockReturnValue(false);
-
-      service.submit().subscribe(() => {
-        expect(service.updateNachrichtOnSuccess).toHaveBeenCalled();
-        done();
-      });
-    });
-  });
-
-  describe('submit draft', () => {
-    const commandStateResource: StateResource<CommandResource> = createStateResource(
-      createCommandResource([CommandLinkRel.EFFECTED_RESOURCE]),
-    );
-
-    beforeEach(() => {
-      service.submit = jest.fn().mockReturnValue(of(commandStateResource));
-    });
-
-    it('should call submit', (done) => {
-      service.submitDraft().subscribe(() => {
-        expect(service.submit).toHaveBeenCalledWith();
-        done();
-      });
-    });
-
-    it('should call service to reload vorgang', fakeAsync(() => {
-      service.submitDraft().subscribe();
-      tick();
-
-      expect(bescheidService.reloadCurrentVorgang).toHaveBeenCalled();
-    }));
-  });
-
-  describe('setVorgangWithEingangResource', () => {
-    it('should set vorgangWithEingangResource', () => {
-      const vorgangWithEingangResource: VorgangWithEingangResource =
-        createVorgangWithEingangResource();
-
-      service.setVorgangWithEingangResource(vorgangWithEingangResource);
-
-      expect(service.vorgangWithEingangResource).toBe(vorgangWithEingangResource);
-    });
-  });
-
-  describe('getVorgangWithEingangResource', () => {
-    it('should reutrn vorgangWithEingangResource', () => {
-      const vorgangWithEingangResource: VorgangWithEingangResource =
-        createVorgangWithEingangResource();
-      service.vorgangWithEingangResource = vorgangWithEingangResource;
-
-      const vorang: VorgangWithEingangResource = service.getVorgangWithEingangResource();
-
-      expect(vorang).toBe(vorgangWithEingangResource);
-    });
-  });
-
-  describe('deleteFile', () => {
-    it('should emit binary file resource', (done) => {
-      const file: BinaryFileResource = createBinaryFileResource();
-
-      service.getFileDelete().subscribe((deletedFile: BinaryFileResource) => {
-        expect(deletedFile).toEqual(file);
-        done();
-      });
-
-      service.deleteFile(file);
-    });
-  });
-
-  describe('setActiveStep', () => {
-    it('should emit step', () => {
-      service.setActiveStep(3);
-
-      expect(service.getActiveStep()).toBeObservable(singleCold(3));
-    });
-  });
-
-  describe('patchNachricht', () => {
-    it('should patch nachrichtSubject with value from document', () => {
-      const documentResource: DocumentResource = createDocumentResource();
-
-      service.patchNachricht(documentResource);
-
-      expect(service.getValue().nachrichtSubject).toEqual(documentResource.nachrichtSubject);
-    });
-
-    it('should not patch nachrichtSubject if given', () => {
-      const documentResource: DocumentResource = createDocumentResource();
-      const bescheidResource: BescheidResource = createBescheidResource();
-      service.patchValues(bescheidResource);
-
-      service.patchNachricht(documentResource);
-
-      expect(service.getValue().nachrichtSubject).toEqual(bescheidResource.nachrichtSubject);
-    });
-
-    it('should patch nachrichtText with value from document', () => {
-      const documentResource: DocumentResource = createDocumentResource();
-
-      service.patchNachricht(documentResource);
-
-      expect(service.getValue().nachrichtText).toEqual(documentResource.nachrichtText);
-    });
-
-    it('should not patch nachrichtText if given', () => {
-      const documentResource: DocumentResource = createDocumentResource();
-      const bescheidResource: BescheidResource = createBescheidResource();
-      service.patchValues(bescheidResource);
-
-      service.patchNachricht(documentResource);
-
-      expect(service.getValue().nachrichtText).toEqual(bescheidResource.nachrichtText);
-    });
-  });
-
-  describe('clearNachricht', () => {
-    it('should patch values', () => {
-      const documentResource: DocumentResource = createDocumentResource();
-
-      service.patchNachricht(documentResource);
-      service.clearNachricht();
-
-      expect(service.getValue().nachrichtSubject).toEqual(EMPTY_STRING);
-      expect(service.getValue().nachrichtText).toEqual(EMPTY_STRING);
-    });
-  });
-
-  describe('setSendBy', () => {
-    it.each(Object.keys(BescheidSendBy))(
-      'should set control value to %s',
-      (sendBy: BescheidSendBy) => {
-        service.setSendBy(sendBy);
-
-        expect(service.getValue().sendBy).toEqual(sendBy);
-      },
-    );
-  });
-
-  describe('validateBescheidDocumentExists', () => {
-    it('should return true', () => {
-      service.getValue = jest.fn().mockReturnValue(createBescheid());
-
-      service.validateBescheidDocumentExists();
-
-      expect(service.validateBescheidDocumentExists()).toBeTruthy();
-    });
-
-    it('should return false', () => {
-      service.getValue = jest.fn().mockReturnValue({
-        ...createBescheid(),
-        bescheidDocument: null,
-      } as Bescheid);
-
-      service.validateBescheidDocumentExists();
-
-      expect(service.validateBescheidDocumentExists()).toBeFalsy();
-    });
-
-    describe('getShowMissingBescheidDocumentError', () => {
-      it('should emit true', () => {
-        service.getValue = jest.fn().mockReturnValue({
-          ...createBescheid(),
-          bescheidDocument: null,
-        } as Bescheid);
-
-        service.validateBescheidDocumentExists();
-
-        expect(service.getShowMissingBescheidDocumentError()).toBeObservable(singleCold(true));
-      });
-
-      it('should emit false', () => {
-        service.getValue = jest.fn().mockReturnValue(createBescheid());
-
-        service.validateBescheidDocumentExists();
-
-        expect(service.getShowMissingBescheidDocumentError()).toBeObservable(singleCold(false));
-      });
-    });
-  });
-
-  describe('isBetreffInvalid', () => {
-    it('should return true', () => {
-      service.form.controls[BescheidenFormService.FIELD_NACHRICHT_SUBJECT].setErrors({});
-
-      expect(service.isBetreffInvalid()).toBeTruthy();
-    });
-
-    it('should return false', () => {
-      service.form.controls[BescheidenFormService.FIELD_NACHRICHT_SUBJECT].setErrors(null);
-
-      expect(service.isBetreffInvalid()).toBeFalsy();
-    });
-  });
-
-  describe('isNachrichtInvalid', () => {
-    it('should return true', () => {
-      service.form.controls[BescheidenFormService.FIELD_NACHRICHT_TEXT].setErrors({});
-
-      expect(service.isNachrichtInvalid()).toBeTruthy();
-    });
-
-    it('should return false', () => {
-      service.form.controls[BescheidenFormService.FIELD_NACHRICHT_TEXT].setErrors(null);
-
-      expect(service.isNachrichtInvalid()).toBeFalsy();
-    });
-  });
-
-  describe('updateNachrichtOnSuccess', () => {
-    const subject: string = faker.lorem.words(3);
-    const text: string = faker.lorem.text();
-    const bescheidResource: BescheidResource = createBescheidResource();
-
-    beforeEach(() => {
-      bescheidResource.nachrichtSubject = subject;
-      bescheidResource.nachrichtText = text;
-      bescheidService.getBescheidDraft.mockReturnValue(of(createStateResource(bescheidResource)));
-    });
-
-    it('should get bescheid draft', () => {
-      service
-        .updateNachrichtOnSuccess()(
-          of(createCommandStateResource([CommandLinkRel.EFFECTED_RESOURCE])),
-        )
-        .subscribe();
-
-      expect(bescheidService.getBescheidDraft).toHaveBeenCalled();
-    });
-
-    it('should set subject', () => {
-      service
-        .updateNachrichtOnSuccess()(
-          of(createCommandStateResource([CommandLinkRel.EFFECTED_RESOURCE])),
-        )
-        .subscribe();
-
-      expect(service.getValue().nachrichtSubject).toEqual(subject);
-    });
-
-    it('should set text', () => {
-      service
-        .updateNachrichtOnSuccess()(
-          of(createCommandStateResource([CommandLinkRel.EFFECTED_RESOURCE])),
-        )
-        .subscribe();
-
-      expect(service.getValue().nachrichtText).toEqual(text);
-    });
-  });
-});
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
deleted file mode 100644
index 27dd25492855e410c1ce03221a1b97da8fd67a77..0000000000000000000000000000000000000000
--- a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/bescheiden.formservice.ts
+++ /dev/null
@@ -1,307 +0,0 @@
-/*
- * Copyright (C) 2024 Das Land Schleswig-Holstein vertreten durch den
- * Ministerpräsidenten des Landes Schleswig-Holstein
- * Staatskanzlei
- * Abteilung Digitalisierung und zentrales IT-Management der Landesregierung
- *
- * Lizenziert unter der EUPL, Version 1.2 oder - sobald
- * diese von der Europäischen Kommission genehmigt wurden -
- * Folgeversionen der EUPL ("Lizenz");
- * Sie dürfen dieses Werk ausschließlich gemäß
- * dieser Lizenz nutzen.
- * Eine Kopie der Lizenz finden Sie hier:
- *
- * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
- *
- * Sofern nicht durch anwendbare Rechtsvorschriften
- * gefordert oder in schriftlicher Form vereinbart, wird
- * die unter der Lizenz verbreitete Software "so wie sie
- * ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN -
- * ausdrücklich oder stillschweigend - verbreitet.
- * Die sprachspezifischen Genehmigungen und Beschränkungen
- * unter der Lizenz sind dem Lizenztext zu entnehmen.
- */
-import {
-  Bescheid,
-  BescheidLinkRel,
-  BescheidResource,
-  BescheidSendBy,
-  BescheidService,
-  DocumentResource,
-} from '@alfa-client/bescheid-shared';
-import { BinaryFileResource } from '@alfa-client/binary-file-shared';
-import { CommandResource, tapOnCommandSuccessfullyDone } from '@alfa-client/command-shared';
-import {
-  AbstractFormService,
-  EMPTY_STRING,
-  StateResource,
-  convertToBoolean,
-  formatForDatabase,
-  isLoaded,
-  isNotEmpty,
-  isNotNil,
-} from '@alfa-client/tech-shared';
-import { VorgangWithEingangResource } from '@alfa-client/vorgang-shared';
-import { Injectable, OnDestroy } from '@angular/core';
-import { FormControl, UntypedFormArray, UntypedFormBuilder, UntypedFormControl, UntypedFormGroup } from '@angular/forms';
-import { Resource, ResourceUri, getUrl, hasLink } from '@ngxp/rest';
-import { isEmpty, isNil, isUndefined } from 'lodash-es';
-import { BehaviorSubject, Observable, Subject, Subscription, combineLatest, filter, first, map, startWith } from 'rxjs';
-
-@Injectable()
-export class BescheidenFormService extends AbstractFormService<CommandResource> implements OnDestroy {
-  static readonly FIELD_BESCHIEDEN_AM = 'beschiedenAm';
-  static readonly FIELD_BEWILLIGT = 'bewilligt';
-  static readonly FIELD_BESCHEID_DOCUMENT = 'bescheidDocument';
-  static readonly FIELD_ATTACHMENTS = 'attachments';
-  public static readonly FIELD_SEND_BY = 'sendBy';
-  static readonly FIELD_NACHRICHT_SUBJECT = 'nachrichtSubject';
-  static readonly FIELD_NACHRICHT_TEXT = 'nachrichtText';
-
-  static readonly FIELD_PATH_PREFIX = 'command.body';
-
-  static readonly BETREFF_DEFAULT: string = 'Ihr Bescheid zum Antrag';
-
-  private readonly bescheidChanges$: BehaviorSubject<Bescheid>;
-  private readonly fileDelete$: Subject<BinaryFileResource>;
-  private readonly showMissingBescheidDocumentError$: BehaviorSubject<boolean> = new BehaviorSubject<boolean>(false);
-
-  private readonly activeStep$: BehaviorSubject<number> = new BehaviorSubject(1);
-  readonly sendByManual: BehaviorSubject<boolean> = new BehaviorSubject(false);
-
-  vorgangWithEingangResource: VorgangWithEingangResource;
-
-  private formControlSubscriptions: Subscription;
-  private formChangesSubscription: Subscription;
-
-  constructor(
-    formBuilder: UntypedFormBuilder,
-    private readonly bescheidService: BescheidService,
-  ) {
-    super(formBuilder);
-
-    this.bescheidChanges$ = new BehaviorSubject<Bescheid>(this.getFormValue());
-    this.fileDelete$ = new Subject<BinaryFileResource>();
-    this.init();
-  }
-
-  init(): void {
-    this.formControlSubscriptions = this.subscribeToSendBy();
-    this.initializeFormChanges();
-  }
-
-  subscribeToSendBy(): Subscription {
-    return this.form.controls[BescheidenFormService.FIELD_SEND_BY].valueChanges.subscribe((sendBy: BescheidSendBy) =>
-      this.updateSendByManual(sendBy),
-    );
-  }
-
-  updateSendByManual(sendBy: BescheidSendBy): void {
-    const isSendByManual = sendBy === BescheidSendBy.MANUAL;
-    if (isSendByManual !== this.sendByManual.value) this.sendByManual.next(isSendByManual);
-  }
-
-  initializeFormChanges(): void {
-    this.formChangesSubscription = this.form.valueChanges
-      .pipe(
-        startWith(this.getFormValue()),
-        map((value) => this.getValueWithApproved(value)),
-      )
-      .subscribe((bescheid) => this.bescheidChanges$.next(bescheid));
-  }
-
-  ngOnDestroy(): void {
-    this.unsubscribe();
-  }
-
-  private unsubscribe(): void {
-    if (isNotNil(this.formChangesSubscription) && !this.formChangesSubscription.closed) {
-      this.formChangesSubscription.unsubscribe();
-    }
-    if (isNotNil(this.formControlSubscriptions)) this.formControlSubscriptions.unsubscribe();
-  }
-
-  public patchValues(bescheid: BescheidResource): void {
-    if (isNil(bescheid)) {
-      return;
-    }
-    const bescheidDocumentUri: ResourceUri = this.getBescheidDocumentUri(bescheid);
-    this.bescheidService.setDocumentUri(bescheidDocumentUri);
-    this.patch({
-      [BescheidenFormService.FIELD_BESCHIEDEN_AM]: bescheid.beschiedenAm,
-      [BescheidenFormService.FIELD_BEWILLIGT]: String(bescheid.bewilligt),
-      [BescheidenFormService.FIELD_BESCHEID_DOCUMENT]: bescheidDocumentUri,
-      [BescheidenFormService.FIELD_SEND_BY]: isUndefined(bescheid.sendBy) ? BescheidSendBy.NACHRICHT : bescheid.sendBy,
-      [BescheidenFormService.FIELD_NACHRICHT_SUBJECT]: bescheid.nachrichtSubject,
-      [BescheidenFormService.FIELD_NACHRICHT_TEXT]: bescheid.nachrichtText,
-    });
-    bescheid.attachments.forEach((attachmentLink) =>
-      (this.form.controls[BescheidenFormService.FIELD_ATTACHMENTS] as UntypedFormArray).push(
-        new UntypedFormControl(attachmentLink),
-      ),
-    );
-  }
-
-  private getBescheidDocumentUri(bescheid: BescheidResource): ResourceUri {
-    if (hasLink(bescheid, BescheidLinkRel.BESCHEID_DOCUMENT)) {
-      return getUrl(bescheid, BescheidLinkRel.BESCHEID_DOCUMENT);
-    }
-    return null;
-  }
-
-  protected initForm(): UntypedFormGroup {
-    return this.formBuilder.group({
-      [BescheidenFormService.FIELD_BESCHIEDEN_AM]: new UntypedFormControl(new Date(Date.now())),
-      [BescheidenFormService.FIELD_BEWILLIGT]: new UntypedFormControl('true'),
-      [BescheidenFormService.FIELD_SEND_BY]: new UntypedFormControl(BescheidSendBy.NACHRICHT),
-      [BescheidenFormService.FIELD_BESCHEID_DOCUMENT]: new UntypedFormControl(null),
-      [BescheidenFormService.FIELD_ATTACHMENTS]: new UntypedFormArray([]),
-      [BescheidenFormService.FIELD_NACHRICHT_SUBJECT]: new UntypedFormControl(''),
-      [BescheidenFormService.FIELD_NACHRICHT_TEXT]: new UntypedFormControl(''),
-    });
-  }
-
-  protected getPathPrefix(): string {
-    return BescheidenFormService.FIELD_PATH_PREFIX;
-  }
-
-  protected doSubmit(): Observable<StateResource<CommandResource>> {
-    if (this.isPatch() || this.bescheidService.existsBescheidDraft()) {
-      return this.bescheidService.updateBescheid(this.getValue());
-    } else {
-      return this.bescheidService
-        .createBescheid(this.vorgangWithEingangResource, this.getValue())
-        .pipe(this.updateNachrichtOnSuccess());
-    }
-  }
-
-  updateNachrichtOnSuccess(): (source: Observable<StateResource<CommandResource>>) => Observable<StateResource<CommandResource>> {
-    return tapOnCommandSuccessfullyDone(() => {
-      this.bescheidService
-        .getBescheidDraft()
-        .pipe(filter(isLoaded), first())
-        .subscribe((bescheidStateResource: StateResource<BescheidResource>) => {
-          this.setNachrichtSubject(bescheidStateResource.resource.nachrichtSubject);
-          this.setNachrichtText(bescheidStateResource.resource.nachrichtText);
-        });
-    });
-  }
-
-  public submitDraft(): Observable<StateResource<Resource>> {
-    return this.submit().pipe(tapOnCommandSuccessfullyDone(() => this.bescheidService.reloadCurrentVorgang()));
-  }
-
-  public getValue(): Bescheid {
-    const value: any = this.getFormValue();
-    return {
-      ...value,
-      beschiedenAm: formatForDatabase(value.beschiedenAm),
-      bewilligt: convertToBoolean(value.bewilligt),
-      attachments: value.attachments,
-    };
-  }
-
-  public getValueWithApproved(value: any): Bescheid {
-    return {
-      ...value,
-      bewilligt: isNotNil(value.bewilligt) ? convertToBoolean(value.bewilligt) : false,
-    };
-  }
-
-  public getBescheidChanges(): Observable<Bescheid> {
-    return this.bescheidChanges$.asObservable();
-  }
-
-  public setVorgangWithEingangResource(vorgangWithEingangResource: VorgangWithEingangResource): void {
-    this.vorgangWithEingangResource = vorgangWithEingangResource;
-  }
-
-  public getVorgangWithEingangResource(): VorgangWithEingangResource {
-    return this.vorgangWithEingangResource;
-  }
-
-  public deleteFile(binaryFileResource: BinaryFileResource): void {
-    this.fileDelete$.next(binaryFileResource);
-  }
-
-  public getFileDelete(): Observable<BinaryFileResource> {
-    return this.fileDelete$.asObservable();
-  }
-
-  public setActiveStep(step: number) {
-    this.activeStep$.next(step);
-  }
-
-  public getActiveStep(): Observable<number> {
-    return this.activeStep$.asObservable();
-  }
-
-  public clearBescheidDocumentFile(): void {
-    this.updateBescheidDocumentFile(null);
-  }
-
-  public updateBescheidDocumentFile(uri: ResourceUri): void {
-    this.getBescheidDocumentControl().patchValue(uri);
-  }
-
-  private getBescheidDocumentControl(): FormControl {
-    return <FormControl>this.form.controls[BescheidenFormService.FIELD_BESCHEID_DOCUMENT];
-  }
-
-  public isSendByManual(): Observable<boolean> {
-    return this.sendByManual.asObservable();
-  }
-
-  public patchNachricht(documentResource: DocumentResource): void {
-    const value = this.getValue();
-    if (isEmpty(value.nachrichtSubject)) {
-      if (isNotEmpty(documentResource.nachrichtSubject)) {
-        this.setNachrichtSubject(documentResource.nachrichtSubject);
-      }
-    }
-
-    if (isEmpty(value.nachrichtText)) {
-      if (isNotEmpty(documentResource.nachrichtText)) {
-        this.setNachrichtText(documentResource.nachrichtText);
-      }
-    }
-  }
-
-  public clearNachricht(): void {
-    this.setNachrichtSubject(EMPTY_STRING);
-    this.setNachrichtText(EMPTY_STRING);
-  }
-
-  private setNachrichtSubject(value: string): void {
-    this.form.controls[BescheidenFormService.FIELD_NACHRICHT_SUBJECT].patchValue(value);
-  }
-
-  private setNachrichtText(value: string): void {
-    this.form.controls[BescheidenFormService.FIELD_NACHRICHT_TEXT].patchValue(value);
-  }
-
-  public setSendBy(sendBy: BescheidSendBy): void {
-    this.form.controls[BescheidenFormService.FIELD_SEND_BY].patchValue(sendBy);
-  }
-
-  public getShowMissingBescheidDocumentError(): Observable<boolean> {
-    return combineLatest([this.showMissingBescheidDocumentError$.asObservable(), this.getBescheidChanges()]).pipe(
-      map(
-        ([showMissingBescheidDocumentError, bescheid]) => showMissingBescheidDocumentError && isEmpty(bescheid.bescheidDocument),
-      ),
-    );
-  }
-
-  public validateBescheidDocumentExists(): boolean {
-    this.showMissingBescheidDocumentError$.next(isEmpty(this.getValue().bescheidDocument));
-    return isNotEmpty(this.getValue().bescheidDocument);
-  }
-
-  public isBetreffInvalid(): boolean {
-    return this.form.controls[BescheidenFormService.FIELD_NACHRICHT_SUBJECT].invalid;
-  }
-
-  public isNachrichtInvalid(): boolean {
-    return this.form.controls[BescheidenFormService.FIELD_NACHRICHT_TEXT].invalid;
-  }
-}
diff --git a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/bescheiden.model.ts b/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/bescheiden.model.ts
deleted file mode 100644
index 61f653e0c6e04b4e60bd03970bf9839d0a06ee07..0000000000000000000000000000000000000000
--- a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/bescheiden.model.ts
+++ /dev/null
@@ -1,30 +0,0 @@
-/*
- * Copyright (C) 2024 Das Land Schleswig-Holstein vertreten durch den
- * Ministerpräsidenten des Landes Schleswig-Holstein
- * Staatskanzlei
- * Abteilung Digitalisierung und zentrales IT-Management der Landesregierung
- *
- * Lizenziert unter der EUPL, Version 1.2 oder - sobald
- * diese von der Europäischen Kommission genehmigt wurden -
- * Folgeversionen der EUPL ("Lizenz");
- * Sie dürfen dieses Werk ausschließlich gemäß
- * dieser Lizenz nutzen.
- * Eine Kopie der Lizenz finden Sie hier:
- *
- * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
- *
- * Sofern nicht durch anwendbare Rechtsvorschriften
- * gefordert oder in schriftlicher Form vereinbart, wird
- * die unter der Lizenz verbreitete Software "so wie sie
- * ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN -
- * ausdrücklich oder stillschweigend - verbreitet.
- * Die sprachspezifischen Genehmigungen und Beschränkungen
- * unter der Lizenz sind dem Lizenztext zu entnehmen.
- */
-import { BescheidResource } from '@alfa-client/bescheid-shared';
-import { VorgangWithEingangResource } from '@alfa-client/vorgang-shared';
-
-export interface BescheidenDialogData {
-  vorgangWithEingangResource: VorgangWithEingangResource;
-  bescheidDraftResource?: BescheidResource;
-}
diff --git a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-result/vorgang-detail-bescheiden-result-attachments/vorgang-detail-bescheiden-result-attachments.component.html b/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-result/vorgang-detail-bescheiden-result-attachments/vorgang-detail-bescheiden-result-attachments.component.html
deleted file mode 100644
index b191b552c456fd14168b0df509afdc6a38ddd0fd..0000000000000000000000000000000000000000
--- a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-result/vorgang-detail-bescheiden-result-attachments/vorgang-detail-bescheiden-result-attachments.component.html
+++ /dev/null
@@ -1,55 +0,0 @@
-<!--
-
-    Copyright (C) 2024 Das Land Schleswig-Holstein vertreten durch den
-    Ministerpräsidenten des Landes Schleswig-Holstein
-    Staatskanzlei
-    Abteilung Digitalisierung und zentrales IT-Management der Landesregierung
-
-    Lizenziert unter der EUPL, Version 1.2 oder - sobald
-    diese von der Europäischen Kommission genehmigt wurden -
-    Folgeversionen der EUPL ("Lizenz");
-    Sie dürfen dieses Werk ausschließlich gemäß
-    dieser Lizenz nutzen.
-    Eine Kopie der Lizenz finden Sie hier:
-
-    https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
-
-    Sofern nicht durch anwendbare Rechtsvorschriften
-    gefordert oder in schriftlicher Form vereinbart, wird
-    die unter der Lizenz verbreitete Software "so wie sie
-    ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN -
-    ausdrücklich oder stillschweigend - verbreitet.
-    Die sprachspezifischen Genehmigungen und Beschränkungen
-    unter der Lizenz sind dem Lizenztext zu entnehmen.
-
--->
-<ods-attachment-wrapper>
-  <alfa-binary-file2-container
-    *ngFor="let attachment of existingAttachments"
-    [file]="attachment"
-    [deletable]="deletable"
-    (startDelete)="deleteFile($event)"
-  >
-  </alfa-binary-file2-container>
-  <ng-container *ngFor="let attachment of uploadedAttachments">
-    <alfa-binary-file2-container
-      *ngIf="!attachment.loading && attachment.resource"
-      [file]="attachment.resource"
-      [deletable]="deletable"
-      (startDelete)="deleteFile($event)"
-      [attr.data-test-id]="(attachment.resource.name | convertForDataTest) + '-file2-container'"
-    >
-    </alfa-binary-file2-container>
-  </ng-container>
-  <ng-container *ngIf="uploadInProgress$ | async as uploadFileInProgress">
-    <ods-attachment
-      data-test-id="attachment-upload-in-progress"
-      *ngIf="uploadFileInProgress.loading || uploadFileInProgress.error"
-      [loadingCaption]="uploadFileInProgress.fileName"
-      errorCaption="Fehler beim Hochladen"
-      [errorMessages]="uploadFileInProgress.error | convertProblemDetailToErrorMessages"
-      description="Anhang wird hochgeladen"
-      [isLoading]="uploadFileInProgress.loading"
-    ></ods-attachment>
-  </ng-container>
-</ods-attachment-wrapper>
diff --git a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-result/vorgang-detail-bescheiden-result-attachments/vorgang-detail-bescheiden-result-attachments.component.spec.ts b/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-result/vorgang-detail-bescheiden-result-attachments/vorgang-detail-bescheiden-result-attachments.component.spec.ts
deleted file mode 100644
index 237ed0fe684cfe2e873c2a2ff6d38865520476be..0000000000000000000000000000000000000000
--- a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-result/vorgang-detail-bescheiden-result-attachments/vorgang-detail-bescheiden-result-attachments.component.spec.ts
+++ /dev/null
@@ -1,374 +0,0 @@
-/*
- * Copyright (C) 2024 Das Land Schleswig-Holstein vertreten durch den
- * Ministerpräsidenten des Landes Schleswig-Holstein
- * Staatskanzlei
- * Abteilung Digitalisierung und zentrales IT-Management der Landesregierung
- *
- * Lizenziert unter der EUPL, Version 1.2 oder - sobald
- * diese von der Europäischen Kommission genehmigt wurden -
- * Folgeversionen der EUPL ("Lizenz");
- * Sie dürfen dieses Werk ausschließlich gemäß
- * dieser Lizenz nutzen.
- * Eine Kopie der Lizenz finden Sie hier:
- *
- * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
- *
- * Sofern nicht durch anwendbare Rechtsvorschriften
- * gefordert oder in schriftlicher Form vereinbart, wird
- * die unter der Lizenz verbreitete Software "so wie sie
- * ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN -
- * ausdrücklich oder stillschweigend - verbreitet.
- * Die sprachspezifischen Genehmigungen und Beschränkungen
- * unter der Lizenz sind dem Lizenztext zu entnehmen.
- */
-import { BescheidService } from '@alfa-client/bescheid-shared';
-import { BinaryFile2ContainerComponent } from '@alfa-client/binary-file';
-import { BinaryFileResource } from '@alfa-client/binary-file-shared';
-import {
-  convertForDataTest,
-  ConvertForDataTestPipe,
-  createErrorStateResource,
-  createStateResource,
-  FileSizePipe,
-  StateResource,
-} from '@alfa-client/tech-shared';
-import { existsAsHtmlElement, Mock, mock, notExistsAsHtmlElement } from '@alfa-client/test-utils';
-import { OzgcloudSvgIconComponent, SpinnerComponent } from '@alfa-client/ui';
-import { ComponentFixture, TestBed } from '@angular/core/testing';
-import { MatIcon } from '@angular/material/icon';
-import { AttachmentComponent, AttachmentWrapperComponent, SpinnerIconComponent } from '@ods/system';
-import { ConvertProblemDetailToErrorMessagesPipe } from 'libs/tech-shared/src/lib/pipe/convert-problem-detail-to-error-messages.pipe';
-import { MockComponent, MockPipe } from 'ng-mocks';
-import { BehaviorSubject, EMPTY, Observable, of, Subscription } from 'rxjs';
-import { createUploadFileInProgress } from '../../../../../../../bescheid-shared/src/test/bescheid';
-import {
-  createBinaryFileResource,
-  createLoadedBinaryFileResource,
-  createLoadingBinaryFileStateResource,
-} from '../../../../../../../binary-file-shared/test/binary-file';
-import { getDataTestIdOf } from '../../../../../../../tech-shared/test/data-test';
-import { createApiError } from '../../../../../../../tech-shared/test/error';
-import { BescheidenFormService } from '../../bescheiden.formservice';
-import { VorgangDetailBescheidenResultAttachmentsComponent } from './vorgang-detail-bescheiden-result-attachments.component';
-
-describe('VorgangDetailBescheidenResultAttachmentsComponent', () => {
-  let component: VorgangDetailBescheidenResultAttachmentsComponent;
-  let fixture: ComponentFixture<VorgangDetailBescheidenResultAttachmentsComponent>;
-
-  let bescheidService: Mock<BescheidService>;
-  let formService: Mock<BescheidenFormService>;
-
-  beforeEach(async () => {
-    bescheidService = mock(BescheidService);
-    bescheidService.getAttachments.mockReturnValue(EMPTY);
-    bescheidService.getUploadedAttachment.mockReturnValue(EMPTY);
-
-    formService = mock(BescheidenFormService);
-    formService.getBescheidChanges.mockReturnValue(
-      new BehaviorSubject({ beschiedenAm: new Date(), bewilligt: false }),
-    );
-
-    await TestBed.configureTestingModule({
-      declarations: [
-        VorgangDetailBescheidenResultAttachmentsComponent,
-        ConvertForDataTestPipe,
-        MatIcon,
-        MockPipe(FileSizePipe),
-        MockPipe(ConvertProblemDetailToErrorMessagesPipe),
-        MockComponent(OzgcloudSvgIconComponent),
-        MockComponent(SpinnerComponent),
-        MockComponent(AttachmentWrapperComponent),
-        MockComponent(BinaryFile2ContainerComponent),
-        MockComponent(SpinnerIconComponent),
-        MockComponent(AttachmentComponent),
-      ],
-      providers: [
-        {
-          provide: BescheidenFormService,
-          useValue: formService,
-        },
-        {
-          provide: BescheidService,
-          useValue: bescheidService,
-        },
-      ],
-    }).compileComponents();
-
-    fixture = TestBed.createComponent(VorgangDetailBescheidenResultAttachmentsComponent);
-    component = fixture.componentInstance;
-    fixture.detectChanges();
-  });
-
-  it('should create', () => {
-    expect(component).toBeTruthy();
-  });
-
-  describe('render', () => {
-    const attachment = createStateResource(createBinaryFileResource());
-    const dataTestId = getDataTestIdOf(
-      `${convertForDataTest(attachment.resource.name)}-file2-container`,
-    );
-    const uploadInProgressDataTestId: string = getDataTestIdOf('attachment-upload-in-progress');
-
-    beforeEach(() => {
-      component.uploadedAttachments = [attachment];
-    });
-
-    it('should render uploaded file container', () => {
-      component.ngOnInit();
-      fixture.detectChanges();
-
-      existsAsHtmlElement(fixture, dataTestId);
-    });
-
-    it('should not render uploaded file container on loading', () => {
-      component.uploadedAttachments = [{ ...attachment, loading: true }];
-      component.ngOnInit();
-      fixture.detectChanges();
-
-      notExistsAsHtmlElement(fixture, dataTestId);
-    });
-
-    it('should not render uploaded file container on null resource', () => {
-      component.uploadedAttachments = [{ ...attachment, resource: null }];
-      component.ngOnInit();
-      fixture.detectChanges();
-
-      notExistsAsHtmlElement(fixture, dataTestId);
-    });
-
-    it('should render attachment in progress component when loading', () => {
-      component.uploadInProgress$ = of({ ...createUploadFileInProgress(), loading: true });
-
-      fixture.detectChanges();
-
-      existsAsHtmlElement(fixture, uploadInProgressDataTestId);
-    });
-
-    it('should render attachment in progress component on error', () => {
-      component.uploadInProgress$ = of({
-        ...createUploadFileInProgress(),
-        loading: false,
-        error: createApiError(),
-      });
-
-      fixture.detectChanges();
-
-      existsAsHtmlElement(fixture, uploadInProgressDataTestId);
-    });
-
-    it('should not render attachment in progress component when not loading and no error', () => {
-      component.uploadInProgress$ = of({
-        ...createUploadFileInProgress(),
-        loading: false,
-        error: null,
-      });
-
-      fixture.detectChanges();
-
-      notExistsAsHtmlElement(fixture, uploadInProgressDataTestId);
-    });
-  });
-
-  describe('ngOnInit', () => {
-    let loadExistingAttachments: jest.Mock;
-    let subscribeToAttachmentUpload: jest.Mock;
-
-    beforeEach(() => {
-      component.loadExistingAttachments = loadExistingAttachments = jest.fn();
-      component.subscribeToAttachmentUpload = subscribeToAttachmentUpload = jest.fn();
-    });
-
-    it('should load existing attachments', () => {
-      component.ngOnInit();
-
-      expect(loadExistingAttachments).toHaveBeenCalled();
-    });
-
-    it('should subscribe to attachments upload', () => {
-      component.ngOnInit();
-
-      expect(subscribeToAttachmentUpload).toHaveBeenCalled();
-    });
-
-    it('should get upload attachment in progress', () => {
-      component.ngOnInit();
-
-      expect(bescheidService.getUploadAttachmentInProgress).toHaveBeenCalled();
-    });
-  });
-
-  describe('ngOnDestroy', () => {
-    it('should unsubscribe', () => {
-      const subscription = mock(Subscription);
-      const observable = mock(Observable);
-      observable.subscribe.mockReturnValue(subscription);
-      bescheidService.getUploadedAttachment.mockReturnValue(observable);
-      component.ngOnInit();
-
-      component.ngOnDestroy();
-
-      expect(subscription.unsubscribe).toHaveBeenCalled();
-    });
-  });
-
-  describe('loadExistingAttachments', () => {
-    let attachment: BinaryFileResource;
-
-    beforeEach(() => {
-      attachment = createBinaryFileResource();
-      bescheidService.getAttachments.mockReturnValue(of([attachment]));
-    });
-
-    it('should get attachments', () => {
-      component.loadExistingAttachments();
-
-      expect(bescheidService.getAttachments).toHaveBeenCalled();
-    });
-
-    it('should set existing attachments', () => {
-      component.loadExistingAttachments();
-
-      expect(component.existingAttachments).toEqual([attachment]);
-    });
-
-    it('should reset uploaded attachments', () => {
-      component.uploadedAttachments = [createStateResource(createBinaryFileResource())];
-
-      component.loadExistingAttachments();
-
-      expect(component.uploadedAttachments).toEqual([]);
-    });
-  });
-
-  describe('subscribeToAttachmentUpload', () => {
-    let attachment: StateResource<BinaryFileResource>;
-
-    beforeEach(() => {
-      attachment = createLoadedBinaryFileResource();
-      bescheidService.getUploadedAttachment.mockReturnValue(of(attachment));
-    });
-
-    it('should should set uploaded attachments', () => {
-      component.buildUploadedAttachments = jest.fn().mockReturnValue([attachment]);
-
-      component.subscribeToAttachmentUpload();
-
-      expect(component.uploadedAttachments).toEqual([attachment]);
-    });
-  });
-
-  describe('buildUploadedAttachments', () => {
-    let uploadedAttachment: StateResource<BinaryFileResource>;
-    let uploadedAttachments: StateResource<BinaryFileResource>[];
-    let loadingAttachment: StateResource<BinaryFileResource>;
-
-    beforeEach(() => {
-      uploadedAttachment = createLoadedBinaryFileResource();
-      uploadedAttachments = [uploadedAttachment];
-      component.uploadedAttachments = uploadedAttachments;
-      loadingAttachment = createLoadingBinaryFileStateResource();
-    });
-
-    it('should add loaded state resource', () => {
-      const newBinaryFileResource = createLoadedBinaryFileResource();
-
-      const uploaded = component.buildUploadedAttachments(newBinaryFileResource);
-
-      expect(uploaded).toEqual([uploadedAttachment, newBinaryFileResource]);
-    });
-
-    it('should add error state resource', () => {
-      const errorStateResource = createErrorStateResource(createApiError());
-
-      const uploaded = component.buildUploadedAttachments(errorStateResource);
-
-      expect(uploaded).toEqual([uploadedAttachment, errorStateResource]);
-    });
-
-    it('should add loading state resource if none exists', () => {
-      const uploaded = component.buildUploadedAttachments(loadingAttachment);
-
-      expect(uploaded).toEqual([uploadedAttachment, loadingAttachment]);
-    });
-
-    it('should not add loading state resource if one exists', () => {
-      component.uploadedAttachments = [...component.uploadedAttachments, loadingAttachment];
-
-      const uploaded = component.buildUploadedAttachments(createLoadingBinaryFileStateResource());
-
-      expect(uploaded).toEqual([uploadedAttachment, loadingAttachment]);
-    });
-
-    it('should should not have error state resource if loading in progress', () => {
-      component.uploadedAttachments = [createErrorStateResource(createApiError())];
-
-      const uploaded = component.buildUploadedAttachments(loadingAttachment);
-
-      expect(uploaded).toEqual([loadingAttachment]);
-    });
-  });
-
-  describe('deleteFile', () => {
-    let existingAttachment: BinaryFileResource;
-    let uploadedAttachmentStateResource: StateResource<BinaryFileResource>;
-
-    beforeEach(() => {
-      existingAttachment = createBinaryFileResource();
-      uploadedAttachmentStateResource = createStateResource(createBinaryFileResource());
-    });
-
-    it('should call form service', () => {
-      const file = createBinaryFileResource();
-
-      component.deleteFile(file);
-
-      expect(formService.deleteFile).toHaveBeenCalledWith(file);
-    });
-
-    it('should delete attachment from uploaded', () => {
-      component.uploadedAttachments = [uploadedAttachmentStateResource];
-
-      component.deleteFile(uploadedAttachmentStateResource.resource);
-
-      expect(component.uploadedAttachments).toEqual([]);
-    });
-
-    it('should leave errors in uploaded', () => {
-      const error: StateResource<BinaryFileResource> = createStateResource(
-        createBinaryFileResource(),
-      );
-      component.uploadedAttachments = [error];
-
-      component.deleteFile(uploadedAttachmentStateResource.resource);
-
-      expect(component.uploadedAttachments).toEqual([error]);
-    });
-
-    it('should not delete attachment from existing', () => {
-      component.uploadedAttachments = [uploadedAttachmentStateResource];
-      component.existingAttachments = [existingAttachment];
-
-      component.deleteFile(uploadedAttachmentStateResource.resource);
-
-      expect(component.existingAttachments).toEqual([existingAttachment]);
-    });
-
-    it('should delete attachment from existing', () => {
-      component.existingAttachments = [existingAttachment];
-
-      component.deleteFile(existingAttachment);
-
-      expect(component.existingAttachments).toEqual([]);
-    });
-
-    it('should not delete attachment from existing', () => {
-      component.uploadedAttachments = [uploadedAttachmentStateResource];
-      component.existingAttachments = [existingAttachment];
-
-      component.deleteFile(existingAttachment);
-
-      expect(component.uploadedAttachments).toEqual([uploadedAttachmentStateResource]);
-    });
-  });
-});
diff --git a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-result/vorgang-detail-bescheiden-result-attachments/vorgang-detail-bescheiden-result-attachments.component.ts b/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-result/vorgang-detail-bescheiden-result-attachments/vorgang-detail-bescheiden-result-attachments.component.ts
deleted file mode 100644
index 9095679deabf5902fdaed7faab0aafb234e6cda0..0000000000000000000000000000000000000000
--- a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-result/vorgang-detail-bescheiden-result-attachments/vorgang-detail-bescheiden-result-attachments.component.ts
+++ /dev/null
@@ -1,109 +0,0 @@
-/*
- * Copyright (C) 2024 Das Land Schleswig-Holstein vertreten durch den
- * Ministerpräsidenten des Landes Schleswig-Holstein
- * Staatskanzlei
- * Abteilung Digitalisierung und zentrales IT-Management der Landesregierung
- *
- * Lizenziert unter der EUPL, Version 1.2 oder - sobald
- * diese von der Europäischen Kommission genehmigt wurden -
- * Folgeversionen der EUPL ("Lizenz");
- * Sie dürfen dieses Werk ausschließlich gemäß
- * dieser Lizenz nutzen.
- * Eine Kopie der Lizenz finden Sie hier:
- *
- * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
- *
- * Sofern nicht durch anwendbare Rechtsvorschriften
- * gefordert oder in schriftlicher Form vereinbart, wird
- * die unter der Lizenz verbreitete Software "so wie sie
- * ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN -
- * ausdrücklich oder stillschweigend - verbreitet.
- * Die sprachspezifischen Genehmigungen und Beschränkungen
- * unter der Lizenz sind dem Lizenztext zu entnehmen.
- */
-import { BescheidService, UploadFileInProgress } from '@alfa-client/bescheid-shared';
-import { BinaryFileResource } from '@alfa-client/binary-file-shared';
-import {
-  containsLoading,
-  getSuccessfullyLoaded,
-  hasStateResourceError,
-  isLoaded,
-  isNotNil,
-  StateResource,
-} from '@alfa-client/tech-shared';
-import { Component, Input, OnDestroy, OnInit } from '@angular/core';
-import { getUrl } from '@ngxp/rest';
-import { first, Observable, Subscription } from 'rxjs';
-import { BescheidenFormService } from '../../bescheiden.formservice';
-
-@Component({
-  selector: 'alfa-vorgang-detail-bescheiden-result-attachments',
-  templateUrl: './vorgang-detail-bescheiden-result-attachments.component.html',
-  styles: [],
-})
-export class VorgangDetailBescheidenResultAttachmentsComponent implements OnDestroy, OnInit {
-  @Input() public deletable: boolean;
-
-  existingAttachments: BinaryFileResource[] = [];
-  uploadedAttachments: StateResource<BinaryFileResource>[] = [];
-  uploadInProgress$: Observable<UploadFileInProgress>;
-
-  private attachmentUploadSubscription: Subscription;
-
-  constructor(
-    public formService: BescheidenFormService,
-    private readonly bescheidService: BescheidService,
-  ) {}
-
-  ngOnInit(): void {
-    this.uploadInProgress$ = this.bescheidService.getUploadAttachmentInProgress();
-    this.loadExistingAttachments();
-    this.subscribeToAttachmentUpload();
-  }
-
-  ngOnDestroy(): void {
-    if (isNotNil(this.attachmentUploadSubscription))
-      this.attachmentUploadSubscription.unsubscribe();
-  }
-
-  loadExistingAttachments() {
-    this.bescheidService
-      .getAttachments()
-      .pipe(first())
-      .subscribe((attachments) => {
-        this.uploadedAttachments = [];
-        this.existingAttachments = attachments;
-      });
-  }
-
-  subscribeToAttachmentUpload() {
-    this.attachmentUploadSubscription = this.bescheidService
-      .getUploadedAttachment()
-      .subscribe(
-        (stateResource: StateResource<BinaryFileResource>) =>
-          (this.uploadedAttachments = this.buildUploadedAttachments(stateResource)),
-      );
-  }
-
-  buildUploadedAttachments(
-    uploadStateResource: StateResource<BinaryFileResource>,
-  ): StateResource<BinaryFileResource>[] {
-    if (isLoaded(uploadStateResource) || hasStateResourceError(uploadStateResource)) {
-      return [...getSuccessfullyLoaded(this.uploadedAttachments), uploadStateResource];
-    } else if (uploadStateResource.loading && !containsLoading(this.uploadedAttachments)) {
-      return [...getSuccessfullyLoaded(this.uploadedAttachments), uploadStateResource];
-    }
-    return this.uploadedAttachments;
-  }
-
-  deleteFile(file: BinaryFileResource): void {
-    this.formService.deleteFile(file);
-    this.uploadedAttachments = this.uploadedAttachments.filter(
-      (attachment: StateResource<BinaryFileResource>) =>
-        !hasStateResourceError(attachment) && getUrl(attachment.resource) !== getUrl(file),
-    );
-    this.existingAttachments = this.existingAttachments.filter(
-      (attachment: BinaryFileResource) => getUrl(attachment) !== getUrl(file),
-    );
-  }
-}
diff --git a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-result/vorgang-detail-bescheiden-result-dokument/vorgang-detail-bescheiden-result-dokument.component.html b/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-result/vorgang-detail-bescheiden-result-dokument/vorgang-detail-bescheiden-result-dokument.component.html
deleted file mode 100644
index 549661320fea8f0ec24dd46a61d60959f3b360ed..0000000000000000000000000000000000000000
--- a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-result/vorgang-detail-bescheiden-result-dokument/vorgang-detail-bescheiden-result-dokument.component.html
+++ /dev/null
@@ -1,67 +0,0 @@
-<!--
-
-    Copyright (C) 2024 Das Land Schleswig-Holstein vertreten durch den
-    Ministerpräsidenten des Landes Schleswig-Holstein
-    Staatskanzlei
-    Abteilung Digitalisierung und zentrales IT-Management der Landesregierung
-
-    Lizenziert unter der EUPL, Version 1.2 oder - sobald
-    diese von der Europäischen Kommission genehmigt wurden -
-    Folgeversionen der EUPL ("Lizenz");
-    Sie dürfen dieses Werk ausschließlich gemäß
-    dieser Lizenz nutzen.
-    Eine Kopie der Lizenz finden Sie hier:
-
-    https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
-
-    Sofern nicht durch anwendbare Rechtsvorschriften
-    gefordert oder in schriftlicher Form vereinbart, wird
-    die unter der Lizenz verbreitete Software "so wie sie
-    ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN -
-    ausdrücklich oder stillschweigend - verbreitet.
-    Die sprachspezifischen Genehmigungen und Beschränkungen
-    unter der Lizenz sind dem Lizenztext zu entnehmen.
-
--->
-<p
-  *ngIf="showMissingBescheidDocumentError"
-  data-test-id="missing-bescheid-document-error-message"
-  class="text-base text-error"
->
-  Bitte fügen Sie ein Bescheiddokument hinzu.
-</p>
-<ods-attachment-wrapper>
-  <ng-container *ngIf="bescheidDocumentFile.resource">
-    <alfa-binary-file2-container
-      *ngIf="
-        !bescheidDocumentFile.loading &&
-        !uploadBescheidDocumentInProgress.loading &&
-        !createDocumentInProgess.loading
-      "
-      [file]="bescheidDocumentFile.resource"
-      [deletable]="deletable"
-      (startDelete)="deleteFile.emit()"
-    >
-    </alfa-binary-file2-container>
-  </ng-container>
-  <ods-attachment
-    *ngIf="uploadBescheidDocumentInProgress.loading || uploadBescheidDocumentInProgress.error"
-    errorCaption="Fehler beim Hochladen"
-    [loadingCaption]="uploadBescheidDocumentInProgress.fileName"
-    [attr.data-test-id]="
-      'upload-bescheid-document-error-' + !!uploadBescheidDocumentInProgress.error
-    "
-    [isLoading]="uploadBescheidDocumentInProgress.loading"
-    [errorMessages]="uploadBescheidDocumentInProgress.error | convertProblemDetailToErrorMessages"
-    description="Bescheiddokument wird hochgeladen"
-  ></ods-attachment>
-  <ods-attachment
-    *ngIf="createDocumentInProgess.loading || hasCreateDocumentError"
-    errorCaption="Fehler beim automatischen Erstellen"
-    loadingCaption="Bescheiddokument"
-    description="Bescheiddokument wird erstellt"
-    [isLoading]="createDocumentInProgess.loading"
-    [errorMessages]="createDocumentErrorMessages"
-    data-test-id="create-bescheid-document-attachment"
-  ></ods-attachment>
-</ods-attachment-wrapper>
diff --git a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-result/vorgang-detail-bescheiden-result-dokument/vorgang-detail-bescheiden-result-dokument.component.spec.ts b/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-result/vorgang-detail-bescheiden-result-dokument/vorgang-detail-bescheiden-result-dokument.component.spec.ts
deleted file mode 100644
index 5ea0a01d388e0491b87552821b48f5df9fe32750..0000000000000000000000000000000000000000
--- a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-result/vorgang-detail-bescheiden-result-dokument/vorgang-detail-bescheiden-result-dokument.component.spec.ts
+++ /dev/null
@@ -1,236 +0,0 @@
-/*
- * Copyright (C) 2024 Das Land Schleswig-Holstein vertreten durch den
- * Ministerpräsidenten des Landes Schleswig-Holstein
- * Staatskanzlei
- * Abteilung Digitalisierung und zentrales IT-Management der Landesregierung
- *
- * Lizenziert unter der EUPL, Version 1.2 oder - sobald
- * diese von der Europäischen Kommission genehmigt wurden -
- * Folgeversionen der EUPL ("Lizenz");
- * Sie dürfen dieses Werk ausschließlich gemäß
- * dieser Lizenz nutzen.
- * Eine Kopie der Lizenz finden Sie hier:
- *
- * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
- *
- * Sofern nicht durch anwendbare Rechtsvorschriften
- * gefordert oder in schriftlicher Form vereinbart, wird
- * die unter der Lizenz verbreitete Software "so wie sie
- * ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN -
- * ausdrücklich oder stillschweigend - verbreitet.
- * Die sprachspezifischen Genehmigungen und Beschränkungen
- * unter der Lizenz sind dem Lizenztext zu entnehmen.
- */
-import { BescheidLinkRel, BescheidResource, BescheidService } from '@alfa-client/bescheid-shared';
-import { BinaryFile2ContainerComponent } from '@alfa-client/binary-file';
-import { CommandResource } from '@alfa-client/command-shared';
-import {
-  StateResource,
-  createEmptyStateResource,
-  createStateResource,
-} from '@alfa-client/tech-shared';
-import { Mock, existsAsHtmlElement, mock, notExistsAsHtmlElement } from '@alfa-client/test-utils';
-import { ComponentFixture, TestBed } from '@angular/core/testing';
-import { getUrl } from '@ngxp/rest';
-import { AttachmentComponent, AttachmentWrapperComponent } from '@ods/system';
-import { createBescheidResource } from 'libs/bescheid-shared/src/test/bescheid';
-import { createBinaryFileResource } from 'libs/binary-file-shared/test/binary-file';
-import { ConvertProblemDetailToErrorMessagesPipe } from 'libs/tech-shared/src/lib/pipe/convert-problem-detail-to-error-messages.pipe';
-import { getDataTestIdOf } from 'libs/tech-shared/test/data-test';
-import { createApiError } from 'libs/tech-shared/test/error';
-import { MockComponent, MockPipe } from 'ng-mocks';
-import {
-  createCommandErrorStateResource,
-  createCommandResource,
-  createCommandStateResource,
-} from '../../../../../../../command-shared/test/command';
-import { VorgangDetailBescheidenResultDokumentComponent } from './vorgang-detail-bescheiden-result-dokument.component';
-
-describe('VorgangDetailBescheidenResultDokumentComponent', () => {
-  let component: VorgangDetailBescheidenResultDokumentComponent;
-  let fixture: ComponentFixture<VorgangDetailBescheidenResultDokumentComponent>;
-
-  const createBescheidDocumentAttachment: string = getDataTestIdOf(
-    'create-bescheid-document-attachment',
-  );
-  const uploadBescheidDocumentError: string = getDataTestIdOf(
-    'upload-bescheid-document-error-true',
-  );
-  const missingBescheidDocumentErrorMessage: string = getDataTestIdOf(
-    'missing-bescheid-document-error-message',
-  );
-
-  let bescheidService: Mock<BescheidService>;
-
-  beforeEach(async () => {
-    bescheidService = mock(BescheidService);
-
-    await TestBed.configureTestingModule({
-      declarations: [
-        VorgangDetailBescheidenResultDokumentComponent,
-        MockComponent(BinaryFile2ContainerComponent),
-        MockComponent(AttachmentComponent),
-        MockComponent(AttachmentWrapperComponent),
-        MockPipe(ConvertProblemDetailToErrorMessagesPipe),
-      ],
-      providers: [
-        {
-          provide: BescheidService,
-          useValue: bescheidService,
-        },
-      ],
-    }).compileComponents();
-
-    fixture = TestBed.createComponent(VorgangDetailBescheidenResultDokumentComponent);
-    component = fixture.componentInstance;
-    component.bescheidDocumentFile = createStateResource(createBinaryFileResource());
-    fixture.detectChanges();
-  });
-
-  it('should create', () => {
-    expect(component).toBeTruthy();
-  });
-
-  describe('render', () => {
-    it('should show error message for missing bescheid document', () => {
-      component.showMissingBescheidDocumentError = true;
-
-      fixture.detectChanges();
-
-      existsAsHtmlElement(fixture, missingBescheidDocumentErrorMessage);
-    });
-
-    it('should not show error message for missing bescheid document', () => {
-      component.showMissingBescheidDocumentError = false;
-
-      fixture.detectChanges();
-
-      notExistsAsHtmlElement(fixture, missingBescheidDocumentErrorMessage);
-    });
-
-    describe('create bescheid document ods-attachment', () => {
-      it('should be shown if error exists', () => {
-        component.createBescheidDocumentInProgress = createCommandErrorStateResource();
-
-        fixture.detectChanges();
-
-        existsAsHtmlElement(fixture, createBescheidDocumentAttachment);
-      });
-
-      it('should be shown while loading', () => {
-        component.createBescheidDocumentInProgress = createStateResource(
-          createCommandResource(),
-          true,
-        );
-
-        fixture.detectChanges();
-
-        existsAsHtmlElement(fixture, createBescheidDocumentAttachment);
-      });
-
-      it('should be hidden on loaded without error', () => {
-        component.createBescheidDocumentInProgress = createCommandStateResource();
-
-        fixture.detectChanges();
-
-        notExistsAsHtmlElement(fixture, createBescheidDocumentAttachment);
-      });
-    });
-  });
-
-  describe('handle bescheid document', () => {
-    it('should call service to load bescheid document by uri if link is present', () => {
-      const bescheid: BescheidResource = createBescheidResource([
-        BescheidLinkRel.BESCHEID_DOCUMENT,
-      ]);
-
-      component.handleBescheidDocument(bescheid);
-
-      expect(bescheidService.loadBescheidDocumentByUri).toHaveBeenCalledWith(
-        getUrl(bescheid, BescheidLinkRel.BESCHEID_DOCUMENT),
-      );
-    });
-
-    it('should NOT call service if link is missing', () => {
-      component.handleBescheidDocument(createBescheidResource());
-
-      expect(bescheidService.loadBescheidDocumentByUri).not.toHaveBeenCalled();
-    });
-  });
-
-  describe('upload bescheid document error', () => {
-    it('should be shown if error exists', () => {
-      component.uploadBescheidDocumentInProgress = { loading: false, error: createApiError() };
-
-      fixture.detectChanges();
-
-      existsAsHtmlElement(fixture, uploadBescheidDocumentError);
-    });
-
-    it('should be hidden on non error', () => {
-      component.uploadBescheidDocumentInProgress = { loading: false };
-
-      fixture.detectChanges();
-
-      notExistsAsHtmlElement(fixture, uploadBescheidDocumentError);
-    });
-  });
-
-  describe('set create bescheid document in progress', () => {
-    beforeEach(() => {
-      component.handleCreateBescheidDocumentCommandError = jest.fn();
-    });
-
-    it('should set create document in progress', () => {
-      const commandStateResource: StateResource<CommandResource> = createEmptyStateResource();
-
-      component.createBescheidDocumentInProgress = commandStateResource;
-
-      expect(component.createDocumentInProgess).toBe(commandStateResource);
-    });
-
-    it('should handle command error', () => {
-      const commandStateResource: StateResource<CommandResource> = createEmptyStateResource();
-
-      component.createBescheidDocumentInProgress = commandStateResource;
-
-      expect(component.handleCreateBescheidDocumentCommandError).toHaveBeenCalledWith(
-        commandStateResource,
-      );
-    });
-  });
-
-  describe('handleCreateBescheidDocumentCommandError', () => {
-    it('should set has error', () => {
-      component.handleCreateBescheidDocumentCommandError(createCommandErrorStateResource());
-
-      expect(component.hasCreateDocumentError).toBeTruthy();
-    });
-
-    it('should not set has error', () => {
-      component.handleCreateBescheidDocumentCommandError(createCommandStateResource());
-
-      expect(component.hasCreateDocumentError).toBeFalsy();
-    });
-
-    it('should not set has error on empty state resource', () => {
-      component.handleCreateBescheidDocumentCommandError(createEmptyStateResource());
-
-      expect(component.hasCreateDocumentError).toBeFalsy();
-    });
-
-    it('should set error messages', () => {
-      component.handleCreateBescheidDocumentCommandError(createCommandErrorStateResource());
-
-      expect(component.createDocumentErrorMessages).toEqual([
-        VorgangDetailBescheidenResultDokumentComponent.CREATE_DOCUMENT_ERROR_MESSAGE,
-      ]);
-    });
-
-    it('should not set error messages', () => {
-      component.handleCreateBescheidDocumentCommandError(createCommandStateResource());
-
-      expect(component.createDocumentErrorMessages).toEqual([]);
-    });
-  });
-});
diff --git a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-result/vorgang-detail-bescheiden-result-dokument/vorgang-detail-bescheiden-result-dokument.component.ts b/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-result/vorgang-detail-bescheiden-result-dokument/vorgang-detail-bescheiden-result-dokument.component.ts
deleted file mode 100644
index 86b59f535b00aed46987c43c573e79dc4d957a24..0000000000000000000000000000000000000000
--- a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-result/vorgang-detail-bescheiden-result-dokument/vorgang-detail-bescheiden-result-dokument.component.ts
+++ /dev/null
@@ -1,90 +0,0 @@
-/*
- * Copyright (C) 2024 Das Land Schleswig-Holstein vertreten durch den
- * Ministerpräsidenten des Landes Schleswig-Holstein
- * Staatskanzlei
- * Abteilung Digitalisierung und zentrales IT-Management der Landesregierung
- *
- * Lizenziert unter der EUPL, Version 1.2 oder - sobald
- * diese von der Europäischen Kommission genehmigt wurden -
- * Folgeversionen der EUPL ("Lizenz");
- * Sie dürfen dieses Werk ausschließlich gemäß
- * dieser Lizenz nutzen.
- * Eine Kopie der Lizenz finden Sie hier:
- *
- * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
- *
- * Sofern nicht durch anwendbare Rechtsvorschriften
- * gefordert oder in schriftlicher Form vereinbart, wird
- * die unter der Lizenz verbreitete Software "so wie sie
- * ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN -
- * ausdrücklich oder stillschweigend - verbreitet.
- * Die sprachspezifischen Genehmigungen und Beschränkungen
- * unter der Lizenz sind dem Lizenztext zu entnehmen.
- */
-import {
-  BescheidLinkRel,
-  BescheidResource,
-  BescheidService,
-  UploadFileInProgress,
-} from '@alfa-client/bescheid-shared';
-import { BinaryFileResource } from '@alfa-client/binary-file-shared';
-import { CommandResource, hasCommandError } from '@alfa-client/command-shared';
-import { createEmptyStateResource, isNotNil, StateResource } from '@alfa-client/tech-shared';
-import { Component, EventEmitter, Input, Output } from '@angular/core';
-import { getUrl, hasLink } from '@ngxp/rest';
-
-@Component({
-  selector: 'alfa-vorgang-detail-bescheiden-result-dokument',
-  templateUrl: './vorgang-detail-bescheiden-result-dokument.component.html',
-})
-export class VorgangDetailBescheidenResultDokumentComponent {
-  static readonly CREATE_DOCUMENT_ERROR_MESSAGE: string =
-    'Bescheiddokument konnte nicht erzeugt werden.';
-
-  @Input() bescheidDocumentFile: StateResource<BinaryFileResource>;
-  @Input() uploadBescheidDocumentInProgress: UploadFileInProgress = { loading: false };
-
-  @Input() set createBescheidDocumentInProgress(
-    commandStateResource: StateResource<CommandResource>,
-  ) {
-    this.createDocumentInProgess = commandStateResource;
-    this.handleCreateBescheidDocumentCommandError(commandStateResource);
-  }
-
-  @Input() set bescheidDraftStateResource(bescheidStateResource: StateResource<BescheidResource>) {
-    this.handleBescheidDocument(bescheidStateResource.resource);
-  }
-
-  @Input() public deletable: boolean;
-
-  @Input() public showMissingBescheidDocumentError: boolean;
-  @Output() deleteFile: EventEmitter<void> = new EventEmitter<void>();
-
-  createDocumentErrorMessages: string[] = [];
-  createDocumentInProgess: StateResource<CommandResource> = createEmptyStateResource();
-  hasCreateDocumentError: boolean = false;
-
-  constructor(private bescheidService: BescheidService) {}
-
-  handleBescheidDocument(bescheid: BescheidResource): void {
-    if (hasLink(bescheid, BescheidLinkRel.BESCHEID_DOCUMENT)) {
-      this.bescheidService.loadBescheidDocumentByUri(
-        getUrl(bescheid, BescheidLinkRel.BESCHEID_DOCUMENT),
-      );
-    }
-  }
-
-  handleCreateBescheidDocumentCommandError(
-    commandStateResource: StateResource<CommandResource>,
-  ): void {
-    this.hasCreateDocumentError =
-      isNotNil(commandStateResource.resource) && hasCommandError(commandStateResource.resource);
-    if (this.hasCreateDocumentError) {
-      this.createDocumentErrorMessages = [
-        VorgangDetailBescheidenResultDokumentComponent.CREATE_DOCUMENT_ERROR_MESSAGE,
-      ];
-    } else {
-      this.createDocumentErrorMessages = [];
-    }
-  }
-}
diff --git a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-result/vorgang-detail-bescheiden-result-nachricht/vorgang-detail-bescheiden-result-nachricht.component.html b/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-result/vorgang-detail-bescheiden-result-nachricht/vorgang-detail-bescheiden-result-nachricht.component.html
deleted file mode 100644
index 3f492daf368d4f0e5a3c2c75c4c5740a8cefb757..0000000000000000000000000000000000000000
--- a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-result/vorgang-detail-bescheiden-result-nachricht/vorgang-detail-bescheiden-result-nachricht.component.html
+++ /dev/null
@@ -1,52 +0,0 @@
-<!--
-
-    Copyright (C) 2024 Das Land Schleswig-Holstein vertreten durch den
-    Ministerpräsidenten des Landes Schleswig-Holstein
-    Staatskanzlei
-    Abteilung Digitalisierung und zentrales IT-Management der Landesregierung
-
-    Lizenziert unter der EUPL, Version 1.2 oder - sobald
-    diese von der Europäischen Kommission genehmigt wurden -
-    Folgeversionen der EUPL ("Lizenz");
-    Sie dürfen dieses Werk ausschließlich gemäß
-    dieser Lizenz nutzen.
-    Eine Kopie der Lizenz finden Sie hier:
-
-    https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
-
-    Sofern nicht durch anwendbare Rechtsvorschriften
-    gefordert oder in schriftlicher Form vereinbart, wird
-    die unter der Lizenz verbreitete Software "so wie sie
-    ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN -
-    ausdrücklich oder stillschweigend - verbreitet.
-    Die sprachspezifischen Genehmigungen und Beschränkungen
-    unter der Lizenz sind dem Lizenztext zu entnehmen.
-
--->
-<h3 class="mb-3 font-medium text-primary">Neue Nachricht</h3>
-<p
-  *ngIf="empfaenger$ | async as empfaenger"
-  data-test-id="bescheid-nachricht-empfaenger"
-  class="mb-2 text-sm font-medium"
->
-  An: {{ empfaenger }}
-</p>
-<div [formGroup]="form">
-  <ods-text-editor
-    [formControlName]="formServiceClass.FIELD_NACHRICHT_SUBJECT"
-    label="Betreff"
-    placeholder="Betreff hier eingeben"
-    [focus]="focusBetreff"
-    [isRequired]="true"
-  >
-  </ods-text-editor>
-
-  <ods-textarea-editor
-    [formControlName]="formServiceClass.FIELD_NACHRICHT_TEXT"
-    label="Text"
-    placeholder="Nachrichtentext hier eingeben"
-    [focus]="focusNachricht"
-    [isRequired]="true"
-  >
-  </ods-textarea-editor>
-</div>
diff --git a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-result/vorgang-detail-bescheiden-result-nachricht/vorgang-detail-bescheiden-result-nachricht.component.spec.ts b/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-result/vorgang-detail-bescheiden-result-nachricht/vorgang-detail-bescheiden-result-nachricht.component.spec.ts
deleted file mode 100644
index 74477d48db034ee0193f40bc099eb7be07495c3f..0000000000000000000000000000000000000000
--- a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-result/vorgang-detail-bescheiden-result-nachricht/vorgang-detail-bescheiden-result-nachricht.component.spec.ts
+++ /dev/null
@@ -1,237 +0,0 @@
-/*
- * Copyright (C) 2024 Das Land Schleswig-Holstein vertreten durch den
- * Ministerpräsidenten des Landes Schleswig-Holstein
- * Staatskanzlei
- * Abteilung Digitalisierung und zentrales IT-Management der Landesregierung
- *
- * Lizenziert unter der EUPL, Version 1.2 oder - sobald
- * diese von der Europäischen Kommission genehmigt wurden -
- * Folgeversionen der EUPL ("Lizenz");
- * Sie dürfen dieses Werk ausschließlich gemäß
- * dieser Lizenz nutzen.
- * Eine Kopie der Lizenz finden Sie hier:
- *
- * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
- *
- * Sofern nicht durch anwendbare Rechtsvorschriften
- * gefordert oder in schriftlicher Form vereinbart, wird
- * die unter der Lizenz verbreitete Software "so wie sie
- * ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN -
- * ausdrücklich oder stillschweigend - verbreitet.
- * Die sprachspezifischen Genehmigungen und Beschränkungen
- * unter der Lizenz sind dem Lizenztext zu entnehmen.
- */
-import { BescheidService, DocumentResource } from '@alfa-client/bescheid-shared';
-import {
-  createEmptyStateResource,
-  createErrorStateResource,
-  createStateResource,
-  StateResource,
-} from '@alfa-client/tech-shared';
-import { getElementFromFixture } from '@alfa-client/test-utils';
-import { registerLocaleData } from '@angular/common';
-import localeDe from '@angular/common/locales/de';
-import { ComponentFixture, TestBed } from '@angular/core/testing';
-import { ReactiveFormsModule, UntypedFormBuilder } from '@angular/forms';
-import { faker } from '@faker-js/faker';
-import { TextareaEditorComponent, TextEditorComponent } from '@ods/component';
-import { Mock, mock, useFromMock } from 'libs/test-utils/src/lib/mocking';
-import { OzgcloudSvgIconComponent } from 'libs/ui/src/lib/ui/ozgcloud-svgicon/ozgcloud-svgicon.component';
-import { MockComponent } from 'ng-mocks';
-import { EMPTY, of } from 'rxjs';
-import { createDocumentResource } from '../../../../../../../bescheid-shared/src/test/document';
-import { getDataTestIdOf } from '../../../../../../../tech-shared/test/data-test';
-import { createApiError } from '../../../../../../../tech-shared/test/error';
-import { singleColdCompleted } from '../../../../../../../tech-shared/test/marbles';
-import { BescheidenFormService } from '../../bescheiden.formservice';
-import { VorgangDetailBescheidenResultNachrichtComponent } from './vorgang-detail-bescheiden-result-nachricht.component';
-
-registerLocaleData(localeDe);
-
-describe('VorgangDetailBescheidenResultNachrichtComponent', () => {
-  let component: VorgangDetailBescheidenResultNachrichtComponent;
-  let fixture: ComponentFixture<VorgangDetailBescheidenResultNachrichtComponent>;
-
-  let bescheidService: Mock<BescheidService>;
-  let formService: BescheidenFormService;
-
-  const bescheidNachrichtEmpfaengerElement: string = getDataTestIdOf(
-    'bescheid-nachricht-empfaenger',
-  );
-
-  beforeEach(async () => {
-    bescheidService = mock(BescheidService);
-    formService = new BescheidenFormService(new UntypedFormBuilder(), useFromMock(bescheidService));
-
-    await TestBed.configureTestingModule({
-      imports: [ReactiveFormsModule],
-      declarations: [
-        VorgangDetailBescheidenResultNachrichtComponent,
-        MockComponent(OzgcloudSvgIconComponent),
-        MockComponent(TextEditorComponent),
-        MockComponent(TextareaEditorComponent),
-      ],
-      providers: [
-        {
-          provide: BescheidService,
-          useValue: bescheidService,
-        },
-        {
-          provide: BescheidenFormService,
-          useValue: formService,
-        },
-      ],
-    }).compileComponents();
-
-    fixture = TestBed.createComponent(VorgangDetailBescheidenResultNachrichtComponent);
-    component = fixture.componentInstance;
-    fixture.detectChanges();
-  });
-
-  it('should create', () => {
-    expect(component).toBeTruthy();
-  });
-
-  describe('render', () => {
-    it('should render Nachrichtenempfänger', () => {
-      const empfaenger: string = `${faker.person.firstName()} ${faker.person.lastName()}`;
-      bescheidService.getEmpfaenger.mockReturnValue(of(empfaenger));
-      component.ngOnInit();
-
-      fixture.detectChanges();
-
-      const element = getElementFromFixture(fixture, bescheidNachrichtEmpfaengerElement);
-      expect(element).toBeInstanceOf(HTMLElement);
-    });
-
-    it('should not render Nachrichtenempfänger', () => {
-      bescheidService.getEmpfaenger.mockReturnValue(EMPTY);
-      component.ngOnInit();
-
-      fixture.detectChanges();
-
-      const element = getElementFromFixture(fixture, bescheidNachrichtEmpfaengerElement);
-      expect(element).not.toBeInstanceOf(HTMLElement);
-    });
-  });
-
-  describe('ngOnInit', () => {
-    it('should set Nachrichtenempfänger', () => {
-      const empfaenger: string = `${faker.person.firstName()} ${faker.person.lastName()}`;
-      bescheidService.getEmpfaenger.mockReturnValue(of(empfaenger));
-
-      component.ngOnInit();
-
-      expect(component.empfaenger$).toBeObservable(singleColdCompleted(empfaenger));
-    });
-  });
-
-  describe('set bescheidDocumentStateResource', () => {
-    beforeEach(() => {
-      formService.patchNachricht = jest.fn();
-    });
-
-    it('should patch form', () => {
-      const documentStateResource: StateResource<DocumentResource> =
-        createStateResource(createDocumentResource());
-      jest.spyOn(formService.form, 'valid', 'get').mockReturnValue(true);
-
-      component.bescheidDocumentStateResource = documentStateResource;
-
-      expect(formService.patchNachricht).toHaveBeenCalledWith(documentStateResource.resource);
-    });
-
-    it('should not patch if form is invalid', () => {
-      const documentStateResource: StateResource<DocumentResource> =
-        createStateResource(createDocumentResource());
-      jest.spyOn(formService.form, 'valid', 'get').mockReturnValue(false);
-
-      component.bescheidDocumentStateResource = documentStateResource;
-
-      expect(formService.patchNachricht).not.toHaveBeenCalledWith(documentStateResource.resource);
-    });
-
-    it('should not patch form if document loading', () => {
-      component.bescheidDocumentStateResource = { ...createEmptyStateResource(), loading: true };
-
-      expect(formService.patchNachricht).not.toHaveBeenCalled();
-    });
-
-    it('should not patch form if document loaded with error', () => {
-      component.bescheidDocumentStateResource = createErrorStateResource(createApiError());
-
-      expect(formService.patchNachricht).not.toHaveBeenCalled();
-    });
-
-    it.each([null, undefined])(
-      'should not patch form if document resource is %s',
-      (resource: DocumentResource) => {
-        component.bescheidDocumentStateResource = createStateResource(resource);
-
-        expect(formService.patchNachricht).not.toHaveBeenCalled();
-      },
-    );
-  });
-
-  describe('resetFocus', () => {
-    it('should reset betreff focus', () => {
-      component.focusBetreff = true;
-
-      component.resetFocus();
-
-      expect(component.focusBetreff).toBeFalsy();
-    });
-
-    it('should reset nachricht focus', () => {
-      component.focusNachricht = true;
-
-      component.resetFocus();
-
-      expect(component.focusNachricht).toBeFalsy();
-    });
-  });
-
-  describe('sendWithNachrichtCommandStateResource', () => {
-    beforeEach(() => {
-      component.resetFocus = jest.fn();
-    });
-
-    it('should reset focus', () => {
-      component.sendWithNachrichtCommandStateResource = createEmptyStateResource();
-
-      expect(component.resetFocus).toHaveBeenCalled();
-    });
-
-    it('should focus betreff', () => {
-      component.focusBetreff = false;
-      formService.isBetreffInvalid = jest.fn().mockReturnValue(true);
-      formService.isNachrichtInvalid = jest.fn().mockReturnValue(false);
-
-      component.sendWithNachrichtCommandStateResource = createErrorStateResource(createApiError());
-
-      expect(component.focusBetreff).toBeTruthy();
-    });
-
-    it('should focus nachricht', () => {
-      component.focusNachricht = false;
-      formService.isBetreffInvalid = jest.fn().mockReturnValue(false);
-      formService.isNachrichtInvalid = jest.fn().mockReturnValue(true);
-
-      component.sendWithNachrichtCommandStateResource = createErrorStateResource(createApiError());
-
-      expect(component.focusNachricht).toBeTruthy();
-    });
-
-    it('should focus betreff first', () => {
-      component.focusNachricht = false;
-      component.focusBetreff = false;
-      formService.isBetreffInvalid = jest.fn().mockReturnValue(true);
-      formService.isNachrichtInvalid = jest.fn().mockReturnValue(true);
-
-      component.sendWithNachrichtCommandStateResource = createErrorStateResource(createApiError());
-
-      expect(component.focusBetreff).toBeTruthy();
-      expect(component.focusNachricht).toBeFalsy();
-    });
-  });
-});
diff --git a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-result/vorgang-detail-bescheiden-result-nachricht/vorgang-detail-bescheiden-result-nachricht.component.ts b/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-result/vorgang-detail-bescheiden-result-nachricht/vorgang-detail-bescheiden-result-nachricht.component.ts
deleted file mode 100644
index 9805935d7bf121a66c3c384046acfbb33f620261..0000000000000000000000000000000000000000
--- a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-result/vorgang-detail-bescheiden-result-nachricht/vorgang-detail-bescheiden-result-nachricht.component.ts
+++ /dev/null
@@ -1,80 +0,0 @@
-/*
- * Copyright (C) 2024 Das Land Schleswig-Holstein vertreten durch den
- * Ministerpräsidenten des Landes Schleswig-Holstein
- * Staatskanzlei
- * Abteilung Digitalisierung und zentrales IT-Management der Landesregierung
- *
- * Lizenziert unter der EUPL, Version 1.2 oder - sobald
- * diese von der Europäischen Kommission genehmigt wurden -
- * Folgeversionen der EUPL ("Lizenz");
- * Sie dürfen dieses Werk ausschließlich gemäß
- * dieser Lizenz nutzen.
- * Eine Kopie der Lizenz finden Sie hier:
- *
- * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
- *
- * Sofern nicht durch anwendbare Rechtsvorschriften
- * gefordert oder in schriftlicher Form vereinbart, wird
- * die unter der Lizenz verbreitete Software "so wie sie
- * ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN -
- * ausdrücklich oder stillschweigend - verbreitet.
- * Die sprachspezifischen Genehmigungen und Beschränkungen
- * unter der Lizenz sind dem Lizenztext zu entnehmen.
- */
-import { BescheidService, DocumentResource } from '@alfa-client/bescheid-shared';
-import { CommandResource } from '@alfa-client/command-shared';
-import { hasStateResourceError, isNotNil, StateResource } from '@alfa-client/tech-shared';
-import { Component, Input, OnInit } from '@angular/core';
-import { FormGroup } from '@angular/forms';
-import { Observable } from 'rxjs';
-import { BescheidenFormService } from '../../bescheiden.formservice';
-
-@Component({
-  selector: 'alfa-vorgang-detail-bescheiden-result-nachricht',
-  templateUrl: './vorgang-detail-bescheiden-result-nachricht.component.html',
-})
-export class VorgangDetailBescheidenResultNachrichtComponent implements OnInit {
-  @Input()
-  set bescheidDocumentStateResource(stateResource: StateResource<DocumentResource>) {
-    if (!stateResource.loading && !stateResource.error && isNotNil(stateResource.resource)) {
-      if (isNotNil(this.form) && this.form.valid) {
-        this.formService.patchNachricht(stateResource.resource);
-      }
-    }
-  }
-
-  @Input()
-  set sendWithNachrichtCommandStateResource(stateResource: StateResource<CommandResource>) {
-    this.resetFocus();
-    if (isNotNil(stateResource) && hasStateResourceError(stateResource)) {
-      if (this.formService.isBetreffInvalid()) {
-        this.focusBetreff = true;
-      } else if (this.formService.isNachrichtInvalid()) {
-        this.focusNachricht = true;
-      }
-    }
-  }
-
-  resetFocus() {
-    this.focusBetreff = false;
-    this.focusNachricht = false;
-  }
-
-  empfaenger$: Observable<string>;
-  form: FormGroup;
-
-  public focusBetreff: boolean = false;
-  public focusNachricht: boolean = false;
-
-  readonly formServiceClass = BescheidenFormService;
-
-  constructor(
-    private readonly bescheidService: BescheidService,
-    private readonly formService: BescheidenFormService,
-  ) {}
-
-  ngOnInit(): void {
-    this.empfaenger$ = this.bescheidService.getEmpfaenger();
-    this.form = this.formService.form;
-  }
-}
diff --git a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-result/vorgang-detail-bescheiden-result-status/vorgang-detail-bescheiden-result-status.component.html b/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-result/vorgang-detail-bescheiden-result-status/vorgang-detail-bescheiden-result-status.component.html
deleted file mode 100644
index 8326ca0d520668acd781ed322ee654779d593958..0000000000000000000000000000000000000000
--- a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-result/vorgang-detail-bescheiden-result-status/vorgang-detail-bescheiden-result-status.component.html
+++ /dev/null
@@ -1,30 +0,0 @@
-<!--
-
-    Copyright (C) 2024 Das Land Schleswig-Holstein vertreten durch den
-    Ministerpräsidenten des Landes Schleswig-Holstein
-    Staatskanzlei
-    Abteilung Digitalisierung und zentrales IT-Management der Landesregierung
-
-    Lizenziert unter der EUPL, Version 1.2 oder - sobald
-    diese von der Europäischen Kommission genehmigt wurden -
-    Folgeversionen der EUPL ("Lizenz");
-    Sie dürfen dieses Werk ausschließlich gemäß
-    dieser Lizenz nutzen.
-    Eine Kopie der Lizenz finden Sie hier:
-
-    https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
-
-    Sofern nicht durch anwendbare Rechtsvorschriften
-    gefordert oder in schriftlicher Form vereinbart, wird
-    die unter der Lizenz verbreitete Software "so wie sie
-    ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN -
-    ausdrücklich oder stillschweigend - verbreitet.
-    Die sprachspezifischen Genehmigungen und Beschränkungen
-    unter der Lizenz sind dem Lizenztext zu entnehmen.
-
--->
-<ods-bescheid-status-text
-  [bewilligt]="bescheid.bewilligt"
-  [dateText]="bescheid.beschiedenAm | date: 'dd.MM.yyyy'"
-  [hasBescheidDraft]="false"
-></ods-bescheid-status-text>
diff --git a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-result/vorgang-detail-bescheiden-result-status/vorgang-detail-bescheiden-result-status.component.spec.ts b/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-result/vorgang-detail-bescheiden-result-status/vorgang-detail-bescheiden-result-status.component.spec.ts
deleted file mode 100644
index cab1ef05621a6e784834e5296528fc6aa3e8a320..0000000000000000000000000000000000000000
--- a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-result/vorgang-detail-bescheiden-result-status/vorgang-detail-bescheiden-result-status.component.spec.ts
+++ /dev/null
@@ -1,63 +0,0 @@
-/*
- * Copyright (C) 2024 Das Land Schleswig-Holstein vertreten durch den
- * Ministerpräsidenten des Landes Schleswig-Holstein
- * Staatskanzlei
- * Abteilung Digitalisierung und zentrales IT-Management der Landesregierung
- *
- * Lizenziert unter der EUPL, Version 1.2 oder - sobald
- * diese von der Europäischen Kommission genehmigt wurden -
- * Folgeversionen der EUPL ("Lizenz");
- * Sie dürfen dieses Werk ausschließlich gemäß
- * dieser Lizenz nutzen.
- * Eine Kopie der Lizenz finden Sie hier:
- *
- * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
- *
- * Sofern nicht durch anwendbare Rechtsvorschriften
- * gefordert oder in schriftlicher Form vereinbart, wird
- * die unter der Lizenz verbreitete Software "so wie sie
- * ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN -
- * ausdrücklich oder stillschweigend - verbreitet.
- * Die sprachspezifischen Genehmigungen und Beschränkungen
- * unter der Lizenz sind dem Lizenztext zu entnehmen.
- */
-import { registerLocaleData } from '@angular/common';
-import localeDe from '@angular/common/locales/de';
-import { ComponentFixture, TestBed } from '@angular/core/testing';
-import { MatIcon } from '@angular/material/icon';
-import { MatIconTestingModule } from '@angular/material/icon/testing';
-import { BescheidStatusTextComponent } from '@ods/system';
-import { createBescheid } from 'libs/bescheid-shared/src/test/bescheid';
-import { FormatFullDatePipe } from 'libs/tech-shared/src/lib/pipe/format-full-date.pipe';
-import { OzgcloudSvgIconComponent } from 'libs/ui/src/lib/ui/ozgcloud-svgicon/ozgcloud-svgicon.component';
-import { MockComponent } from 'ng-mocks';
-import { VorgangDetailBescheidenResultStatusComponent } from './vorgang-detail-bescheiden-result-status.component';
-
-registerLocaleData(localeDe);
-
-describe('VorgangDetailBescheidenResultStatusComponent', () => {
-  let component: VorgangDetailBescheidenResultStatusComponent;
-  let fixture: ComponentFixture<VorgangDetailBescheidenResultStatusComponent>;
-
-  beforeEach(async () => {
-    await TestBed.configureTestingModule({
-      imports: [MatIconTestingModule],
-      declarations: [
-        VorgangDetailBescheidenResultStatusComponent,
-        MatIcon,
-        FormatFullDatePipe,
-        MockComponent(OzgcloudSvgIconComponent),
-        MockComponent(BescheidStatusTextComponent),
-      ],
-    }).compileComponents();
-
-    fixture = TestBed.createComponent(VorgangDetailBescheidenResultStatusComponent);
-    component = fixture.componentInstance;
-    component.bescheid = createBescheid();
-    fixture.detectChanges();
-  });
-
-  it('should create', () => {
-    expect(component).toBeTruthy();
-  });
-});
diff --git a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-result/vorgang-detail-bescheiden-result-status/vorgang-detail-bescheiden-result-status.component.ts b/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-result/vorgang-detail-bescheiden-result-status/vorgang-detail-bescheiden-result-status.component.ts
deleted file mode 100644
index 37662cc9de142103c614263b7c28b0848755de40..0000000000000000000000000000000000000000
--- a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-result/vorgang-detail-bescheiden-result-status/vorgang-detail-bescheiden-result-status.component.ts
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * Copyright (C) 2024 Das Land Schleswig-Holstein vertreten durch den
- * Ministerpräsidenten des Landes Schleswig-Holstein
- * Staatskanzlei
- * Abteilung Digitalisierung und zentrales IT-Management der Landesregierung
- *
- * Lizenziert unter der EUPL, Version 1.2 oder - sobald
- * diese von der Europäischen Kommission genehmigt wurden -
- * Folgeversionen der EUPL ("Lizenz");
- * Sie dürfen dieses Werk ausschließlich gemäß
- * dieser Lizenz nutzen.
- * Eine Kopie der Lizenz finden Sie hier:
- *
- * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
- *
- * Sofern nicht durch anwendbare Rechtsvorschriften
- * gefordert oder in schriftlicher Form vereinbart, wird
- * die unter der Lizenz verbreitete Software "so wie sie
- * ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN -
- * ausdrücklich oder stillschweigend - verbreitet.
- * Die sprachspezifischen Genehmigungen und Beschränkungen
- * unter der Lizenz sind dem Lizenztext zu entnehmen.
- */
-import { Bescheid } from '@alfa-client/bescheid-shared';
-import { Component, Input } from '@angular/core';
-
-@Component({
-  selector: 'alfa-vorgang-detail-bescheiden-result-status',
-  templateUrl: './vorgang-detail-bescheiden-result-status.component.html',
-})
-export class VorgangDetailBescheidenResultStatusComponent {
-  @Input() bescheid: Bescheid;
-}
diff --git a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-result/vorgang-detail-bescheiden-result.component.html b/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-result/vorgang-detail-bescheiden-result.component.html
deleted file mode 100644
index 1f1fef09c56f5e02db3a38fe54aa85107223fc5e..0000000000000000000000000000000000000000
--- a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-result/vorgang-detail-bescheiden-result.component.html
+++ /dev/null
@@ -1,134 +0,0 @@
-<!--
-
-    Copyright (C) 2024 Das Land Schleswig-Holstein vertreten durch den
-    Ministerpräsidenten des Landes Schleswig-Holstein
-    Staatskanzlei
-    Abteilung Digitalisierung und zentrales IT-Management der Landesregierung
-
-    Lizenziert unter der EUPL, Version 1.2 oder - sobald
-    diese von der Europäischen Kommission genehmigt wurden -
-    Folgeversionen der EUPL ("Lizenz");
-    Sie dürfen dieses Werk ausschließlich gemäß
-    dieser Lizenz nutzen.
-    Eine Kopie der Lizenz finden Sie hier:
-
-    https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
-
-    Sofern nicht durch anwendbare Rechtsvorschriften
-    gefordert oder in schriftlicher Form vereinbart, wird
-    die unter der Lizenz verbreitete Software "so wie sie
-    ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN -
-    ausdrücklich oder stillschweigend - verbreitet.
-    Die sprachspezifischen Genehmigungen und Beschränkungen
-    unter der Lizenz sind dem Lizenztext zu entnehmen.
-
--->
-<section
-  class="flex w-full flex-col justify-between overflow-auto rounded-xl bg-background-100 px-4 py-5"
-  *ngIf="{
-    activeStep: activeStep$ | async,
-    sendByManual: sendByManual$ | async
-  } as wizardData"
-  tabindex="0"
->
-  <div class="flex-1">
-    <h3
-      *ngIf="wizardData.sendByManual || wizardData.activeStep !== 3"
-      class="mb-4 text-base font-bold text-primary-600"
-    >
-      Bescheid
-    </h3>
-
-    <div
-      class="my-4"
-      data-test-id="bescheid-status-text"
-      *ngIf="
-        wizardData.activeStep === 1 ||
-        wizardData.activeStep === 2 ||
-        (wizardData.activeStep === 3 && wizardData.sendByManual)
-      "
-    >
-      <alfa-vorgang-detail-bescheiden-result-status
-        data-test-id="bescheid-status"
-        [bescheid]="bescheid$ | async"
-      ></alfa-vorgang-detail-bescheiden-result-status>
-    </div>
-
-    <div *ngIf="!wizardData.sendByManual && wizardData.activeStep === 3 && (canSend$ | async)">
-      <alfa-vorgang-detail-bescheiden-result-nachricht
-        [bescheidDocumentStateResource]="bescheidDocument$ | async"
-        [sendWithNachrichtCommandStateResource]="sendWithNachricht$ | async"
-        data-test-id="bescheid-nachricht-an-antragsteller"
-      ></alfa-vorgang-detail-bescheiden-result-nachricht>
-    </div>
-
-    <div
-      class="my-4"
-      *ngIf="
-        wizardData.activeStep === 2 ||
-        (wizardData.activeStep === 3 && (wizardData.sendByManual || (canSend$ | async)))
-      "
-      data-test-id="bescheid-status-dokument"
-    >
-      <alfa-vorgang-detail-bescheiden-result-dokument
-        data-test-id="bescheid-document"
-        [deletable]="wizardData.activeStep === 2"
-        [bescheidDraftStateResource]="bescheidDraftStateResource$ | async"
-        [uploadBescheidDocumentInProgress]="uploadBescheidDocumentInProgress$ | async"
-        [createBescheidDocumentInProgress]="createBescheidDocumentInProgress$ | async"
-        [bescheidDocumentFile]="bescheidDocumentFile$ | async"
-        [showMissingBescheidDocumentError]="showMissingBescheidDocumentError$ | async"
-        (deleteFile)="deleteBescheidDocument()"
-      ></alfa-vorgang-detail-bescheiden-result-dokument>
-    </div>
-
-    <div
-      class="my-4"
-      data-test-id="bescheid-status-attachments"
-      *ngIf="
-        wizardData.activeStep === 2 ||
-        (wizardData.activeStep === 3 && (wizardData.sendByManual || (canSend$ | async)))
-      "
-    >
-      <alfa-vorgang-detail-bescheiden-result-attachments
-        [deletable]="wizardData.activeStep === 2"
-        data-test-id="bescheid-attachments"
-      ></alfa-vorgang-detail-bescheiden-result-attachments>
-    </div>
-  </div>
-  <div class="flex-none">
-    <div class="flex flex-col">
-      <ng-container *ngIf="wizardData.sendByManual && wizardData.activeStep === 3">
-        <p class="mb-8 text-base font-normal text-text">
-          Der Bescheid muss manuell versendet werden.
-        </p>
-
-        <ng-container *ngIf="bescheidDraftStateResource$ | async as bescheidDraftStateResource">
-          <ods-button-with-spinner
-            class="self-end"
-            *ngIf="canSave$ | async"
-            data-test-id="confirm-and-save-button"
-            [stateResource]="saveAndSendInProgress$ | async"
-            text="Antrag bescheiden und speichern"
-            (clickEmitter)="saveAndSendManually(bescheidDraftStateResource.resource)"
-          ></ods-button-with-spinner>
-        </ng-container>
-        <!-- -->
-      </ng-container>
-      <ng-container
-        *ngIf="wizardData.activeStep === 3 && !wizardData.sendByManual && (canSend$ | async)"
-      >
-        <ng-container *ngIf="bescheidDraftStateResource$ | async as bescheidDraftStateResource">
-          <ods-button-with-spinner
-            class="self-end"
-            *ngIf="canSend$ | async"
-            data-test-id="send-button"
-            [stateResource]="saveAndSendInProgress$ | async"
-            text="Bescheid senden"
-            (clickEmitter)="saveAndSendWithNachricht(bescheidDraftStateResource.resource)"
-          ></ods-button-with-spinner>
-        </ng-container>
-      </ng-container>
-    </div>
-  </div>
-</section>
diff --git a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-result/vorgang-detail-bescheiden-result.component.spec.ts b/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-result/vorgang-detail-bescheiden-result.component.spec.ts
deleted file mode 100644
index 48eff7cb96f976e67260ca3bc8d6cb84723900cb..0000000000000000000000000000000000000000
--- a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-result/vorgang-detail-bescheiden-result.component.spec.ts
+++ /dev/null
@@ -1,719 +0,0 @@
-/*
- * Copyright (C) 2024 Das Land Schleswig-Holstein vertreten durch den
- * Ministerpräsidenten des Landes Schleswig-Holstein
- * Staatskanzlei
- * Abteilung Digitalisierung und zentrales IT-Management der Landesregierung
- *
- * Lizenziert unter der EUPL, Version 1.2 oder - sobald
- * diese von der Europäischen Kommission genehmigt wurden -
- * Folgeversionen der EUPL ("Lizenz");
- * Sie dürfen dieses Werk ausschließlich gemäß
- * dieser Lizenz nutzen.
- * Eine Kopie der Lizenz finden Sie hier:
- *
- * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
- *
- * Sofern nicht durch anwendbare Rechtsvorschriften
- * gefordert oder in schriftlicher Form vereinbart, wird
- * die unter der Lizenz verbreitete Software "so wie sie
- * ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN -
- * ausdrücklich oder stillschweigend - verbreitet.
- * Die sprachspezifischen Genehmigungen und Beschränkungen
- * unter der Lizenz sind dem Lizenztext zu entnehmen.
- */
-import { BescheidLinkRel, BescheidResource, BescheidService } from '@alfa-client/bescheid-shared';
-import { CommandOrder, CommandResource } from '@alfa-client/command-shared';
-import {
-  createEmptyStateResource,
-  createStateResource,
-  StateResource,
-} from '@alfa-client/tech-shared';
-import {
-  dispatchEventFromFixture,
-  existsAsHtmlElement,
-  getElementFromFixture,
-  Mock,
-  mock,
-  notExistsAsHtmlElement,
-} from '@alfa-client/test-utils';
-import { OzgcloudButtonWithSpinnerComponent } from '@alfa-client/ui';
-import { ComponentFixture, TestBed } from '@angular/core/testing';
-import { ButtonWithSpinnerComponent } from '@ods/component';
-import {
-  createBescheidResource,
-  createBescheidStateResource,
-} from 'libs/bescheid-shared/src/test/bescheid';
-import { CommandLinkRel } from 'libs/command-shared/src/lib/command.linkrel';
-import {
-  createCommandResource,
-  createCommandStateResource,
-} from 'libs/command-shared/test/command';
-import { getDataTestIdOf } from 'libs/tech-shared/test/data-test';
-import { MockComponent } from 'ng-mocks';
-import { BehaviorSubject, EMPTY, first, of } from 'rxjs';
-import { singleColdCompleted } from '../../../../../../tech-shared/test/marbles';
-import { BescheidenFormService } from '../bescheiden.formservice';
-import { VorgangDetailBescheidenResultAttachmentsComponent } from './vorgang-detail-bescheiden-result-attachments/vorgang-detail-bescheiden-result-attachments.component';
-import { VorgangDetailBescheidenResultDokumentComponent } from './vorgang-detail-bescheiden-result-dokument/vorgang-detail-bescheiden-result-dokument.component';
-import { VorgangDetailBescheidenResultNachrichtComponent } from './vorgang-detail-bescheiden-result-nachricht/vorgang-detail-bescheiden-result-nachricht.component';
-import { VorgangDetailBescheidenResultStatusComponent } from './vorgang-detail-bescheiden-result-status/vorgang-detail-bescheiden-result-status.component';
-import { VorgangDetailBescheidenResultComponent } from './vorgang-detail-bescheiden-result.component';
-
-describe('VorgangDetailBescheidenResultComponent', () => {
-  let component: VorgangDetailBescheidenResultComponent;
-  let fixture: ComponentFixture<VorgangDetailBescheidenResultComponent>;
-
-  let bescheidService: Mock<BescheidService>;
-  let formService: Mock<BescheidenFormService>;
-
-  const bescheidStatus: string = getDataTestIdOf('bescheid-status');
-  const bescheidDocument: string = getDataTestIdOf('bescheid-document');
-  const bescheidAttachments: string = getDataTestIdOf('bescheid-attachments');
-  const saveAndSendButton: string = getDataTestIdOf('confirm-and-save-button');
-  const sendButton: string = getDataTestIdOf('send-button');
-  const nachrichtAntragstellerComponent = getDataTestIdOf('bescheid-nachricht-an-antragsteller');
-
-  beforeEach(async () => {
-    bescheidService = mock(BescheidService);
-    bescheidService.getBescheidDraft.mockReturnValue(EMPTY);
-
-    formService = mock(BescheidenFormService);
-    formService.getBescheidChanges.mockReturnValue(
-      new BehaviorSubject({ beschiedenAm: new Date(), bewilligt: false }),
-    );
-    formService.getActiveStep.mockReturnValue(EMPTY);
-    formService.isSendByManual.mockReturnValue(EMPTY);
-
-    await TestBed.configureTestingModule({
-      declarations: [
-        VorgangDetailBescheidenResultComponent,
-        MockComponent(VorgangDetailBescheidenResultStatusComponent),
-        MockComponent(VorgangDetailBescheidenResultDokumentComponent),
-        MockComponent(VorgangDetailBescheidenResultAttachmentsComponent),
-        MockComponent(OzgcloudButtonWithSpinnerComponent),
-        MockComponent(VorgangDetailBescheidenResultNachrichtComponent),
-        MockComponent(ButtonWithSpinnerComponent),
-      ],
-      providers: [
-        {
-          provide: BescheidService,
-          useValue: bescheidService,
-        },
-        {
-          provide: BescheidenFormService,
-          useValue: formService,
-        },
-      ],
-    }).compileComponents();
-
-    fixture = TestBed.createComponent(VorgangDetailBescheidenResultComponent);
-    component = fixture.componentInstance;
-    fixture.detectChanges();
-  });
-
-  it('should create', () => {
-    expect(component).toBeTruthy();
-  });
-
-  describe('render Nachricht component', () => {
-    it('should render', () => {
-      formService.getActiveStep.mockReturnValue(of(3));
-      formService.isSendByManual.mockReturnValue(of(false));
-      component.ngOnInit();
-      component.canSend$ = of(true);
-
-      fixture.detectChanges();
-
-      const element = getElementFromFixture(fixture, nachrichtAntragstellerComponent);
-      expect(element).toBeInstanceOf(HTMLElement);
-    });
-
-    it.each([1, 2])('should not render in step %d', (step) => {
-      formService.getActiveStep.mockReturnValue(of(step));
-      formService.isSendByManual.mockReturnValue(of(false));
-      component.ngOnInit();
-      component.canSend$ = of(true);
-
-      fixture.detectChanges();
-
-      const element = getElementFromFixture(fixture, nachrichtAntragstellerComponent);
-      expect(element).not.toBeInstanceOf(HTMLElement);
-    });
-
-    it('should not render if send by manual', () => {
-      formService.getActiveStep.mockReturnValue(of(3));
-      formService.isSendByManual.mockReturnValue(of(true));
-      component.ngOnInit();
-      component.canSend$ = of(true);
-
-      fixture.detectChanges();
-
-      const element = getElementFromFixture(fixture, nachrichtAntragstellerComponent);
-      expect(element).not.toBeInstanceOf(HTMLElement);
-    });
-
-    it('should not render if postfach not configured', () => {
-      formService.getActiveStep.mockReturnValue(of(3));
-      formService.isSendByManual.mockReturnValue(of(false));
-      component.ngOnInit();
-      component.canSend$ = of(false);
-
-      fixture.detectChanges();
-
-      const element = getElementFromFixture(fixture, nachrichtAntragstellerComponent);
-      expect(element).not.toBeInstanceOf(HTMLElement);
-    });
-  });
-
-  describe('render send button', () => {
-    it('should render', () => {
-      formService.getActiveStep.mockReturnValue(of(3));
-      formService.isSendByManual.mockReturnValue(of(false));
-      bescheidService.getBescheidDraft.mockReturnValue(
-        of(createStateResource(createBescheidResource())),
-      );
-      component.ngOnInit();
-      component.canSend$ = of(true);
-
-      fixture.detectChanges();
-
-      const element = getElementFromFixture(fixture, sendButton);
-      expect(element).toBeInstanceOf(HTMLElement);
-    });
-
-    it.each([1, 2])('should not render in step %d', (step) => {
-      formService.getActiveStep.mockReturnValue(of(step));
-      formService.isSendByManual.mockReturnValue(of(false));
-      component.ngOnInit();
-      component.canSend$ = of(true);
-
-      fixture.detectChanges();
-
-      const element = getElementFromFixture(fixture, sendButton);
-      expect(element).not.toBeInstanceOf(HTMLElement);
-    });
-
-    it('should not render if send by manual', () => {
-      formService.getActiveStep.mockReturnValue(of(3));
-      formService.isSendByManual.mockReturnValue(of(true));
-      component.ngOnInit();
-      component.canSend$ = of(true);
-
-      fixture.detectChanges();
-
-      const element = getElementFromFixture(fixture, sendButton);
-      expect(element).not.toBeInstanceOf(HTMLElement);
-    });
-
-    it('should not render if postfach not configured', () => {
-      formService.getActiveStep.mockReturnValue(of(3));
-      formService.isSendByManual.mockReturnValue(of(false));
-      component.ngOnInit();
-      component.canSend$ = of(false);
-
-      fixture.detectChanges();
-
-      const element = getElementFromFixture(fixture, sendButton);
-      expect(element).not.toBeInstanceOf(HTMLElement);
-    });
-  });
-
-  describe('ngOnInit', () => {
-    it('should call service to get bescheid document file', () => {
-      component.ngOnInit();
-
-      expect(bescheidService.getBescheidDocumentFile).toHaveBeenCalled();
-    });
-
-    it('should call service to get bescheid draft', () => {
-      component.ngOnInit();
-
-      expect(bescheidService.getBescheidDraft).toHaveBeenCalled();
-    });
-
-    it('should call service to get bescheid document', () => {
-      component.ngOnInit();
-
-      expect(bescheidService.getBescheidDocument).toHaveBeenCalled();
-    });
-
-    it('should call formservice to get current bescheid/formular', () => {
-      component.ngOnInit();
-
-      expect(formService.getBescheidChanges).toHaveBeenCalled();
-    });
-
-    it('should get is send by manual', () => {
-      component.getIsSendManually = jest.fn();
-
-      component.ngOnInit();
-
-      expect(component.getIsSendManually).toHaveBeenCalled();
-    });
-
-    it('should call service to get upload bescheid document in progress', () => {
-      component.ngOnInit();
-
-      expect(bescheidService.getUploadBescheidDocumentInProgress).toHaveBeenCalled();
-    });
-
-    it('should call service to get create bescheid document in progress', () => {
-      component.ngOnInit();
-
-      expect(bescheidService.getCreateBescheidDocumentInProgress).toHaveBeenCalled();
-    });
-
-    it('should get active step', () => {
-      component.getActiveStep = jest.fn();
-
-      component.ngOnInit();
-
-      expect(component.getActiveStep).toHaveBeenCalled();
-    });
-
-    describe('canSave$', () => {
-      it('should emit true', () => {
-        bescheidService.getBescheidDraft.mockReturnValue(
-          of(createBescheidStateResource([BescheidLinkRel.BESCHEIDEN])),
-        );
-        component.ngOnInit();
-
-        expect(component.canSave$).toBeObservable(singleColdCompleted(true));
-      });
-
-      it('should emit false', () => {
-        bescheidService.getBescheidDraft.mockReturnValue(of(createBescheidStateResource()));
-        component.ngOnInit();
-
-        expect(component.canSave$).toBeObservable(singleColdCompleted(false));
-      });
-    });
-
-    describe('canSend$', () => {
-      it('should emit true', () => {
-        bescheidService.getBescheidDraft.mockReturnValue(
-          of(createBescheidStateResource([BescheidLinkRel.BESCHEIDEN_UND_SENDEN])),
-        );
-        component.ngOnInit();
-
-        expect(component.canSend$).toBeObservable(singleColdCompleted(true));
-      });
-
-      it('should emit false', () => {
-        bescheidService.getBescheidDraft.mockReturnValue(of(createBescheidStateResource()));
-        component.ngOnInit();
-
-        expect(component.canSend$).toBeObservable(singleColdCompleted(false));
-      });
-    });
-
-    describe('showMissingBescheidDocumentError$', () => {
-      it('should emit true', () => {
-        formService.getShowMissingBescheidDocumentError.mockReturnValue(of(true));
-
-        component.ngOnInit();
-
-        expect(component.showMissingBescheidDocumentError$).toBeObservable(
-          singleColdCompleted(true),
-        );
-      });
-
-      it('should emit false', () => {
-        formService.getShowMissingBescheidDocumentError.mockReturnValue(of(false));
-
-        component.ngOnInit();
-
-        expect(component.showMissingBescheidDocumentError$).toBeObservable(
-          singleColdCompleted(false),
-        );
-      });
-    });
-  });
-
-  describe('deleteBescheidDocument', () => {
-    it('should call service to delete bescheid document', () => {
-      component.deleteBescheidDocument();
-
-      expect(bescheidService.deleteBescheidDocument).toHaveBeenCalled();
-    });
-
-    it('should clear bescheid document file', () => {
-      component.deleteBescheidDocument();
-
-      expect(formService.clearBescheidDocumentFile).toHaveBeenCalled();
-    });
-  });
-
-  describe('save and send manually', () => {
-    const bescheidDraft: BescheidResource = createBescheidResource();
-    const bescheidStateResource: StateResource<BescheidResource> =
-      createStateResource(bescheidDraft);
-
-    beforeEach(() => {
-      component.bescheidDraftStateResource$ = of(bescheidStateResource);
-      component.sendByManual$ = of(true);
-      component.activeStep$ = of(3);
-    });
-
-    it('should clear nachricht', () => {
-      component.doUpdateAndSend = jest.fn();
-
-      component.saveAndSendManually(bescheidDraft);
-
-      expect(formService.clearNachricht).toHaveBeenCalled();
-    });
-
-    it('should call component on event dispatch', () => {
-      component.saveAndSendManually = jest.fn();
-      component.canSave$ = of(true);
-
-      fixture.detectChanges();
-
-      dispatchEventFromFixture(fixture, saveAndSendButton, 'clickEmitter');
-
-      expect(component.saveAndSendManually).toHaveBeenCalledWith(bescheidDraft);
-    });
-
-    it('should call do update and send', () => {
-      component.doUpdateAndSend = jest.fn();
-
-      component.saveAndSendManually(bescheidDraft);
-
-      expect(component.doUpdateAndSend).toHaveBeenCalled();
-    });
-  });
-
-  describe('save and send with Nachricht', () => {
-    const bescheidDraft: BescheidResource = createBescheidResource();
-    const bescheidStateResource: StateResource<BescheidResource> =
-      createStateResource(bescheidDraft);
-    let doUpdateAndSendMock: jest.Mock;
-
-    beforeEach(() => {
-      component.bescheidDraftStateResource$ = of(bescheidStateResource);
-      component.sendByManual$ = of(true);
-      component.activeStep$ = of(3);
-      doUpdateAndSendMock = component.doUpdateAndSend = jest.fn();
-    });
-
-    it('should call do update and send', () => {
-      component.saveAndSendWithNachricht(bescheidDraft);
-
-      expect(doUpdateAndSendMock).toHaveBeenCalledWith(bescheidDraft, expect.any(Function));
-    });
-
-    it('should send bescheid to antragsteller', () => {
-      bescheidService.sendBescheidToAntragsteller.mockReturnValue(of(createCommandStateResource()));
-      component.saveAndSendWithNachricht(bescheidDraft);
-      const sendCallback = doUpdateAndSendMock.mock.calls[0][1];
-
-      sendCallback(bescheidDraft);
-
-      expect(bescheidService.sendBescheidToAntragsteller).toHaveBeenCalledWith(bescheidDraft);
-    });
-
-    it('should emit send nachricht', () => {
-      const sendCommandStateResource: StateResource<CommandResource> = createCommandStateResource();
-      bescheidService.sendBescheidToAntragsteller.mockReturnValue(of(sendCommandStateResource));
-      component.saveAndSendWithNachricht(bescheidDraft);
-      const sendCallback = doUpdateAndSendMock.mock.calls[0][1];
-
-      sendCallback(bescheidDraft).subscribe();
-
-      expect(component.sendWithNachricht$.value).toEqual(sendCommandStateResource);
-    });
-  });
-
-  describe('doUpdateAndSend', () => {
-    const bescheidDraft: BescheidResource = createBescheidResource();
-    const commandStateResource: StateResource<CommandResource> = createStateResource(
-      createCommandResource([CommandLinkRel.EFFECTED_RESOURCE]),
-    );
-
-    beforeEach(() => {
-      component.sendByManual$ = of(true);
-      formService.submit = jest.fn().mockReturnValue(of(commandStateResource));
-    });
-
-    it('should call formservice submit', () => {
-      component.doUpdateAndSend(bescheidDraft, jest.fn()).subscribe();
-
-      expect(formService.submit).toHaveBeenCalled();
-    });
-
-    it('should call send after successfully update', () => {
-      component.doSendAfterSuccessfullyUpdate = jest.fn();
-      const sendMock = jest.fn();
-
-      component.doUpdateAndSend(bescheidDraft, sendMock).subscribe();
-
-      expect(component.doSendAfterSuccessfullyUpdate).toHaveBeenCalledWith(bescheidDraft, sendMock);
-    });
-
-    it('should close dialog on successfully done command', () => {
-      const sendMock = jest.fn();
-      formService.submit = jest.fn().mockReturnValue(
-        of(
-          createStateResource({
-            ...createCommandResource([CommandLinkRel.EFFECTED_RESOURCE]),
-            order: CommandOrder.SEND_BESCHEID,
-          }),
-        ),
-      );
-      const emit = (component.closeDialog.emit = jest.fn());
-
-      component.doUpdateAndSend(bescheidDraft, sendMock).subscribe();
-
-      expect(emit).toHaveBeenCalled();
-    });
-  });
-
-  describe('doSendAfterSuccessfullyUpdate', () => {
-    const bescheidDraft: BescheidResource = createBescheidResource();
-
-    it('should call send', () => {
-      const commandStateResource: StateResource<CommandResource> = createStateResource(
-        createCommandResource([CommandLinkRel.EFFECTED_RESOURCE]),
-      );
-      const sendMock = jest.fn();
-
-      component
-        .doSendAfterSuccessfullyUpdate(bescheidDraft, sendMock)(of(commandStateResource))
-        .subscribe();
-
-      expect(sendMock).toHaveBeenCalled();
-    });
-
-    it('should not call send', () => {
-      const commandStateResource: StateResource<CommandResource> = createEmptyStateResource();
-      const sendMock = jest.fn();
-
-      component
-        .doSendAfterSuccessfullyUpdate(bescheidDraft, sendMock)(of(commandStateResource))
-        .subscribe();
-
-      expect(sendMock).not.toHaveBeenCalled();
-    });
-  });
-
-  describe('bescheid status text', () => {
-    it('should NOT be visible on NOT send by manual', () => {
-      component.sendByManual$ = of(false);
-
-      fixture.detectChanges();
-
-      notExistsAsHtmlElement(fixture, bescheidStatus);
-    });
-
-    it('should NOT be visible on step 3 and NOT send by manual', () => {
-      component.sendByManual$ = of(false);
-      component.activeStep$ = of(3);
-
-      fixture.detectChanges();
-
-      notExistsAsHtmlElement(fixture, bescheidStatus);
-    });
-  });
-
-  describe('bescheid document', () => {
-    it('should NOT be visible on NOT send by manual', () => {
-      component.sendByManual$ = of(false);
-
-      fixture.detectChanges();
-
-      notExistsAsHtmlElement(fixture, bescheidDocument);
-    });
-
-    it('should NOT be visible on step 3', () => {
-      component.sendByManual$ = of(false);
-      component.activeStep$ = of(3);
-
-      fixture.detectChanges();
-
-      notExistsAsHtmlElement(fixture, bescheidDocument);
-    });
-
-    it('should NOT be visible on step 1', () => {
-      component.sendByManual$ = of(false);
-      component.activeStep$ = of(1);
-
-      fixture.detectChanges();
-
-      notExistsAsHtmlElement(fixture, bescheidDocument);
-    });
-
-    it('should be visible in step 3 when link exists', () => {
-      component.sendByManual$ = of(false);
-      component.activeStep$ = of(3);
-      component.canSend$ = of(true);
-
-      fixture.detectChanges();
-
-      existsAsHtmlElement(fixture, bescheidDocument);
-    });
-  });
-
-  describe('bescheid attachments', () => {
-    it('should NOT be visible on NOT send by manual', () => {
-      component.sendByManual$ = of(false);
-
-      fixture.detectChanges();
-
-      notExistsAsHtmlElement(fixture, bescheidAttachments);
-    });
-
-    it('should NOT be visible on step 3', () => {
-      component.sendByManual$ = of(false);
-      component.activeStep$ = of(3);
-
-      fixture.detectChanges();
-
-      notExistsAsHtmlElement(fixture, bescheidAttachments);
-    });
-
-    it('should NOT be visible on step 1', () => {
-      component.sendByManual$ = of(false);
-      component.activeStep$ = of(1);
-
-      fixture.detectChanges();
-
-      notExistsAsHtmlElement(fixture, bescheidAttachments);
-    });
-
-    it('should be visible in step 3 when postfach is configured', () => {
-      component.sendByManual$ = of(false);
-      component.activeStep$ = of(3);
-      component.canSend$ = of(true);
-
-      fixture.detectChanges();
-
-      existsAsHtmlElement(fixture, bescheidAttachments);
-    });
-  });
-
-  describe('update and bescheiden', () => {
-    it('should NOT be visible on step 1', () => {
-      component.sendByManual$ = of(false);
-
-      fixture.detectChanges();
-
-      notExistsAsHtmlElement(fixture, saveAndSendButton);
-    });
-
-    it('should NOT be visible on setp 2', () => {
-      component.sendByManual$ = of(false);
-
-      fixture.detectChanges();
-
-      notExistsAsHtmlElement(fixture, saveAndSendButton);
-    });
-    it('should NOT be visible on step 3 and NOT send by manual', () => {
-      component.sendByManual$ = of(false);
-
-      fixture.detectChanges();
-
-      notExistsAsHtmlElement(fixture, saveAndSendButton);
-    });
-  });
-
-  describe('resetSend', () => {
-    it('should set to empty state resource', () => {
-      component.saveAndSendInProgress$ = of(createStateResource(createCommandResource()));
-
-      component.resetSend();
-
-      expect(component.saveAndSendInProgress$).toBeObservable(
-        singleColdCompleted(createEmptyStateResource()),
-      );
-    });
-  });
-
-  describe('get active step', () => {
-    it('should call formService', () => {
-      component.getActiveStep().subscribe();
-
-      expect(formService.getActiveStep).toHaveBeenCalled();
-    });
-
-    it.each([1, VorgangDetailBescheidenResultComponent.BESCHEID_VERSENDEN_STEP])(
-      'should call bescheidService to clear attachment upload on step %s',
-      (step: number) => {
-        formService.getActiveStep.mockReturnValue(of(step));
-
-        component.getActiveStep().subscribe();
-
-        expect(bescheidService.clearAttachmentUpload).toHaveBeenCalled();
-      },
-    );
-
-    describe('reset send', () => {
-      beforeEach(() => {
-        component.resetSend = jest.fn();
-      });
-
-      it.each([1, VorgangDetailBescheidenResultComponent.ADD_DOCUMENTS_STEP])(
-        'should be called on step %s',
-        (step: number) => {
-          formService.getActiveStep.mockReturnValue(of(step));
-
-          component.getActiveStep().subscribe();
-
-          expect(component.resetSend).toHaveBeenCalled();
-        },
-      );
-
-      it('should not be called on last step', () => {
-        formService.getActiveStep.mockReturnValue(of(3));
-
-        component.getActiveStep().subscribe();
-
-        expect(component.resetSend).not.toHaveBeenCalled();
-      });
-    });
-  });
-
-  describe('reset send', () => {
-    it('should clear saveAndSendInProgress', (done) => {
-      component.saveAndSendInProgress$ = of(createCommandStateResource());
-
-      component.resetSend();
-
-      component.saveAndSendInProgress$
-        .subscribe((saveAndSendInProgress: StateResource<CommandResource>) => {
-          expect(saveAndSendInProgress).toEqual(createEmptyStateResource());
-          done();
-        });
-    });
-
-    it('should clear sendWithNachricht', () => {
-      component.sendWithNachricht$.next(createCommandStateResource());
-
-      component.resetSend();
-
-      expect(component.sendWithNachricht$.value).toEqual(createEmptyStateResource());
-    });
-  });
-
-  describe('getIsSendManually', () => {
-    beforeEach(() => {
-      component.resetSend = jest.fn();
-    });
-
-    it('should get is send by manual from from service', () => {
-      component.getIsSendManually();
-
-      expect(formService.isSendByManual).toHaveBeenCalled();
-    });
-
-    it.each([true, false])(
-      'should reset send if send by manual is %s',
-      (isSendByManual: boolean) => {
-        formService.isSendByManual.mockReturnValue(of(isSendByManual));
-
-        component.getIsSendManually().subscribe();
-
-        expect(component.resetSend).toHaveBeenCalled();
-      },
-    );
-  });
-});
diff --git a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-result/vorgang-detail-bescheiden-result.component.ts b/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-result/vorgang-detail-bescheiden-result.component.ts
deleted file mode 100644
index 5b77ac192ea34a4479534bef624a6ba3e24bb3ac..0000000000000000000000000000000000000000
--- a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-result/vorgang-detail-bescheiden-result.component.ts
+++ /dev/null
@@ -1,184 +0,0 @@
-/*
- * Copyright (C) 2024 Das Land Schleswig-Holstein vertreten durch den
- * Ministerpräsidenten des Landes Schleswig-Holstein
- * Staatskanzlei
- * Abteilung Digitalisierung und zentrales IT-Management der Landesregierung
- *
- * Lizenziert unter der EUPL, Version 1.2 oder - sobald
- * diese von der Europäischen Kommission genehmigt wurden -
- * Folgeversionen der EUPL ("Lizenz");
- * Sie dürfen dieses Werk ausschließlich gemäß
- * dieser Lizenz nutzen.
- * Eine Kopie der Lizenz finden Sie hier:
- *
- * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
- *
- * Sofern nicht durch anwendbare Rechtsvorschriften
- * gefordert oder in schriftlicher Form vereinbart, wird
- * die unter der Lizenz verbreitete Software "so wie sie
- * ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN -
- * ausdrücklich oder stillschweigend - verbreitet.
- * Die sprachspezifischen Genehmigungen und Beschränkungen
- * unter der Lizenz sind dem Lizenztext zu entnehmen.
- */
-import {
-  Bescheid,
-  BescheidLinkRel,
-  BescheidResource,
-  BescheidService,
-  DocumentResource,
-  UploadFileInProgress,
-} from '@alfa-client/bescheid-shared';
-import { BinaryFileResource } from '@alfa-client/binary-file-shared';
-import {
-  CommandOrder,
-  CommandResource,
-  switchMapCommandSuccessfullyDone,
-  tapOnCommandSuccessfullyDone,
-} from '@alfa-client/command-shared';
-import { createEmptyStateResource, isLoaded, StateResource } from '@alfa-client/tech-shared';
-import { Component, EventEmitter, OnInit, Output } from '@angular/core';
-import { hasLink } from '@ngxp/rest';
-import { BehaviorSubject, filter, map, Observable, of, OperatorFunction, tap } from 'rxjs';
-import { BescheidenFormService } from '../bescheiden.formservice';
-
-type sendBescheid = (BescheidResource: BescheidResource) => Observable<StateResource<CommandResource>>;
-
-@Component({
-  selector: 'alfa-vorgang-detail-bescheiden-result',
-  templateUrl: './vorgang-detail-bescheiden-result.component.html',
-})
-export class VorgangDetailBescheidenResultComponent implements OnInit {
-  static readonly ADD_DOCUMENTS_STEP: number = 2;
-  static readonly BESCHEID_VERSENDEN_STEP: number = 3;
-
-  @Output() closeDialog: EventEmitter<void> = new EventEmitter();
-
-  public activeStep$: Observable<number>;
-  public bescheid$: Observable<Bescheid>;
-  public sendByManual$: Observable<boolean>;
-
-  public bescheidDraftStateResource$: Observable<StateResource<BescheidResource>> =
-    of(createEmptyStateResource<BescheidResource>());
-  public bescheidDocumentFile$: Observable<StateResource<BinaryFileResource>> =
-    of(createEmptyStateResource<BinaryFileResource>());
-  public bescheidDocument$: Observable<StateResource<DocumentResource>> = of(createEmptyStateResource<DocumentResource>());
-  public saveAndSendInProgress$: Observable<StateResource<CommandResource>> = of(createEmptyStateResource<CommandResource>());
-
-  public uploadBescheidDocumentInProgress$: Observable<UploadFileInProgress> = of({
-    loading: false,
-  });
-
-  public createBescheidDocumentInProgress$: Observable<StateResource<CommandResource>> =
-    of(createEmptyStateResource<CommandResource>());
-
-  public sendWithNachricht$: BehaviorSubject<StateResource<CommandResource>> = new BehaviorSubject(
-    createEmptyStateResource<CommandResource>(),
-  );
-
-  public canSave$: Observable<boolean> = of(true);
-  public canSend$: Observable<boolean> = of(true);
-  public showMissingBescheidDocumentError$: Observable<boolean> = of(false);
-
-  public bescheidLinkRel = BescheidLinkRel;
-
-  constructor(
-    private bescheidService: BescheidService,
-    public formService: BescheidenFormService,
-  ) {}
-
-  ngOnInit(): void {
-    this.bescheidDraftStateResource$ = this.bescheidService.getBescheidDraft();
-    this.bescheidDocumentFile$ = this.bescheidService.getBescheidDocumentFile();
-    this.uploadBescheidDocumentInProgress$ = this.bescheidService.getUploadBescheidDocumentInProgress();
-    this.createBescheidDocumentInProgress$ = this.bescheidService.getCreateBescheidDocumentInProgress();
-    this.bescheidDocument$ = this.bescheidService.getBescheidDocument();
-
-    this.activeStep$ = this.getActiveStep();
-    this.bescheid$ = this.formService.getBescheidChanges();
-    this.sendByManual$ = this.getIsSendManually();
-
-    this.canSave$ = this.bescheidDraftStateResource$.pipe(
-      filter(isLoaded),
-      map((stateResource: StateResource<BescheidResource>) => hasLink(stateResource.resource, BescheidLinkRel.BESCHEIDEN)),
-    );
-    this.canSend$ = this.bescheidDraftStateResource$.pipe(
-      filter(isLoaded),
-      map((stateResource: StateResource<BescheidResource>) =>
-        hasLink(stateResource.resource, BescheidLinkRel.BESCHEIDEN_UND_SENDEN),
-      ),
-    );
-    this.showMissingBescheidDocumentError$ = this.formService.getShowMissingBescheidDocumentError();
-  }
-
-  getActiveStep(): Observable<number> {
-    return this.formService.getActiveStep().pipe(tap((step: number) => this.resetStateOnStepChange(step)));
-  }
-
-  getIsSendManually(): Observable<boolean> {
-    return this.formService.isSendByManual().pipe(tap(() => this.resetSend()));
-  }
-
-  private resetStateOnStepChange(step: number): void {
-    if (this.isNotLast(step)) this.resetSend();
-    if (this.shouldClearAttachmentInProgress(step)) this.bescheidService.clearAttachmentUpload();
-  }
-
-  private isNotLast(step: number): boolean {
-    return step < VorgangDetailBescheidenResultComponent.BESCHEID_VERSENDEN_STEP;
-  }
-
-  private shouldClearAttachmentInProgress(step: number): boolean {
-    return step != VorgangDetailBescheidenResultComponent.ADD_DOCUMENTS_STEP;
-  }
-
-  resetSend(): void {
-    this.saveAndSendInProgress$ = of(createEmptyStateResource<CommandResource>());
-    this.sendWithNachricht$.next(createEmptyStateResource<CommandResource>());
-  }
-
-  public deleteBescheidDocument(): void {
-    this.formService.clearBescheidDocumentFile();
-    this.bescheidService.deleteBescheidDocument();
-  }
-
-  public saveAndSendManually(bescheidDraft: BescheidResource): void {
-    this.formService.clearNachricht();
-    this.saveAndSendInProgress$ = this.doUpdateAndSend(bescheidDraft, (bescheidResource) =>
-      this.bescheidService.sendBescheidManually(bescheidResource),
-    );
-  }
-
-  public saveAndSendWithNachricht(bescheidDraft: BescheidResource): void {
-    this.saveAndSendInProgress$ = this.doUpdateAndSend(bescheidDraft, (bescheidResource) =>
-      this.bescheidService
-        .sendBescheidToAntragsteller(bescheidResource)
-        .pipe(
-          tap((sendCommandStateResource: StateResource<CommandResource>) =>
-            this.sendWithNachricht$.next(sendCommandStateResource),
-          ),
-        ),
-    );
-  }
-
-  doUpdateAndSend(bescheidDraft: BescheidResource, send: sendBescheid): Observable<StateResource<CommandResource>> {
-    return this.formService.submit(this.doSendAfterSuccessfullyUpdate(bescheidDraft, send)).pipe(
-      tapOnCommandSuccessfullyDone((commandStateResource: StateResource<CommandResource>) => {
-        if (this.isSendBescheidCommand(commandStateResource)) {
-          this.closeDialog.emit();
-        }
-      }),
-    );
-  }
-
-  doSendAfterSuccessfullyUpdate(
-    bescheidDraft: BescheidResource,
-    send: sendBescheid,
-  ): OperatorFunction<StateResource<CommandResource>, StateResource<CommandResource>> {
-    return switchMapCommandSuccessfullyDone(() => send(bescheidDraft));
-  }
-
-  private isSendBescheidCommand(commandStateResource: StateResource<CommandResource>): boolean {
-    return commandStateResource.resource.order == CommandOrder.SEND_BESCHEID;
-  }
-}
diff --git a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-step-buttons/vorgang-detail-bescheiden-step-button/vorgang-detail-bescheiden-step-button.component.html b/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-step-buttons/vorgang-detail-bescheiden-step-button/vorgang-detail-bescheiden-step-button.component.html
deleted file mode 100644
index ebdc411aa0cc5ffaaed9348339c0817af48b2838..0000000000000000000000000000000000000000
--- a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-step-buttons/vorgang-detail-bescheiden-step-button/vorgang-detail-bescheiden-step-button.component.html
+++ /dev/null
@@ -1,86 +0,0 @@
-<!--
-
-    Copyright (C) 2024 Das Land Schleswig-Holstein vertreten durch den
-    Ministerpräsidenten des Landes Schleswig-Holstein
-    Staatskanzlei
-    Abteilung Digitalisierung und zentrales IT-Management der Landesregierung
-
-    Lizenziert unter der EUPL, Version 1.2 oder - sobald
-    diese von der Europäischen Kommission genehmigt wurden -
-    Folgeversionen der EUPL ("Lizenz");
-    Sie dürfen dieses Werk ausschließlich gemäß
-    dieser Lizenz nutzen.
-    Eine Kopie der Lizenz finden Sie hier:
-
-    https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
-
-    Sofern nicht durch anwendbare Rechtsvorschriften
-    gefordert oder in schriftlicher Form vereinbart, wird
-    die unter der Lizenz verbreitete Software "so wie sie
-    ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN -
-    ausdrücklich oder stillschweigend - verbreitet.
-    Die sprachspezifischen Genehmigungen und Beschränkungen
-    unter der Lizenz sind dem Lizenztext zu entnehmen.
-
--->
-<div class="relative z-10 flex min-h-28 flex-col items-center">
-  <div
-    class="-z-1 absolute w-1"
-    [ngClass]="
-      step === 1 ?
-        isPrevious() ? 'bottom-0 top-2 bg-primary-600'
-        : 'bottom-0 top-2 bg-gray-500'
-      : step === 2 ?
-        isPrevious() ? 'bottom-0 top-0 bg-primary-600'
-        : 'bottom-0 top-0 bg-gray-500'
-      : step === 3 ?
-        isActive() ? 'top-0 h-2  bg-primary-600'
-        : 'top-0 h-2 bg-gray-500'
-      : ''
-    "
-    aria-hidden="true"
-  ></div>
-
-  <button
-    class="z-10 flex"
-    (click)="clickHandler(step)"
-    [ngClass]="isPrevious() ? 'cursor-pointer' : 'cursor-default'"
-    [attr.data-test-id]="
-      step === 1 ? 'step-1-button'
-      : step === 2 ? 'step-2-button'
-      : step === 3 ? 'step-3-button'
-      : ''
-    "
-    role="tab"
-    [attr.aria-selected]="isActive()"
-    [attr.aria-disabled]="!isActive()"
-    attr.aria-controls="vorgang-detail-bescheiden-step-content-{{ step }}"
-    [tabindex]="
-      isActive() ? '0'
-      : isPrevious() ? '0'
-      : '-1'
-    "
-    [attr.aria-label]="
-      step === 1 ? 'Step 1. Antrag bescheiden'
-      : step === 2 ? 'Step 2. Dokumente hinzufügen'
-      : step === 3 ? 'Step 3. Bescheid versenden'
-      : ''
-    "
-  >
-    <span
-      class="flex size-10 items-center justify-center rounded-full"
-      [ngClass]="
-        isActive() ?
-          'border-4 border-primary-600 bg-background-50'
-        : 'border-transparent bg-transparent'
-      "
-    >
-      <span
-        class="flex size-7 items-center justify-center rounded-full text-sm text-whitetext"
-        [ngClass]="isPrevious() || isActive() ? 'bg-primary-600' : 'bg-gray-500'"
-      >
-        {{ step }}
-      </span>
-    </span>
-  </button>
-</div>
diff --git a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-step-buttons/vorgang-detail-bescheiden-step-button/vorgang-detail-bescheiden-step-button.component.spec.ts b/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-step-buttons/vorgang-detail-bescheiden-step-button/vorgang-detail-bescheiden-step-button.component.spec.ts
deleted file mode 100644
index 80d87d9ba66ebeaf56908ce56266ae501417a6ec..0000000000000000000000000000000000000000
--- a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-step-buttons/vorgang-detail-bescheiden-step-button/vorgang-detail-bescheiden-step-button.component.spec.ts
+++ /dev/null
@@ -1,132 +0,0 @@
-/*
- * Copyright (C) 2024 Das Land Schleswig-Holstein vertreten durch den
- * Ministerpräsidenten des Landes Schleswig-Holstein
- * Staatskanzlei
- * Abteilung Digitalisierung und zentrales IT-Management der Landesregierung
- *
- * Lizenziert unter der EUPL, Version 1.2 oder - sobald
- * diese von der Europäischen Kommission genehmigt wurden -
- * Folgeversionen der EUPL ("Lizenz");
- * Sie dürfen dieses Werk ausschließlich gemäß
- * dieser Lizenz nutzen.
- * Eine Kopie der Lizenz finden Sie hier:
- *
- * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
- *
- * Sofern nicht durch anwendbare Rechtsvorschriften
- * gefordert oder in schriftlicher Form vereinbart, wird
- * die unter der Lizenz verbreitete Software "so wie sie
- * ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN -
- * ausdrücklich oder stillschweigend - verbreitet.
- * Die sprachspezifischen Genehmigungen und Beschränkungen
- * unter der Lizenz sind dem Lizenztext zu entnehmen.
- */
-import { mock } from '@alfa-client/test-utils';
-import { EventEmitter } from '@angular/core';
-import { ComponentFixture, TestBed } from '@angular/core/testing';
-import { VorgangDetailBescheidenStepButtonComponent } from './vorgang-detail-bescheiden-step-button.component';
-
-describe('VorgangDetailBescheidenStepButtonComponent', () => {
-  let component: VorgangDetailBescheidenStepButtonComponent;
-  let fixture: ComponentFixture<VorgangDetailBescheidenStepButtonComponent>;
-
-  beforeEach(async () => {
-    await TestBed.configureTestingModule({
-      declarations: [VorgangDetailBescheidenStepButtonComponent],
-    }).compileComponents();
-
-    fixture = TestBed.createComponent(VorgangDetailBescheidenStepButtonComponent);
-    component = fixture.componentInstance;
-    fixture.detectChanges();
-  });
-
-  it('should create', () => {
-    expect(component).toBeTruthy();
-  });
-
-  describe('isActive', () => {
-    it('return true if step equals activeStep', () => {
-      component.step = 2;
-      component.activeStep = 2;
-
-      expect(component.isActive()).toBeTruthy();
-    });
-
-    it('return false if step not equals activeStep', () => {
-      component.step = 1;
-      component.activeStep = 2;
-
-      expect(component.isActive()).toBeFalsy();
-    });
-  });
-
-  describe('isPrevious', () => {
-    it('return true if step is less than activeStep', () => {
-      component.step = 1;
-      component.activeStep = 2;
-
-      expect(component.isPrevious()).toBeTruthy();
-    });
-
-    it('return false if step equals activeStep', () => {
-      component.step = 2;
-      component.activeStep = 2;
-
-      expect(component.isPrevious()).toBeFalsy();
-    });
-
-    it('return false if step is greater than activeStep', () => {
-      component.step = 3;
-      component.activeStep = 2;
-
-      expect(component.isPrevious()).toBeFalsy();
-    });
-  });
-
-  describe('isNext', () => {
-    it('return false if step is less than activeStep', () => {
-      component.step = 1;
-      component.activeStep = 2;
-
-      expect(component.isNext()).toBeFalsy();
-    });
-
-    it('return false if step equals activeStep', () => {
-      component.step = 2;
-      component.activeStep = 2;
-
-      expect(component.isNext()).toBeFalsy();
-    });
-
-    it('return true if step is greater than activeStep', () => {
-      component.step = 3;
-      component.activeStep = 2;
-
-      expect(component.isNext()).toBeTruthy();
-    });
-  });
-
-  describe('clickHandler', () => {
-    const isPreviousMock = jest.fn();
-    beforeEach(() => {
-      component.isPrevious = isPreviousMock;
-      component.activeStepChange = <any>mock(EventEmitter);
-    });
-
-    it('should emit step', () => {
-      isPreviousMock.mockReturnValue(true);
-
-      component.clickHandler(1);
-
-      expect(component.activeStepChange.emit).toHaveBeenCalledWith(1);
-    });
-
-    it('should not emit step', () => {
-      isPreviousMock.mockReturnValue(false);
-
-      component.clickHandler(1);
-
-      expect(component.activeStepChange.emit).not.toHaveBeenCalled();
-    });
-  });
-});
diff --git a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-step-buttons/vorgang-detail-bescheiden-step-button/vorgang-detail-bescheiden-step-button.component.ts b/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-step-buttons/vorgang-detail-bescheiden-step-button/vorgang-detail-bescheiden-step-button.component.ts
deleted file mode 100644
index 31db0b3d312a443b44bb5dfce4ca48312e8f081b..0000000000000000000000000000000000000000
--- a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-step-buttons/vorgang-detail-bescheiden-step-button/vorgang-detail-bescheiden-step-button.component.ts
+++ /dev/null
@@ -1,52 +0,0 @@
-/*
- * Copyright (C) 2024 Das Land Schleswig-Holstein vertreten durch den
- * Ministerpräsidenten des Landes Schleswig-Holstein
- * Staatskanzlei
- * Abteilung Digitalisierung und zentrales IT-Management der Landesregierung
- *
- * Lizenziert unter der EUPL, Version 1.2 oder - sobald
- * diese von der Europäischen Kommission genehmigt wurden -
- * Folgeversionen der EUPL ("Lizenz");
- * Sie dürfen dieses Werk ausschließlich gemäß
- * dieser Lizenz nutzen.
- * Eine Kopie der Lizenz finden Sie hier:
- *
- * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
- *
- * Sofern nicht durch anwendbare Rechtsvorschriften
- * gefordert oder in schriftlicher Form vereinbart, wird
- * die unter der Lizenz verbreitete Software "so wie sie
- * ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN -
- * ausdrücklich oder stillschweigend - verbreitet.
- * Die sprachspezifischen Genehmigungen und Beschränkungen
- * unter der Lizenz sind dem Lizenztext zu entnehmen.
- */
-import { Component, EventEmitter, Input, Output } from '@angular/core';
-
-@Component({
-  selector: 'alfa-vorgang-detail-bescheiden-step-button',
-  templateUrl: './vorgang-detail-bescheiden-step-button.component.html',
-})
-export class VorgangDetailBescheidenStepButtonComponent {
-  @Input() step: number;
-  @Input() activeStep: number;
-  @Output() activeStepChange = new EventEmitter<number>();
-
-  clickHandler(step: number): void {
-    if (this.isPrevious()) {
-      this.activeStepChange.emit(step);
-    }
-  }
-
-  isActive(): boolean {
-    return this.step === this.activeStep;
-  }
-
-  isPrevious(): boolean {
-    return this.step < this.activeStep;
-  }
-
-  isNext(): boolean {
-    return this.step > this.activeStep;
-  }
-}
diff --git a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-step-buttons/vorgang-detail-bescheiden-step-buttons.component.html b/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-step-buttons/vorgang-detail-bescheiden-step-buttons.component.html
deleted file mode 100644
index cab555ca05bae46a71f42f86ca9ace915ad4c98e..0000000000000000000000000000000000000000
--- a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-step-buttons/vorgang-detail-bescheiden-step-buttons.component.html
+++ /dev/null
@@ -1,42 +0,0 @@
-<!--
-
-    Copyright (C) 2024 Das Land Schleswig-Holstein vertreten durch den
-    Ministerpräsidenten des Landes Schleswig-Holstein
-    Staatskanzlei
-    Abteilung Digitalisierung und zentrales IT-Management der Landesregierung
-
-    Lizenziert unter der EUPL, Version 1.2 oder - sobald
-    diese von der Europäischen Kommission genehmigt wurden -
-    Folgeversionen der EUPL ("Lizenz");
-    Sie dürfen dieses Werk ausschließlich gemäß
-    dieser Lizenz nutzen.
-    Eine Kopie der Lizenz finden Sie hier:
-
-    https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
-
-    Sofern nicht durch anwendbare Rechtsvorschriften
-    gefordert oder in schriftlicher Form vereinbart, wird
-    die unter der Lizenz verbreitete Software "so wie sie
-    ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN -
-    ausdrücklich oder stillschweigend - verbreitet.
-    Die sprachspezifischen Genehmigungen und Beschränkungen
-    unter der Lizenz sind dem Lizenztext zu entnehmen.
-
--->
-<div role="tablist">
-  <alfa-vorgang-detail-bescheiden-step-button
-    [activeStep]="activeStep"
-    (activeStepChange)="changeActiveStep($event)"
-    [step]="1"
-  ></alfa-vorgang-detail-bescheiden-step-button>
-  <alfa-vorgang-detail-bescheiden-step-button
-    [activeStep]="activeStep"
-    (activeStepChange)="changeActiveStep($event)"
-    [step]="2"
-  ></alfa-vorgang-detail-bescheiden-step-button>
-  <alfa-vorgang-detail-bescheiden-step-button
-    [activeStep]="activeStep"
-    (activeStepChange)="changeActiveStep($event)"
-    [step]="3"
-  ></alfa-vorgang-detail-bescheiden-step-button>
-</div>
diff --git a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-step-buttons/vorgang-detail-bescheiden-step-buttons.component.spec.ts b/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-step-buttons/vorgang-detail-bescheiden-step-buttons.component.spec.ts
deleted file mode 100644
index c20c00972f5b3e09dce3b3455aa2ec25e3f453e0..0000000000000000000000000000000000000000
--- a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-step-buttons/vorgang-detail-bescheiden-step-buttons.component.spec.ts
+++ /dev/null
@@ -1,85 +0,0 @@
-/*
- * Copyright (C) 2024 Das Land Schleswig-Holstein vertreten durch den
- * Ministerpräsidenten des Landes Schleswig-Holstein
- * Staatskanzlei
- * Abteilung Digitalisierung und zentrales IT-Management der Landesregierung
- *
- * Lizenziert unter der EUPL, Version 1.2 oder - sobald
- * diese von der Europäischen Kommission genehmigt wurden -
- * Folgeversionen der EUPL ("Lizenz");
- * Sie dürfen dieses Werk ausschließlich gemäß
- * dieser Lizenz nutzen.
- * Eine Kopie der Lizenz finden Sie hier:
- *
- * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
- *
- * Sofern nicht durch anwendbare Rechtsvorschriften
- * gefordert oder in schriftlicher Form vereinbart, wird
- * die unter der Lizenz verbreitete Software "so wie sie
- * ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN -
- * ausdrücklich oder stillschweigend - verbreitet.
- * Die sprachspezifischen Genehmigungen und Beschränkungen
- * unter der Lizenz sind dem Lizenztext zu entnehmen.
- */
-import { BescheidService } from '@alfa-client/bescheid-shared';
-import { Mock, mock } from '@alfa-client/test-utils';
-import { EventEmitter } from '@angular/core';
-import { ComponentFixture, TestBed } from '@angular/core/testing';
-import { MockComponent } from 'ng-mocks';
-import { BescheidenFormService } from '../../bescheiden.formservice';
-import { VorgangDetailBescheidenStepButtonComponent } from './vorgang-detail-bescheiden-step-button/vorgang-detail-bescheiden-step-button.component';
-import { VorgangDetailBescheidenStepButtonsComponent } from './vorgang-detail-bescheiden-step-buttons.component';
-
-describe('VorgangDetailBescheidenStepButtonsComponent', () => {
-  let component: VorgangDetailBescheidenStepButtonsComponent;
-  let fixture: ComponentFixture<VorgangDetailBescheidenStepButtonsComponent>;
-
-  const formService: Mock<BescheidenFormService> = mock(BescheidenFormService);
-  const bescheidService: Mock<BescheidService> = mock(BescheidService);
-
-  beforeEach(async () => {
-    await TestBed.configureTestingModule({
-      declarations: [
-        VorgangDetailBescheidenStepButtonsComponent,
-        MockComponent(VorgangDetailBescheidenStepButtonComponent),
-      ],
-      providers: [
-        {
-          provide: BescheidenFormService,
-          useValue: formService,
-        },
-        {
-          provide: BescheidService,
-          useValue: bescheidService,
-        },
-      ],
-    }).compileComponents();
-
-    fixture = TestBed.createComponent(VorgangDetailBescheidenStepButtonsComponent);
-    component = fixture.componentInstance;
-    fixture.detectChanges();
-  });
-
-  it('should create', () => {
-    expect(component).toBeTruthy();
-  });
-
-  describe('changeActiveStep', () => {
-    const step: number = 1;
-    beforeEach(() => {
-      component.activeStepChange = <any>mock(EventEmitter);
-    });
-
-    it('should emit step', () => {
-      component.changeActiveStep(step);
-
-      expect(component.activeStepChange.emit).toHaveBeenCalledWith(step);
-    });
-
-    it('should set active step in formservice', () => {
-      component.changeActiveStep(step);
-
-      expect(formService.setActiveStep).toHaveBeenCalledWith(step);
-    });
-  });
-});
diff --git a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-step-buttons/vorgang-detail-bescheiden-step-buttons.component.ts b/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-step-buttons/vorgang-detail-bescheiden-step-buttons.component.ts
deleted file mode 100644
index 41e080d47b77c6f46fed0a914131e8df9fc3f501..0000000000000000000000000000000000000000
--- a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-step-buttons/vorgang-detail-bescheiden-step-buttons.component.ts
+++ /dev/null
@@ -1,41 +0,0 @@
-/*
- * Copyright (C) 2024 Das Land Schleswig-Holstein vertreten durch den
- * Ministerpräsidenten des Landes Schleswig-Holstein
- * Staatskanzlei
- * Abteilung Digitalisierung und zentrales IT-Management der Landesregierung
- *
- * Lizenziert unter der EUPL, Version 1.2 oder - sobald
- * diese von der Europäischen Kommission genehmigt wurden -
- * Folgeversionen der EUPL ("Lizenz");
- * Sie dürfen dieses Werk ausschließlich gemäß
- * dieser Lizenz nutzen.
- * Eine Kopie der Lizenz finden Sie hier:
- *
- * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
- *
- * Sofern nicht durch anwendbare Rechtsvorschriften
- * gefordert oder in schriftlicher Form vereinbart, wird
- * die unter der Lizenz verbreitete Software "so wie sie
- * ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN -
- * ausdrücklich oder stillschweigend - verbreitet.
- * Die sprachspezifischen Genehmigungen und Beschränkungen
- * unter der Lizenz sind dem Lizenztext zu entnehmen.
- */
-import { Component, EventEmitter, Input, Output } from '@angular/core';
-import { BescheidenFormService } from '../../bescheiden.formservice';
-
-@Component({
-  selector: 'alfa-vorgang-detail-bescheiden-step-buttons',
-  templateUrl: './vorgang-detail-bescheiden-step-buttons.component.html',
-})
-export class VorgangDetailBescheidenStepButtonsComponent {
-  @Input() activeStep: number = 1;
-  @Output() activeStepChange = new EventEmitter<number>();
-
-  constructor(private formService: BescheidenFormService) {}
-
-  public changeActiveStep(step: number): void {
-    this.formService.setActiveStep(step);
-    this.activeStepChange.emit(step);
-  }
-}
diff --git a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-step-title/vorgang-detail-bescheiden-step-title.component.html b/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-step-title/vorgang-detail-bescheiden-step-title.component.html
deleted file mode 100644
index 8a82e62b23b248ab3ba1b6521b34f0b6eba6538f..0000000000000000000000000000000000000000
--- a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-step-title/vorgang-detail-bescheiden-step-title.component.html
+++ /dev/null
@@ -1,28 +0,0 @@
-<!--
-
-    Copyright (C) 2024 Das Land Schleswig-Holstein vertreten durch den
-    Ministerpräsidenten des Landes Schleswig-Holstein
-    Staatskanzlei
-    Abteilung Digitalisierung und zentrales IT-Management der Landesregierung
-
-    Lizenziert unter der EUPL, Version 1.2 oder - sobald
-    diese von der Europäischen Kommission genehmigt wurden -
-    Folgeversionen der EUPL ("Lizenz");
-    Sie dürfen dieses Werk ausschließlich gemäß
-    dieser Lizenz nutzen.
-    Eine Kopie der Lizenz finden Sie hier:
-
-    https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
-
-    Sofern nicht durch anwendbare Rechtsvorschriften
-    gefordert oder in schriftlicher Form vereinbart, wird
-    die unter der Lizenz verbreitete Software "so wie sie
-    ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN -
-    ausdrücklich oder stillschweigend - verbreitet.
-    Die sprachspezifischen Genehmigungen und Beschränkungen
-    unter der Lizenz sind dem Lizenztext zu entnehmen.
-
--->
-<div class="text-base font-bold text-primary-600" data-test-id="step-caption">
-  {{ label }}
-</div>
diff --git a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-step-title/vorgang-detail-bescheiden-step-title.component.spec.ts b/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-step-title/vorgang-detail-bescheiden-step-title.component.spec.ts
deleted file mode 100644
index 1f353186741ab865b0ce29209c74de7869b24794..0000000000000000000000000000000000000000
--- a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-step-title/vorgang-detail-bescheiden-step-title.component.spec.ts
+++ /dev/null
@@ -1,44 +0,0 @@
-/*
- * Copyright (C) 2024 Das Land Schleswig-Holstein vertreten durch den
- * Ministerpräsidenten des Landes Schleswig-Holstein
- * Staatskanzlei
- * Abteilung Digitalisierung und zentrales IT-Management der Landesregierung
- *
- * Lizenziert unter der EUPL, Version 1.2 oder - sobald
- * diese von der Europäischen Kommission genehmigt wurden -
- * Folgeversionen der EUPL ("Lizenz");
- * Sie dürfen dieses Werk ausschließlich gemäß
- * dieser Lizenz nutzen.
- * Eine Kopie der Lizenz finden Sie hier:
- *
- * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
- *
- * Sofern nicht durch anwendbare Rechtsvorschriften
- * gefordert oder in schriftlicher Form vereinbart, wird
- * die unter der Lizenz verbreitete Software "so wie sie
- * ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN -
- * ausdrücklich oder stillschweigend - verbreitet.
- * Die sprachspezifischen Genehmigungen und Beschränkungen
- * unter der Lizenz sind dem Lizenztext zu entnehmen.
- */
-import { ComponentFixture, TestBed } from '@angular/core/testing';
-import { VorgangDetailBescheidenStepTitleComponent } from './vorgang-detail-bescheiden-step-title.component';
-
-describe('VorgangDetailBescheidenStepTitleComponent', () => {
-  let component: VorgangDetailBescheidenStepTitleComponent;
-  let fixture: ComponentFixture<VorgangDetailBescheidenStepTitleComponent>;
-
-  beforeEach(async () => {
-    await TestBed.configureTestingModule({
-      declarations: [VorgangDetailBescheidenStepTitleComponent],
-    }).compileComponents();
-
-    fixture = TestBed.createComponent(VorgangDetailBescheidenStepTitleComponent);
-    component = fixture.componentInstance;
-    fixture.detectChanges();
-  });
-
-  it('should create', () => {
-    expect(component).toBeTruthy();
-  });
-});
diff --git a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-step-title/vorgang-detail-bescheiden-step-title.component.ts b/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-step-title/vorgang-detail-bescheiden-step-title.component.ts
deleted file mode 100644
index b32755681354bc47070662b8a151ab1c21c78497..0000000000000000000000000000000000000000
--- a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-step-title/vorgang-detail-bescheiden-step-title.component.ts
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * Copyright (C) 2024 Das Land Schleswig-Holstein vertreten durch den
- * Ministerpräsidenten des Landes Schleswig-Holstein
- * Staatskanzlei
- * Abteilung Digitalisierung und zentrales IT-Management der Landesregierung
- *
- * Lizenziert unter der EUPL, Version 1.2 oder - sobald
- * diese von der Europäischen Kommission genehmigt wurden -
- * Folgeversionen der EUPL ("Lizenz");
- * Sie dürfen dieses Werk ausschließlich gemäß
- * dieser Lizenz nutzen.
- * Eine Kopie der Lizenz finden Sie hier:
- *
- * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
- *
- * Sofern nicht durch anwendbare Rechtsvorschriften
- * gefordert oder in schriftlicher Form vereinbart, wird
- * die unter der Lizenz verbreitete Software "so wie sie
- * ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN -
- * ausdrücklich oder stillschweigend - verbreitet.
- * Die sprachspezifischen Genehmigungen und Beschränkungen
- * unter der Lizenz sind dem Lizenztext zu entnehmen.
- */
-import { Component, Input } from '@angular/core';
-
-@Component({
-  selector: 'alfa-vorgang-detail-bescheiden-step-title',
-  templateUrl: './vorgang-detail-bescheiden-step-title.component.html',
-})
-export class VorgangDetailBescheidenStepTitleComponent {
-  @Input()
-  public label: string;
-}
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-abbrechen-button/vorgang-detail-bescheiden-abbrechen-button.component.html 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-abbrechen-button/vorgang-detail-bescheiden-abbrechen-button.component.html
deleted file mode 100644
index 1670968d3dc1333bca788a7e6f9a3991d9c93942..0000000000000000000000000000000000000000
--- 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-abbrechen-button/vorgang-detail-bescheiden-abbrechen-button.component.html
+++ /dev/null
@@ -1,32 +0,0 @@
-<!--
-
-    Copyright (C) 2024 Das Land Schleswig-Holstein vertreten durch den
-    Ministerpräsidenten des Landes Schleswig-Holstein
-    Staatskanzlei
-    Abteilung Digitalisierung und zentrales IT-Management der Landesregierung
-
-    Lizenziert unter der EUPL, Version 1.2 oder - sobald
-    diese von der Europäischen Kommission genehmigt wurden -
-    Folgeversionen der EUPL ("Lizenz");
-    Sie dürfen dieses Werk ausschließlich gemäß
-    dieser Lizenz nutzen.
-    Eine Kopie der Lizenz finden Sie hier:
-
-    https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
-
-    Sofern nicht durch anwendbare Rechtsvorschriften
-    gefordert oder in schriftlicher Form vereinbart, wird
-    die unter der Lizenz verbreitete Software "so wie sie
-    ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN -
-    ausdrücklich oder stillschweigend - verbreitet.
-    Die sprachspezifischen Genehmigungen und Beschränkungen
-    unter der Lizenz sind dem Lizenztext zu entnehmen.
-
--->
-<button
-  (click)="clickEmitter.emit()"
-  class="absolute right-3 top-3 text-text"
-  data-test-id="close-bescheid"
->
-  <mat-icon>close</mat-icon>
-</button>
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-abbrechen-button/vorgang-detail-bescheiden-abbrechen-button.component.spec.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-abbrechen-button/vorgang-detail-bescheiden-abbrechen-button.component.spec.ts
deleted file mode 100644
index f332bc85b62e81c0cdfa31a5f1f0596c42e89a1c..0000000000000000000000000000000000000000
--- 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-abbrechen-button/vorgang-detail-bescheiden-abbrechen-button.component.spec.ts
+++ /dev/null
@@ -1,46 +0,0 @@
-/*
- * Copyright (C) 2024 Das Land Schleswig-Holstein vertreten durch den
- * Ministerpräsidenten des Landes Schleswig-Holstein
- * Staatskanzlei
- * Abteilung Digitalisierung und zentrales IT-Management der Landesregierung
- *
- * Lizenziert unter der EUPL, Version 1.2 oder - sobald
- * diese von der Europäischen Kommission genehmigt wurden -
- * Folgeversionen der EUPL ("Lizenz");
- * Sie dürfen dieses Werk ausschließlich gemäß
- * dieser Lizenz nutzen.
- * Eine Kopie der Lizenz finden Sie hier:
- *
- * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
- *
- * Sofern nicht durch anwendbare Rechtsvorschriften
- * gefordert oder in schriftlicher Form vereinbart, wird
- * die unter der Lizenz verbreitete Software "so wie sie
- * ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN -
- * ausdrücklich oder stillschweigend - verbreitet.
- * Die sprachspezifischen Genehmigungen und Beschränkungen
- * unter der Lizenz sind dem Lizenztext zu entnehmen.
- */
-import { ComponentFixture, TestBed } from '@angular/core/testing';
-import { MatIcon } from '@angular/material/icon';
-import { VorgangDetailBescheidenAbbrechenButtonComponent } from './vorgang-detail-bescheiden-abbrechen-button.component';
-
-describe('VorgangDetailBescheidenAbbrechenButtonComponent', () => {
-  let component: VorgangDetailBescheidenAbbrechenButtonComponent;
-  let fixture: ComponentFixture<VorgangDetailBescheidenAbbrechenButtonComponent>;
-
-  beforeEach(async () => {
-    await TestBed.configureTestingModule({
-      declarations: [VorgangDetailBescheidenAbbrechenButtonComponent],
-      imports: [MatIcon],
-    }).compileComponents();
-
-    fixture = TestBed.createComponent(VorgangDetailBescheidenAbbrechenButtonComponent);
-    component = fixture.componentInstance;
-    fixture.detectChanges();
-  });
-
-  it('should create', () => {
-    expect(component).toBeTruthy();
-  });
-});
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-abbrechen-button/vorgang-detail-bescheiden-abbrechen-button.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-abbrechen-button/vorgang-detail-bescheiden-abbrechen-button.component.ts
deleted file mode 100644
index aff28de42e789d535824c010ef79fcfc898e6ebc..0000000000000000000000000000000000000000
--- 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-abbrechen-button/vorgang-detail-bescheiden-abbrechen-button.component.ts
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * Copyright (C) 2024 Das Land Schleswig-Holstein vertreten durch den
- * Ministerpräsidenten des Landes Schleswig-Holstein
- * Staatskanzlei
- * Abteilung Digitalisierung und zentrales IT-Management der Landesregierung
- *
- * Lizenziert unter der EUPL, Version 1.2 oder - sobald
- * diese von der Europäischen Kommission genehmigt wurden -
- * Folgeversionen der EUPL ("Lizenz");
- * Sie dürfen dieses Werk ausschließlich gemäß
- * dieser Lizenz nutzen.
- * Eine Kopie der Lizenz finden Sie hier:
- *
- * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
- *
- * Sofern nicht durch anwendbare Rechtsvorschriften
- * gefordert oder in schriftlicher Form vereinbart, wird
- * die unter der Lizenz verbreitete Software "so wie sie
- * ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN -
- * ausdrücklich oder stillschweigend - verbreitet.
- * Die sprachspezifischen Genehmigungen und Beschränkungen
- * unter der Lizenz sind dem Lizenztext zu entnehmen.
- */
-import { Component, EventEmitter, Output } from '@angular/core';
-
-@Component({
-  selector: 'alfa-vorgang-detail-bescheiden-abbrechen-button',
-  templateUrl: './vorgang-detail-bescheiden-abbrechen-button.component.html',
-  styles: [],
-})
-export class VorgangDetailBescheidenAbbrechenButtonComponent {
-  @Output() public clickEmitter: EventEmitter<MouseEvent> = new EventEmitter<MouseEvent>();
-}
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-abbrechen-dialog/vorgang-detail-bescheiden-abbrechen-dialog.component.html 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-abbrechen-dialog/vorgang-detail-bescheiden-abbrechen-dialog.component.html
deleted file mode 100644
index b535a27820affba89cb302cd71974c9a01dc863a..0000000000000000000000000000000000000000
--- 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-abbrechen-dialog/vorgang-detail-bescheiden-abbrechen-dialog.component.html
+++ /dev/null
@@ -1,61 +0,0 @@
-<!--
-
-    Copyright (C) 2024 Das Land Schleswig-Holstein vertreten durch den
-    Ministerpräsidenten des Landes Schleswig-Holstein
-    Staatskanzlei
-    Abteilung Digitalisierung und zentrales IT-Management der Landesregierung
-
-    Lizenziert unter der EUPL, Version 1.2 oder - sobald
-    diese von der Europäischen Kommission genehmigt wurden -
-    Folgeversionen der EUPL ("Lizenz");
-    Sie dürfen dieses Werk ausschließlich gemäß
-    dieser Lizenz nutzen.
-    Eine Kopie der Lizenz finden Sie hier:
-
-    https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
-
-    Sofern nicht durch anwendbare Rechtsvorschriften
-    gefordert oder in schriftlicher Form vereinbart, wird
-    die unter der Lizenz verbreitete Software "so wie sie
-    ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN -
-    ausdrücklich oder stillschweigend - verbreitet.
-    Die sprachspezifischen Genehmigungen und Beschränkungen
-    unter der Lizenz sind dem Lizenztext zu entnehmen.
-
--->
-<div
-  class="relative m-6 max-w-2xl rounded-lg bg-modalBg p-6 shadow-xl"
-  data-test-id="bescheid-close-dialog"
->
-  <div class="flex flex-col gap-6">
-    <div>
-      <h4 class="text-lg font-medium text-primary">Bescheiderstellung abbrechen</h4>
-    </div>
-    <div class="grow">
-      <p class="text-base">
-        Soll der Bescheid-Entwurf zur späteren Bearbeitung gespeichert oder verworfen werden?
-      </p>
-    </div>
-    <div class="flex gap-4">
-      <ozgcloud-stroked-button-with-spinner
-        (click)="saveBescheidDraft()"
-        data-test-id="bescheiderstellung-abbrechen-entwurf-speichern"
-        text="Entwurf speichern"
-        type="submit"
-        icon="check"
-        [stateResource]="saveDraftInProgress$ | async"
-      >
-      </ozgcloud-stroked-button-with-spinner>
-      <ozgcloud-stroked-button-with-spinner
-        (click)="onCancel()"
-        data-test-id="bescheiderstellung-abbrechen-entwurf-verwerfen"
-        text="Verwerfen"
-        color=""
-        icon="clear"
-        type="submit"
-        [stateResource]="deleteBescheid$ | async"
-      >
-      </ozgcloud-stroked-button-with-spinner>
-    </div>
-  </div>
-</div>
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-abbrechen-dialog/vorgang-detail-bescheiden-abbrechen-dialog.component.spec.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-abbrechen-dialog/vorgang-detail-bescheiden-abbrechen-dialog.component.spec.ts
deleted file mode 100644
index 8f5036fdc866a121e136dd39fc3fc9559019d77a..0000000000000000000000000000000000000000
--- 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-abbrechen-dialog/vorgang-detail-bescheiden-abbrechen-dialog.component.spec.ts
+++ /dev/null
@@ -1,164 +0,0 @@
-/*
- * Copyright (C) 2024 Das Land Schleswig-Holstein vertreten durch den
- * Ministerpräsidenten des Landes Schleswig-Holstein
- * Staatskanzlei
- * Abteilung Digitalisierung und zentrales IT-Management der Landesregierung
- *
- * Lizenziert unter der EUPL, Version 1.2 oder - sobald
- * diese von der Europäischen Kommission genehmigt wurden -
- * Folgeversionen der EUPL ("Lizenz");
- * Sie dürfen dieses Werk ausschließlich gemäß
- * dieser Lizenz nutzen.
- * Eine Kopie der Lizenz finden Sie hier:
- *
- * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
- *
- * Sofern nicht durch anwendbare Rechtsvorschriften
- * gefordert oder in schriftlicher Form vereinbart, wird
- * die unter der Lizenz verbreitete Software "so wie sie
- * ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN -
- * ausdrücklich oder stillschweigend - verbreitet.
- * Die sprachspezifischen Genehmigungen und Beschränkungen
- * unter der Lizenz sind dem Lizenztext zu entnehmen.
- */
-import { BescheidService } from '@alfa-client/bescheid-shared';
-import { CommandLinkRel, CommandResource } from '@alfa-client/command-shared';
-import { StateResource, createStateResource } from '@alfa-client/tech-shared';
-import { mock } from '@alfa-client/test-utils';
-import { OzgcloudDialogService, OzgcloudStrokedButtonWithSpinnerComponent } from '@alfa-client/ui';
-import { VorgangWithEingangLinkRel, VorgangWithEingangResource } from '@alfa-client/vorgang-shared';
-import { ComponentFixture, TestBed, fakeAsync, tick } from '@angular/core/testing';
-import { MatIcon } from '@angular/material/icon';
-import {
-  createCommandResource,
-  createCommandStateResource,
-} from 'libs/command-shared/test/command';
-import { createVorgangWithEingangResource } from 'libs/vorgang-shared/test/vorgang';
-import { MockComponent } from 'ng-mocks';
-import { of } from 'rxjs';
-import { BescheidenFormService } from '../../../bescheiden.formservice';
-import { VorgangDetailBescheidenAbbrechenDialogComponent } from './vorgang-detail-bescheiden-abbrechen-dialog.component';
-
-describe('VorgangDetailBescheidenAbbrechenDialogComponent', () => {
-  let component: VorgangDetailBescheidenAbbrechenDialogComponent;
-  let fixture: ComponentFixture<VorgangDetailBescheidenAbbrechenDialogComponent>;
-
-  const bescheidService = mock(BescheidService);
-  const ozgcloudDialogService = mock(OzgcloudDialogService);
-  const formService = mock(BescheidenFormService);
-
-  beforeEach(async () => {
-    await TestBed.configureTestingModule({
-      declarations: [
-        VorgangDetailBescheidenAbbrechenDialogComponent,
-        MockComponent(OzgcloudStrokedButtonWithSpinnerComponent),
-        MockComponent(MatIcon),
-      ],
-      providers: [
-        {
-          provide: BescheidService,
-          useValue: bescheidService,
-        },
-        {
-          provide: OzgcloudDialogService,
-          useValue: ozgcloudDialogService,
-        },
-        {
-          provide: BescheidenFormService,
-          useValue: formService,
-        },
-      ],
-    }).compileComponents();
-
-    fixture = TestBed.createComponent(VorgangDetailBescheidenAbbrechenDialogComponent);
-    component = fixture.componentInstance;
-    fixture.detectChanges();
-  });
-
-  it('should create', () => {
-    expect(component).toBeTruthy();
-  });
-
-  describe('saveBescheidDraft', () => {
-    beforeEach(() => {
-      const submitCommand: StateResource<CommandResource> = createCommandStateResource([
-        CommandLinkRel.EFFECTED_RESOURCE,
-      ]);
-      formService.submitDraft = jest.fn().mockReturnValue(of(submitCommand));
-    });
-
-    it('should call formService.submit', () => {
-      component.saveBescheidDraft();
-
-      expect(formService.submitDraft).toHaveBeenCalled();
-    });
-
-    describe('on successfully done command', () => {
-      it('should call ozgcloudDialogService.closeAll', fakeAsync(() => {
-        component.saveBescheidDraft();
-        component.saveDraftInProgress$.subscribe();
-        tick();
-
-        expect(ozgcloudDialogService.closeAll).toHaveBeenCalled();
-      }));
-
-      it('should call bescheid service to refresh list', fakeAsync(() => {
-        component.saveBescheidDraft();
-        component.saveDraftInProgress$.subscribe();
-        tick();
-
-        expect(bescheidService.refreshList).toHaveBeenCalled();
-      }));
-    });
-  });
-
-  describe('onCancel', () => {
-    it('should call deleteBescheidDraft if Vorgang has bescheidDraft', () => {
-      bescheidService.existsBescheidDraft.mockReturnValue(true);
-      component.deleteBescheidDraft = jest.fn();
-
-      component.onCancel();
-
-      expect(component.deleteBescheidDraft).toHaveBeenCalled();
-    });
-
-    it('should call ozgcloudDialogService.closeAll if Vorgang has no bescheidDraft', () => {
-      bescheidService.existsBescheidDraft.mockReturnValue(false);
-
-      component.onCancel();
-
-      expect(ozgcloudDialogService.closeAll).toHaveBeenCalled();
-    });
-  });
-
-  describe('deleteBescheidDraft', () => {
-    beforeEach(() => {
-      const vorgangWithBescheid: VorgangWithEingangResource = createVorgangWithEingangResource([
-        VorgangWithEingangLinkRel.BESCHEID_DRAFT,
-      ]);
-      formService.getVorgangWithEingangResource = jest.fn().mockReturnValue(vorgangWithBescheid);
-
-      const commandResource: CommandResource = createCommandResource([
-        CommandLinkRel.EFFECTED_RESOURCE,
-      ]);
-      const commandStateResource: StateResource<CommandResource> =
-        createStateResource(commandResource);
-
-      bescheidService.bescheidVerwerfen = jest.fn().mockReturnValue(of(commandStateResource));
-    });
-
-    it('should call bescheidService.bescheidVerwerfen', fakeAsync(() => {
-      component.deleteBescheidDraft();
-      component.deleteBescheid$.subscribe();
-      tick();
-
-      expect(bescheidService.bescheidVerwerfen).toHaveBeenCalled();
-    }));
-
-    it('should call ozgcloudDialogService.closeAll', () => {
-      component.deleteBescheidDraft();
-
-      expect(ozgcloudDialogService.closeAll).toHaveBeenCalled();
-    });
-  });
-});
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-abbrechen-dialog/vorgang-detail-bescheiden-abbrechen-dialog.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-abbrechen-dialog/vorgang-detail-bescheiden-abbrechen-dialog.component.ts
deleted file mode 100644
index fb480448c1ac1fa88a18afe16ee02e950a637e58..0000000000000000000000000000000000000000
--- 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-abbrechen-dialog/vorgang-detail-bescheiden-abbrechen-dialog.component.ts
+++ /dev/null
@@ -1,70 +0,0 @@
-/*
- * Copyright (C) 2024 Das Land Schleswig-Holstein vertreten durch den
- * Ministerpräsidenten des Landes Schleswig-Holstein
- * Staatskanzlei
- * Abteilung Digitalisierung und zentrales IT-Management der Landesregierung
- *
- * Lizenziert unter der EUPL, Version 1.2 oder - sobald
- * diese von der Europäischen Kommission genehmigt wurden -
- * Folgeversionen der EUPL ("Lizenz");
- * Sie dürfen dieses Werk ausschließlich gemäß
- * dieser Lizenz nutzen.
- * Eine Kopie der Lizenz finden Sie hier:
- *
- * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
- *
- * Sofern nicht durch anwendbare Rechtsvorschriften
- * gefordert oder in schriftlicher Form vereinbart, wird
- * die unter der Lizenz verbreitete Software "so wie sie
- * ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN -
- * ausdrücklich oder stillschweigend - verbreitet.
- * Die sprachspezifischen Genehmigungen und Beschränkungen
- * unter der Lizenz sind dem Lizenztext zu entnehmen.
- */
-import { BescheidService } from '@alfa-client/bescheid-shared';
-import { CommandResource, tapOnCommandSuccessfullyDone } from '@alfa-client/command-shared';
-import { StateResource } from '@alfa-client/tech-shared';
-import { OzgcloudDialogService } from '@alfa-client/ui';
-import { Component } from '@angular/core';
-import { Observable } from 'rxjs';
-import { BescheidenFormService } from '../../../bescheiden.formservice';
-
-@Component({
-  selector: 'alfa-vorgang-detail-bescheiden-abbrechen-dialog',
-  templateUrl: './vorgang-detail-bescheiden-abbrechen-dialog.component.html',
-})
-export class VorgangDetailBescheidenAbbrechenDialogComponent {
-  saveDraftInProgress$: Observable<StateResource<CommandResource>>;
-  deleteBescheid$: Observable<StateResource<CommandResource>>;
-
-  constructor(
-    private readonly bescheidService: BescheidService,
-    private readonly ozgcloudDialogService: OzgcloudDialogService,
-    private readonly formService: BescheidenFormService,
-  ) {}
-
-  public saveBescheidDraft() {
-    this.saveDraftInProgress$ = this.formService.submitDraft().pipe(
-      tapOnCommandSuccessfullyDone(() => {
-        this.ozgcloudDialogService.closeAll();
-        this.bescheidService.refreshList();
-      }),
-    );
-  }
-
-  public onCancel() {
-    if (this.bescheidService.existsBescheidDraft()) {
-      this.deleteBescheidDraft();
-    } else {
-      this.ozgcloudDialogService.closeAll();
-    }
-  }
-
-  deleteBescheidDraft(): void {
-    this.deleteBescheid$ = this.bescheidService.bescheidVerwerfen().pipe(
-      tapOnCommandSuccessfullyDone(() => {
-        this.ozgcloudDialogService.closeAll();
-      }),
-    );
-  }
-}
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-antrag-bescheiden/vorgang-detail-bescheiden-antrag-bescheiden.component.html 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-antrag-bescheiden/vorgang-detail-bescheiden-antrag-bescheiden.component.html
deleted file mode 100644
index 9f568635f1454de105701a1a31e25adda21d4e48..0000000000000000000000000000000000000000
--- 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-antrag-bescheiden/vorgang-detail-bescheiden-antrag-bescheiden.component.html
+++ /dev/null
@@ -1,54 +0,0 @@
-<!--
-
-    Copyright (C) 2024 Das Land Schleswig-Holstein vertreten durch den
-    Ministerpräsidenten des Landes Schleswig-Holstein
-    Staatskanzlei
-    Abteilung Digitalisierung und zentrales IT-Management der Landesregierung
-
-    Lizenziert unter der EUPL, Version 1.2 oder - sobald
-    diese von der Europäischen Kommission genehmigt wurden -
-    Folgeversionen der EUPL ("Lizenz");
-    Sie dürfen dieses Werk ausschließlich gemäß
-    dieser Lizenz nutzen.
-    Eine Kopie der Lizenz finden Sie hier:
-
-    https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
-
-    Sofern nicht durch anwendbare Rechtsvorschriften
-    gefordert oder in schriftlicher Form vereinbart, wird
-    die unter der Lizenz verbreitete Software "so wie sie
-    ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN -
-    ausdrücklich oder stillschweigend - verbreitet.
-    Die sprachspezifischen Genehmigungen und Beschränkungen
-    unter der Lizenz sind dem Lizenztext zu entnehmen.
-
--->
-<div [formGroup]="formService.form" role="radiogroup" aria-label="Bescheidstatus">
-  <div class="my-10 flex max-w-2xl gap-8">
-    <ods-radio-button-card
-      label="bewilligt"
-      [name]="formServiceClass.FIELD_BEWILLIGT"
-      value="true"
-      data-test-id="button-bewilligt"
-      variant="bescheid_bewilligt"
-      ><ods-stamp-icon size="large"></ods-stamp-icon>
-    </ods-radio-button-card>
-    <ods-radio-button-card
-      label="abgelehnt"
-      [name]="formServiceClass.FIELD_BEWILLIGT"
-      value="false"
-      data-test-id="button-abgelehnt"
-      variant="bescheid_abgelehnt"
-      ><ods-close-icon size="large" class="fill-abgelehnt"></ods-close-icon>
-    </ods-radio-button-card>
-  </div>
-  <div class="flex w-full">
-    <ozgcloud-date-editor
-      [formControlName]="formServiceClass.FIELD_BESCHIEDEN_AM"
-      label="am"
-      aria-label="Bescheiddatum"
-      [required]="true"
-    >
-    </ozgcloud-date-editor>
-  </div>
-</div>
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-antrag-bescheiden/vorgang-detail-bescheiden-antrag-bescheiden.component.spec.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-antrag-bescheiden/vorgang-detail-bescheiden-antrag-bescheiden.component.spec.ts
deleted file mode 100644
index f476bc0b4a2a39aae84dfd41335ac0949456d628..0000000000000000000000000000000000000000
--- 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-antrag-bescheiden/vorgang-detail-bescheiden-antrag-bescheiden.component.spec.ts
+++ /dev/null
@@ -1,73 +0,0 @@
-/*
- * Copyright (C) 2024 Das Land Schleswig-Holstein vertreten durch den
- * Ministerpräsidenten des Landes Schleswig-Holstein
- * Staatskanzlei
- * Abteilung Digitalisierung und zentrales IT-Management der Landesregierung
- *
- * Lizenziert unter der EUPL, Version 1.2 oder - sobald
- * diese von der Europäischen Kommission genehmigt wurden -
- * Folgeversionen der EUPL ("Lizenz");
- * Sie dürfen dieses Werk ausschließlich gemäß
- * dieser Lizenz nutzen.
- * Eine Kopie der Lizenz finden Sie hier:
- *
- * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
- *
- * Sofern nicht durch anwendbare Rechtsvorschriften
- * gefordert oder in schriftlicher Form vereinbart, wird
- * die unter der Lizenz verbreitete Software "so wie sie
- * ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN -
- * ausdrücklich oder stillschweigend - verbreitet.
- * Die sprachspezifischen Genehmigungen und Beschränkungen
- * unter der Lizenz sind dem Lizenztext zu entnehmen.
- */
-import { BescheidService } from '@alfa-client/bescheid-shared';
-import { Mock, mock, useFromMock } from '@alfa-client/test-utils';
-import { DateEditorComponent } from '@alfa-client/ui';
-import { ComponentFixture, TestBed } from '@angular/core/testing';
-import { ReactiveFormsModule, UntypedFormBuilder } from '@angular/forms';
-import { CloseIconComponent, RadioButtonCardComponent, StampIconComponent } from '@ods/system';
-import { MockComponent } from 'ng-mocks';
-import { BescheidenFormService } from '../../../bescheiden.formservice';
-import { VorgangDetailBescheidenAntragBescheidenComponent } from './vorgang-detail-bescheiden-antrag-bescheiden.component';
-
-describe('VorgangDetailBescheidenAntragBescheidenComponent', () => {
-  let component: VorgangDetailBescheidenAntragBescheidenComponent;
-  let fixture: ComponentFixture<VorgangDetailBescheidenAntragBescheidenComponent>;
-
-  let bescheidService: Mock<BescheidService>;
-  let formService: BescheidenFormService;
-
-  beforeEach(async () => {
-    bescheidService = mock(BescheidService);
-    formService = new BescheidenFormService(new UntypedFormBuilder(), useFromMock(bescheidService));
-    await TestBed.configureTestingModule({
-      declarations: [
-        VorgangDetailBescheidenAntragBescheidenComponent,
-        MockComponent(RadioButtonCardComponent),
-        MockComponent(DateEditorComponent),
-        MockComponent(StampIconComponent),
-        MockComponent(CloseIconComponent),
-      ],
-      imports: [ReactiveFormsModule],
-      providers: [
-        {
-          provide: BescheidenFormService,
-          useValue: formService,
-        },
-        {
-          provide: BescheidService,
-          useValue: bescheidService,
-        },
-      ],
-    }).compileComponents();
-
-    fixture = TestBed.createComponent(VorgangDetailBescheidenAntragBescheidenComponent);
-    component = fixture.componentInstance;
-    fixture.detectChanges();
-  });
-
-  it('should create', () => {
-    expect(component).toBeTruthy();
-  });
-});
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-antrag-bescheiden/vorgang-detail-bescheiden-antrag-bescheiden.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-antrag-bescheiden/vorgang-detail-bescheiden-antrag-bescheiden.component.ts
deleted file mode 100644
index 0e8a3cb8ecaccc3d7d427ab77d549ce0566cb0a3..0000000000000000000000000000000000000000
--- 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-antrag-bescheiden/vorgang-detail-bescheiden-antrag-bescheiden.component.ts
+++ /dev/null
@@ -1,35 +0,0 @@
-/*
- * Copyright (C) 2024 Das Land Schleswig-Holstein vertreten durch den
- * Ministerpräsidenten des Landes Schleswig-Holstein
- * Staatskanzlei
- * Abteilung Digitalisierung und zentrales IT-Management der Landesregierung
- *
- * Lizenziert unter der EUPL, Version 1.2 oder - sobald
- * diese von der Europäischen Kommission genehmigt wurden -
- * Folgeversionen der EUPL ("Lizenz");
- * Sie dürfen dieses Werk ausschließlich gemäß
- * dieser Lizenz nutzen.
- * Eine Kopie der Lizenz finden Sie hier:
- *
- * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
- *
- * Sofern nicht durch anwendbare Rechtsvorschriften
- * gefordert oder in schriftlicher Form vereinbart, wird
- * die unter der Lizenz verbreitete Software "so wie sie
- * ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN -
- * ausdrücklich oder stillschweigend - verbreitet.
- * Die sprachspezifischen Genehmigungen und Beschränkungen
- * unter der Lizenz sind dem Lizenztext zu entnehmen.
- */
-import { Component } from '@angular/core';
-import { BescheidenFormService } from '../../../bescheiden.formservice';
-
-@Component({
-  selector: 'alfa-vorgang-detail-bescheiden-antrag-bescheiden',
-  templateUrl: './vorgang-detail-bescheiden-antrag-bescheiden.component.html',
-})
-export class VorgangDetailBescheidenAntragBescheidenComponent {
-  protected readonly formServiceClass = BescheidenFormService;
-
-  constructor(public formService: BescheidenFormService) {}
-}
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-bescheid-versenden/vorgang-detail-bescheiden-bescheid-versenden.component.html 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-bescheid-versenden/vorgang-detail-bescheiden-bescheid-versenden.component.html
deleted file mode 100644
index db7e7a2afbbe80ca4fef1198e35794870fc6f4a6..0000000000000000000000000000000000000000
--- 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-bescheid-versenden/vorgang-detail-bescheiden-bescheid-versenden.component.html
+++ /dev/null
@@ -1,53 +0,0 @@
-<!--
-
-    Copyright (C) 2024 Das Land Schleswig-Holstein vertreten durch den
-    Ministerpräsidenten des Landes Schleswig-Holstein
-    Staatskanzlei
-    Abteilung Digitalisierung und zentrales IT-Management der Landesregierung
-
-    Lizenziert unter der EUPL, Version 1.2 oder - sobald
-    diese von der Europäischen Kommission genehmigt wurden -
-    Folgeversionen der EUPL ("Lizenz");
-    Sie dürfen dieses Werk ausschließlich gemäß
-    dieser Lizenz nutzen.
-    Eine Kopie der Lizenz finden Sie hier:
-
-    https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
-
-    Sofern nicht durch anwendbare Rechtsvorschriften
-    gefordert oder in schriftlicher Form vereinbart, wird
-    die unter der Lizenz verbreitete Software "so wie sie
-    ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN -
-    ausdrücklich oder stillschweigend - verbreitet.
-    Die sprachspezifischen Genehmigungen und Beschränkungen
-    unter der Lizenz sind dem Lizenztext zu entnehmen.
-
--->
-<div
-  [formGroup]="formService.form"
-  class="mt-5 flex w-full max-w-72 flex-col gap-4"
-  role="radiogroup"
-  aria-level="Bescheid versenden"
->
-  <ng-container *ngIf="bescheidResource$ | async | hasLink: bescheidLinkRel.BESCHEIDEN_UND_SENDEN">
-    <ods-radio-button-card
-      label="Als neue Nachricht an den Antragsteller senden"
-      [value]="sendBy.NACHRICHT"
-      [name]="formServiceClass.FIELD_SEND_BY"
-      variant="bescheid_save"
-      [fullWidthText]="true"
-      data-test-id="send-to-antragsteller-button"
-      ><ods-send-icon size="large"></ods-send-icon
-    ></ods-radio-button-card>
-    <ods-radio-button-card
-      *ngIf="bescheidResource$ | async | hasLink: bescheidLinkRel.BESCHEIDEN"
-      label="Nur speichern"
-      [value]="sendBy.MANUAL"
-      [name]="formServiceClass.FIELD_SEND_BY"
-      variant="bescheid_save"
-      [fullWidthText]="true"
-      data-test-id="save-button"
-      ><ods-save-icon size="large"></ods-save-icon
-    ></ods-radio-button-card>
-  </ng-container>
-</div>
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-bescheid-versenden/vorgang-detail-bescheiden-bescheid-versenden.component.spec.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-bescheid-versenden/vorgang-detail-bescheiden-bescheid-versenden.component.spec.ts
deleted file mode 100644
index cb8eeb6c18d18c4b49d98fe13a7025c05d61b923..0000000000000000000000000000000000000000
--- 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-bescheid-versenden/vorgang-detail-bescheiden-bescheid-versenden.component.spec.ts
+++ /dev/null
@@ -1,188 +0,0 @@
-/*
- * Copyright (C) 2024 Das Land Schleswig-Holstein vertreten durch den
- * Ministerpräsidenten des Landes Schleswig-Holstein
- * Staatskanzlei
- * Abteilung Digitalisierung und zentrales IT-Management der Landesregierung
- *
- * Lizenziert unter der EUPL, Version 1.2 oder - sobald
- * diese von der Europäischen Kommission genehmigt wurden -
- * Folgeversionen der EUPL ("Lizenz");
- * Sie dürfen dieses Werk ausschließlich gemäß
- * dieser Lizenz nutzen.
- * Eine Kopie der Lizenz finden Sie hier:
- *
- * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
- *
- * Sofern nicht durch anwendbare Rechtsvorschriften
- * gefordert oder in schriftlicher Form vereinbart, wird
- * die unter der Lizenz verbreitete Software "so wie sie
- * ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN -
- * ausdrücklich oder stillschweigend - verbreitet.
- * Die sprachspezifischen Genehmigungen und Beschränkungen
- * unter der Lizenz sind dem Lizenztext zu entnehmen.
- */
-import {
-  BescheidLinkRel,
-  BescheidResource,
-  BescheidSendBy,
-  BescheidService,
-} from '@alfa-client/bescheid-shared';
-import { HasLinkPipe, createStateResource } from '@alfa-client/tech-shared';
-import { Mock, getElementFromFixture, mock, useFromMock } from '@alfa-client/test-utils';
-import { ComponentFixture, TestBed } from '@angular/core/testing';
-import { ReactiveFormsModule, UntypedFormBuilder } from '@angular/forms';
-import { MatIconTestingModule } from '@angular/material/icon/testing';
-import { RadioButtonCardComponent, SaveIconComponent, SendIconComponent } from '@ods/system';
-import { MockComponent } from 'ng-mocks';
-import { EMPTY, of } from 'rxjs';
-import { createBescheidResource } from '../../../../../../../../bescheid-shared/src/test/bescheid';
-import { getDataTestIdOf } from '../../../../../../../../tech-shared/test/data-test';
-import { BescheidenFormService } from '../../../bescheiden.formservice';
-import { VorgangDetailBescheidenBescheidVersendenComponent } from './vorgang-detail-bescheiden-bescheid-versenden.component';
-
-describe('VorgangDetailBescheidenBescheidVersendenComponent', () => {
-  let component: VorgangDetailBescheidenBescheidVersendenComponent;
-  let fixture: ComponentFixture<VorgangDetailBescheidenBescheidVersendenComponent>;
-
-  let bescheidService: Mock<BescheidService>;
-  let formService: BescheidenFormService;
-
-  const sendToAntragstellerButtonTestId: string = getDataTestIdOf('send-to-antragsteller-button');
-  const saveAndSendButtonTestId: string = getDataTestIdOf('save-button');
-
-  beforeEach(async () => {
-    bescheidService = mock(BescheidService);
-    formService = new BescheidenFormService(new UntypedFormBuilder(), useFromMock(bescheidService));
-
-    await TestBed.configureTestingModule({
-      imports: [ReactiveFormsModule, MatIconTestingModule],
-      declarations: [
-        VorgangDetailBescheidenBescheidVersendenComponent,
-        HasLinkPipe,
-        MockComponent(RadioButtonCardComponent),
-        MockComponent(SendIconComponent),
-        MockComponent(SaveIconComponent),
-      ],
-      providers: [
-        {
-          provide: BescheidenFormService,
-          useValue: formService,
-        },
-        {
-          provide: BescheidService,
-          useValue: bescheidService,
-        },
-      ],
-    }).compileComponents();
-
-    fixture = TestBed.createComponent(VorgangDetailBescheidenBescheidVersendenComponent);
-    component = fixture.componentInstance;
-    bescheidService.getBescheidDraft.mockReturnValue(EMPTY);
-    fixture.detectChanges();
-  });
-
-  it('should create', () => {
-    expect(component).toBeTruthy();
-  });
-
-  describe('render', () => {
-    it('should render send button', () => {
-      bescheidService.getBescheidDraft.mockReturnValue(
-        of(createStateResource(createBescheidResource([BescheidLinkRel.BESCHEIDEN_UND_SENDEN]))),
-      );
-
-      component.ngOnInit();
-      fixture.detectChanges();
-
-      const element = getElementFromFixture(fixture, sendToAntragstellerButtonTestId);
-      expect(element).toBeInstanceOf(HTMLElement);
-    });
-
-    it('should not render send button', () => {
-      bescheidService.getBescheidDraft.mockReturnValue(
-        of(createStateResource(createBescheidResource())),
-      );
-
-      component.ngOnInit();
-      fixture.detectChanges();
-
-      const element = getElementFromFixture(fixture, sendToAntragstellerButtonTestId);
-      expect(element).not.toBeInstanceOf(HTMLElement);
-    });
-
-    it('should render save button', () => {
-      bescheidService.getBescheidDraft.mockReturnValue(
-        of(
-          createStateResource(
-            createBescheidResource([
-              BescheidLinkRel.BESCHEIDEN,
-              BescheidLinkRel.BESCHEIDEN_UND_SENDEN,
-            ]),
-          ),
-        ),
-      );
-
-      component.ngOnInit();
-      fixture.detectChanges();
-
-      const element = getElementFromFixture(fixture, saveAndSendButtonTestId);
-      expect(element).toBeInstanceOf(HTMLElement);
-    });
-
-    it('should not render save button if send link missing', () => {
-      bescheidService.getBescheidDraft.mockReturnValue(
-        of(createStateResource(createBescheidResource([BescheidLinkRel.BESCHEIDEN]))),
-      );
-
-      component.ngOnInit();
-      fixture.detectChanges();
-
-      const element = getElementFromFixture(fixture, saveAndSendButtonTestId);
-      expect(element).not.toBeInstanceOf(HTMLElement);
-    });
-
-    it('should not render save button if link is missing', () => {
-      bescheidService.getBescheidDraft.mockReturnValue(
-        of(createStateResource(createBescheidResource([BescheidLinkRel.BESCHEIDEN_UND_SENDEN]))),
-      );
-
-      component.ngOnInit();
-      fixture.detectChanges();
-
-      const element = getElementFromFixture(fixture, saveAndSendButtonTestId);
-      expect(element).not.toBeInstanceOf(HTMLElement);
-    });
-  });
-
-  describe('ngOnInit', () => {
-    const bescheidResource: BescheidResource = createBescheidResource();
-
-    it('should set sendBy in form', () => {
-      component.initSendBy = jest.fn();
-      bescheidService.getBescheidDraft.mockReturnValue(of(createStateResource(bescheidResource)));
-
-      component.ngOnInit();
-      component.bescheidResource$.subscribe();
-
-      expect(component.initSendBy).toHaveBeenCalledWith(bescheidResource);
-    });
-  });
-
-  describe('initSendBy', () => {
-    it('should call form service', () => {
-      formService.setSendBy = jest.fn();
-
-      component.initSendBy(createBescheidResource());
-
-      expect(formService.setSendBy).toHaveBeenCalledWith(BescheidSendBy.MANUAL);
-    });
-
-    it('should not call form service', () => {
-      formService.setSendBy = jest.fn();
-
-      component.initSendBy(createBescheidResource([BescheidLinkRel.BESCHEIDEN_UND_SENDEN]));
-
-      expect(formService.setSendBy).not.toHaveBeenCalled();
-    });
-  });
-});
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-bescheid-versenden/vorgang-detail-bescheiden-bescheid-versenden.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-bescheid-versenden/vorgang-detail-bescheiden-bescheid-versenden.component.ts
deleted file mode 100644
index 4ffba257e5599d896ac6b90db7ae92c409eb6481..0000000000000000000000000000000000000000
--- 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-bescheid-versenden/vorgang-detail-bescheiden-bescheid-versenden.component.ts
+++ /dev/null
@@ -1,65 +0,0 @@
-/*
- * Copyright (C) 2024 Das Land Schleswig-Holstein vertreten durch den
- * Ministerpräsidenten des Landes Schleswig-Holstein
- * Staatskanzlei
- * Abteilung Digitalisierung und zentrales IT-Management der Landesregierung
- *
- * Lizenziert unter der EUPL, Version 1.2 oder - sobald
- * diese von der Europäischen Kommission genehmigt wurden -
- * Folgeversionen der EUPL ("Lizenz");
- * Sie dürfen dieses Werk ausschließlich gemäß
- * dieser Lizenz nutzen.
- * Eine Kopie der Lizenz finden Sie hier:
- *
- * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
- *
- * Sofern nicht durch anwendbare Rechtsvorschriften
- * gefordert oder in schriftlicher Form vereinbart, wird
- * die unter der Lizenz verbreitete Software "so wie sie
- * ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN -
- * ausdrücklich oder stillschweigend - verbreitet.
- * Die sprachspezifischen Genehmigungen und Beschränkungen
- * unter der Lizenz sind dem Lizenztext zu entnehmen.
- */
-import {
-  BescheidLinkRel,
-  BescheidResource,
-  BescheidSendBy,
-  BescheidService,
-} from '@alfa-client/bescheid-shared';
-import { StateResource, isLoaded, notHasLink } from '@alfa-client/tech-shared';
-import { Component, OnInit } from '@angular/core';
-import { Observable, filter, map, tap } from 'rxjs';
-import { BescheidenFormService } from '../../../bescheiden.formservice';
-
-@Component({
-  selector: 'alfa-vorgang-detail-bescheiden-bescheid-versenden',
-  templateUrl: './vorgang-detail-bescheiden-bescheid-versenden.component.html',
-})
-export class VorgangDetailBescheidenBescheidVersendenComponent implements OnInit {
-  public bescheidResource$: Observable<BescheidResource>;
-
-  public readonly formServiceClass = BescheidenFormService;
-  public readonly sendBy = BescheidSendBy;
-
-  public bescheidLinkRel = BescheidLinkRel;
-
-  constructor(
-    public formService: BescheidenFormService,
-    private readonly bescheidService: BescheidService,
-  ) {}
-
-  ngOnInit(): void {
-    this.bescheidResource$ = this.bescheidService.getBescheidDraft().pipe(
-      filter(isLoaded),
-      map((stateResource: StateResource<BescheidResource>) => stateResource.resource),
-      tap((bescheidResource: BescheidResource) => this.initSendBy(bescheidResource)),
-    );
-  }
-
-  initSendBy(bescheidResource: BescheidResource): void {
-    if (notHasLink(bescheidResource, BescheidLinkRel.BESCHEIDEN_UND_SENDEN)) {
-      this.formService.setSendBy(BescheidSendBy.MANUAL);
-    }
-  }
-}
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-dokumente-hinzufuegen/vorgang-detail-bescheiden-attachment-hochladen/vorgang-detail-bescheiden-attachment-hochladen.component.html 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-dokumente-hinzufuegen/vorgang-detail-bescheiden-attachment-hochladen/vorgang-detail-bescheiden-attachment-hochladen.component.html
deleted file mode 100644
index 7dd1b32d5d178b5f907f7964ebb22734ad876cbe..0000000000000000000000000000000000000000
--- 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-dokumente-hinzufuegen/vorgang-detail-bescheiden-attachment-hochladen/vorgang-detail-bescheiden-attachment-hochladen.component.html
+++ /dev/null
@@ -1,36 +0,0 @@
-<!--
-
-    Copyright (C) 2024 Das Land Schleswig-Holstein vertreten durch den
-    Ministerpräsidenten des Landes Schleswig-Holstein
-    Staatskanzlei
-    Abteilung Digitalisierung und zentrales IT-Management der Landesregierung
-
-    Lizenziert unter der EUPL, Version 1.2 oder - sobald
-    diese von der Europäischen Kommission genehmigt wurden -
-    Folgeversionen der EUPL ("Lizenz");
-    Sie dürfen dieses Werk ausschließlich gemäß
-    dieser Lizenz nutzen.
-    Eine Kopie der Lizenz finden Sie hier:
-
-    https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
-
-    Sofern nicht durch anwendbare Rechtsvorschriften
-    gefordert oder in schriftlicher Form vereinbart, wird
-    die unter der Lizenz verbreitete Software "so wie sie
-    ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN -
-    ausdrücklich oder stillschweigend - verbreitet.
-    Die sprachspezifischen Genehmigungen und Beschränkungen
-    unter der Lizenz sind dem Lizenztext zu entnehmen.
-
--->
-<div [formGroup]="formService.form" class="mt-4">
-  <ods-file-upload-editor
-    [attr.data-test-id]="'vorgang-bescheiden-upload-editor' + formServiceClass.FIELD_ATTACHMENTS"
-    [parentFormArrayName]="formServiceClass.FIELD_ATTACHMENTS"
-    [uploadInProgress]="uploadInProgress$ | async"
-    (newFile)="uploadFile($event)"
-    [fileLinkList]="getFileLinkList()"
-    label="Anhang hochladen"
-  >
-  </ods-file-upload-editor>
-</div>
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-dokumente-hinzufuegen/vorgang-detail-bescheiden-attachment-hochladen/vorgang-detail-bescheiden-attachment-hochladen.component.spec.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-dokumente-hinzufuegen/vorgang-detail-bescheiden-attachment-hochladen/vorgang-detail-bescheiden-attachment-hochladen.component.spec.ts
deleted file mode 100644
index d4cecc3e41a00d51b537c0d189ec87e855a78f09..0000000000000000000000000000000000000000
--- 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-dokumente-hinzufuegen/vorgang-detail-bescheiden-attachment-hochladen/vorgang-detail-bescheiden-attachment-hochladen.component.spec.ts
+++ /dev/null
@@ -1,226 +0,0 @@
-/*
- * Copyright (C) 2024 Das Land Schleswig-Holstein vertreten durch den
- * Ministerpräsidenten des Landes Schleswig-Holstein
- * Staatskanzlei
- * Abteilung Digitalisierung und zentrales IT-Management der Landesregierung
- *
- * Lizenziert unter der EUPL, Version 1.2 oder - sobald
- * diese von der Europäischen Kommission genehmigt wurden -
- * Folgeversionen der EUPL ("Lizenz");
- * Sie dürfen dieses Werk ausschließlich gemäß
- * dieser Lizenz nutzen.
- * Eine Kopie der Lizenz finden Sie hier:
- *
- * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
- *
- * Sofern nicht durch anwendbare Rechtsvorschriften
- * gefordert oder in schriftlicher Form vereinbart, wird
- * die unter der Lizenz verbreitete Software "so wie sie
- * ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN -
- * ausdrücklich oder stillschweigend - verbreitet.
- * Die sprachspezifischen Genehmigungen und Beschränkungen
- * unter der Lizenz sind dem Lizenztext zu entnehmen.
- */
-import { BescheidResource, BescheidService } from '@alfa-client/bescheid-shared';
-import { BinaryFileAttachmentContainerComponent } from '@alfa-client/binary-file';
-import { BinaryFileResource } from '@alfa-client/binary-file-shared';
-import { StateResource, createStateResource } from '@alfa-client/tech-shared';
-import { Mock, mock, useFromMock } from '@alfa-client/test-utils';
-import { ComponentFixture, TestBed } from '@angular/core/testing';
-import { ReactiveFormsModule, UntypedFormBuilder } from '@angular/forms';
-import { FileUploadEditorComponent } from '@ods/component';
-import { MockComponent } from 'ng-mocks';
-import { EMPTY, Observable, Subscription, of } from 'rxjs';
-import { createBescheidStateResource } from '../../../../../../../../../bescheid-shared/src/test/bescheid';
-import { createBinaryFileResource } from '../../../../../../../../../binary-file-shared/test/binary-file';
-import { createFile } from '../../../../../../../../../tech-shared/test/file';
-import { singleColdCompleted } from '../../../../../../../../../tech-shared/test/marbles';
-import { BescheidenFormService } from '../../../../bescheiden.formservice';
-import { VorgangDetailBescheidenAttachmentHochladenComponent } from './vorgang-detail-bescheiden-attachment-hochladen.component';
-
-describe('VorgangDetailBescheidenDokumentHochladenComponent', () => {
-  let component: VorgangDetailBescheidenAttachmentHochladenComponent;
-  let fixture: ComponentFixture<VorgangDetailBescheidenAttachmentHochladenComponent>;
-  const selfLink: string = 'self';
-
-  let bescheidService: Mock<BescheidService>;
-  let formService: BescheidenFormService;
-
-  beforeEach(async () => {
-    bescheidService = mock(BescheidService);
-    bescheidService.getAttachments.mockReturnValue(EMPTY);
-
-    formService = new BescheidenFormService(new UntypedFormBuilder(), useFromMock(bescheidService));
-
-    await TestBed.configureTestingModule({
-      declarations: [
-        VorgangDetailBescheidenAttachmentHochladenComponent,
-        MockComponent(BinaryFileAttachmentContainerComponent),
-        MockComponent(FileUploadEditorComponent),
-      ],
-      imports: [ReactiveFormsModule],
-      providers: [
-        {
-          provide: BescheidenFormService,
-          useValue: formService,
-        },
-        {
-          provide: BescheidService,
-          useValue: bescheidService,
-        },
-      ],
-    }).compileComponents();
-
-    fixture = TestBed.createComponent(VorgangDetailBescheidenAttachmentHochladenComponent);
-    component = fixture.componentInstance;
-    fixture.detectChanges();
-  });
-
-  it('should create', () => {
-    expect(component).toBeTruthy();
-  });
-
-  describe('ngOnInit', () => {
-    let loadExistingAttachments: jest.Mock;
-    let subscribeToFileDeletion: jest.Mock;
-
-    beforeEach(() => {
-      loadExistingAttachments = component.loadExistingAttachments = jest.fn();
-      subscribeToFileDeletion = component.subscribeToFileDeletion = jest.fn();
-    });
-
-    it('should load existing attachments', () => {
-      component.ngOnInit();
-
-      expect(loadExistingAttachments).toHaveBeenCalled();
-    });
-
-    it('should subscribe to file deletion', () => {
-      component.ngOnInit();
-
-      expect(subscribeToFileDeletion).toHaveBeenCalled();
-    });
-  });
-
-  describe('ngOnDestroy', () => {
-    it('should unsubscribe from file deletion', () => {
-      const subscription = mock(Subscription);
-      const getDeleteFile = (formService.getFileDelete = jest.fn());
-      const observable = mock(Observable);
-      getDeleteFile.mockReturnValue(observable);
-      observable.subscribe.mockReturnValue(subscription);
-      component.ngOnInit();
-
-      component.ngOnDestroy();
-
-      expect(subscription.unsubscribe).toHaveBeenCalled();
-    });
-  });
-
-  describe('loadExistingAttachments', () => {
-    let binaryFileResource: BinaryFileResource;
-
-    beforeEach(() => {
-      binaryFileResource = createBinaryFileResource();
-      bescheidService.getAttachments.mockReturnValue(of([binaryFileResource]));
-    });
-
-    it('should get attachments', () => {
-      component.loadExistingAttachments();
-
-      expect(bescheidService.getAttachments).toHaveBeenCalled();
-    });
-
-    it('should add attachments to fileList', () => {
-      component.loadExistingAttachments();
-
-      expect(component.fileList).toEqual([binaryFileResource]);
-    });
-  });
-
-  describe('subscribeToFileDeletion', () => {
-    let getFileDelete: jest.Mock;
-    let getFileDeleteObservable: Mock<Observable<BinaryFileResource>>;
-
-    beforeEach(() => {
-      getFileDeleteObservable = mock(Observable);
-      getFileDelete = formService.getFileDelete = jest
-        .fn()
-        .mockReturnValue(getFileDeleteObservable);
-    });
-
-    it('should subscribe to file deletion', () => {
-      component.subscribeToFileDeletion();
-
-      expect(getFileDelete).toHaveBeenCalled();
-    });
-  });
-
-  describe('deleteFile', () => {
-    let binaryFileResource: BinaryFileResource;
-
-    beforeEach(() => {
-      binaryFileResource = createBinaryFileResource();
-    });
-
-    it('should remove file from list', () => {
-      component.fileList = [binaryFileResource];
-
-      component.deleteFile(binaryFileResource);
-
-      expect(component.fileList).toEqual([]);
-    });
-  });
-
-  describe('getFileLinkList', () => {
-    it('should return url list', () => {
-      const binaryFileResource = createBinaryFileResource([selfLink]);
-      component.fileList = [binaryFileResource];
-
-      const uriList = component.getFileLinkList();
-
-      expect(uriList[0]).toEqual(binaryFileResource._links.self.href);
-    });
-  });
-
-  describe('uploadFile', () => {
-    const bescheidDraftStateResource: StateResource<BescheidResource> =
-      createBescheidStateResource();
-    const file: File = createFile();
-    const binaryFileStateResource: StateResource<BinaryFileResource> = createStateResource(
-      createBinaryFileResource(),
-    );
-
-    beforeEach(() => {
-      bescheidService.uploadAttachment.mockReturnValue(of(binaryFileStateResource));
-      component.bescheidDraftStateResource = bescheidDraftStateResource;
-    });
-
-    it('should upload attachment', () => {
-      component.uploadFile(file);
-
-      component.uploadInProgress$.subscribe();
-
-      expect(bescheidService.uploadAttachment).toHaveBeenCalledWith(
-        bescheidDraftStateResource.resource,
-        file,
-      );
-    });
-
-    it('should add to file list', () => {
-      component.uploadFile(file);
-
-      component.uploadInProgress$.subscribe();
-
-      expect(component.fileList).toEqual([binaryFileStateResource.resource]);
-    });
-
-    it('should emit', () => {
-      component.uploadFile(file);
-
-      expect(component.uploadInProgress$).toBeObservable(
-        singleColdCompleted(binaryFileStateResource),
-      );
-    });
-  });
-});
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-dokumente-hinzufuegen/vorgang-detail-bescheiden-attachment-hochladen/vorgang-detail-bescheiden-attachment-hochladen.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-dokumente-hinzufuegen/vorgang-detail-bescheiden-attachment-hochladen/vorgang-detail-bescheiden-attachment-hochladen.component.ts
deleted file mode 100644
index 6c5fe5d18d04c4c3101987d76b7e68d14f869807..0000000000000000000000000000000000000000
--- 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-dokumente-hinzufuegen/vorgang-detail-bescheiden-attachment-hochladen/vorgang-detail-bescheiden-attachment-hochladen.component.ts
+++ /dev/null
@@ -1,100 +0,0 @@
-/*
- * Copyright (C) 2024 Das Land Schleswig-Holstein vertreten durch den
- * Ministerpräsidenten des Landes Schleswig-Holstein
- * Staatskanzlei
- * Abteilung Digitalisierung und zentrales IT-Management der Landesregierung
- *
- * Lizenziert unter der EUPL, Version 1.2 oder - sobald
- * diese von der Europäischen Kommission genehmigt wurden -
- * Folgeversionen der EUPL ("Lizenz");
- * Sie dürfen dieses Werk ausschließlich gemäß
- * dieser Lizenz nutzen.
- * Eine Kopie der Lizenz finden Sie hier:
- *
- * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
- *
- * Sofern nicht durch anwendbare Rechtsvorschriften
- * gefordert oder in schriftlicher Form vereinbart, wird
- * die unter der Lizenz verbreitete Software "so wie sie
- * ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN -
- * ausdrücklich oder stillschweigend - verbreitet.
- * Die sprachspezifischen Genehmigungen und Beschränkungen
- * unter der Lizenz sind dem Lizenztext zu entnehmen.
- */
-import { BescheidResource, BescheidService } from '@alfa-client/bescheid-shared';
-import { BinaryFileResource } from '@alfa-client/binary-file-shared';
-import {
-  StateResource,
-  createEmptyStateResource,
-  doOnValidStateResource,
-  isNotNil,
-} from '@alfa-client/tech-shared';
-import { Component, Input, OnDestroy, OnInit } from '@angular/core';
-import { getUrl } from '@ngxp/rest';
-import { Observable, Subscription, first, of, tap } from 'rxjs';
-import { BescheidenFormService } from '../../../../bescheiden.formservice';
-
-@Component({
-  selector: 'alfa-vorgang-detail-bescheiden-attachment-hochladen',
-  templateUrl: './vorgang-detail-bescheiden-attachment-hochladen.component.html',
-  styles: [],
-})
-export class VorgangDetailBescheidenAttachmentHochladenComponent implements OnInit, OnDestroy {
-  @Input() bescheidDraftStateResource: StateResource<BescheidResource>;
-
-  uploadInProgress$: Observable<StateResource<BinaryFileResource>>;
-  fileList: BinaryFileResource[] = [];
-  private deleteFileSubscription: Subscription;
-
-  readonly formServiceClass = BescheidenFormService;
-
-  constructor(
-    public readonly formService: BescheidenFormService,
-    private readonly bescheidService: BescheidService,
-  ) {
-    this.uploadInProgress$ = of(createEmptyStateResource<BinaryFileResource>());
-  }
-
-  ngOnInit(): void {
-    this.loadExistingAttachments();
-    this.subscribeToFileDeletion();
-  }
-
-  ngOnDestroy(): void {
-    if (isNotNil(this.deleteFileSubscription)) this.deleteFileSubscription.unsubscribe();
-  }
-
-  loadExistingAttachments(): void {
-    this.bescheidService
-      .getAttachments()
-      .pipe(first())
-      .subscribe((attachments) => (this.fileList = attachments));
-  }
-
-  subscribeToFileDeletion(): void {
-    this.deleteFileSubscription = this.formService
-      .getFileDelete()
-      .subscribe((binaryFileResource) => this.deleteFile(binaryFileResource));
-  }
-
-  deleteFile(binaryFileResource: BinaryFileResource) {
-    this.fileList = this.fileList.filter((file) => getUrl(file) !== getUrl(binaryFileResource));
-  }
-
-  getFileLinkList(): string[] {
-    return this.fileList.map((fileResource: BinaryFileResource) => getUrl(fileResource));
-  }
-
-  public uploadFile(file: File): void {
-    this.uploadInProgress$ = this.bescheidService
-      .uploadAttachment(this.bescheidDraftStateResource.resource, file)
-      .pipe(
-        tap((stateResource: StateResource<BinaryFileResource>) =>
-          doOnValidStateResource(
-            stateResource,
-            () => (this.fileList = [...this.fileList, stateResource.resource]),
-          ),
-        ),
-      );
-  }
-}
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-dokumente-hinzufuegen/vorgang-detail-bescheiden-bescheid-automatisch-erstellen/vorgang-detail-bescheiden-bescheid-automatisch-erstellen.component.html 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-dokumente-hinzufuegen/vorgang-detail-bescheiden-bescheid-automatisch-erstellen/vorgang-detail-bescheiden-bescheid-automatisch-erstellen.component.html
deleted file mode 100644
index 93076b339f608ddd394e212c68c60457d40d82b1..0000000000000000000000000000000000000000
--- 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-dokumente-hinzufuegen/vorgang-detail-bescheiden-bescheid-automatisch-erstellen/vorgang-detail-bescheiden-bescheid-automatisch-erstellen.component.html
+++ /dev/null
@@ -1,40 +0,0 @@
-<!--
-
-    Copyright (C) 2024 Das Land Schleswig-Holstein vertreten durch den
-    Ministerpräsidenten des Landes Schleswig-Holstein
-    Staatskanzlei
-    Abteilung Digitalisierung und zentrales IT-Management der Landesregierung
-
-    Lizenziert unter der EUPL, Version 1.2 oder - sobald
-    diese von der Europäischen Kommission genehmigt wurden -
-    Folgeversionen der EUPL ("Lizenz");
-    Sie dürfen dieses Werk ausschließlich gemäß
-    dieser Lizenz nutzen.
-    Eine Kopie der Lizenz finden Sie hier:
-
-    https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
-
-    Sofern nicht durch anwendbare Rechtsvorschriften
-    gefordert oder in schriftlicher Form vereinbart, wird
-    die unter der Lizenz verbreitete Software "so wie sie
-    ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN -
-    ausdrücklich oder stillschweigend - verbreitet.
-    Die sprachspezifischen Genehmigungen und Beschränkungen
-    unter der Lizenz sind dem Lizenztext zu entnehmen.
-
--->
-<ng-container *ngIf="bescheidDraftStateResource.resource as bescheidDraft">
-  <div class="mt-4">
-    <ods-button-card
-      *ngIf="bescheidDraft | hasLink: bescheidLinkRel.CREATE_DOCUMENT"
-      class="w-72"
-      [isLoading]="(createBescheidDocumentInProgress$ | async).loading"
-      (click)="createBescheidDocument()"
-      data-test-id="create-bescheid-document-button"
-      text="Bescheiddokument"
-      subText="automatisch erstellen"
-    >
-      <ods-bescheid-generate-icon icon />
-    </ods-button-card>
-  </div>
-</ng-container>
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-dokumente-hinzufuegen/vorgang-detail-bescheiden-bescheid-automatisch-erstellen/vorgang-detail-bescheiden-bescheid-automatisch-erstellen.component.spec.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-dokumente-hinzufuegen/vorgang-detail-bescheiden-bescheid-automatisch-erstellen/vorgang-detail-bescheiden-bescheid-automatisch-erstellen.component.spec.ts
deleted file mode 100644
index 28bf0e8b5ba83f7889afb81cb80bb5a7e1e8d320..0000000000000000000000000000000000000000
--- 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-dokumente-hinzufuegen/vorgang-detail-bescheiden-bescheid-automatisch-erstellen/vorgang-detail-bescheiden-bescheid-automatisch-erstellen.component.spec.ts
+++ /dev/null
@@ -1,160 +0,0 @@
-/*
- * Copyright (C) 2024 Das Land Schleswig-Holstein vertreten durch den
- * Ministerpräsidenten des Landes Schleswig-Holstein
- * Staatskanzlei
- * Abteilung Digitalisierung und zentrales IT-Management der Landesregierung
- *
- * Lizenziert unter der EUPL, Version 1.2 oder - sobald
- * diese von der Europäischen Kommission genehmigt wurden -
- * Folgeversionen der EUPL ("Lizenz");
- * Sie dürfen dieses Werk ausschließlich gemäß
- * dieser Lizenz nutzen.
- * Eine Kopie der Lizenz finden Sie hier:
- *
- * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
- *
- * Sofern nicht durch anwendbare Rechtsvorschriften
- * gefordert oder in schriftlicher Form vereinbart, wird
- * die unter der Lizenz verbreitete Software "so wie sie
- * ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN -
- * ausdrücklich oder stillschweigend - verbreitet.
- * Die sprachspezifischen Genehmigungen und Beschränkungen
- * unter der Lizenz sind dem Lizenztext zu entnehmen.
- */
-import { BescheidLinkRel, BescheidService } from '@alfa-client/bescheid-shared';
-import { CommandLinkRel } from '@alfa-client/command-shared';
-import {
-  createEmptyStateResource,
-  createStateResource,
-  HasLinkPipe,
-} from '@alfa-client/tech-shared';
-import {
-  dispatchEventFromFixture,
-  existsAsHtmlElement,
-  Mock,
-  mock,
-  notExistsAsHtmlElement,
-} from '@alfa-client/test-utils';
-import { OzgcloudButtonWithSpinnerComponent } from '@alfa-client/ui';
-import { ComponentFixture, TestBed } from '@angular/core/testing';
-import {
-  BescheidGenerateIconComponent,
-  ButtonCardComponent,
-  SpinnerIconComponent,
-} from '@ods/system';
-import { createBescheidResource } from 'libs/bescheid-shared/src/test/bescheid';
-import { getDataTestIdOf } from 'libs/tech-shared/test/data-test';
-import { MockComponent } from 'ng-mocks';
-import { of } from 'rxjs';
-import {
-  createCommandErrorStateResource,
-  createCommandStateResource,
-} from '../../../../../../../../../command-shared/test/command';
-import { BescheidenFormService } from '../../../../bescheiden.formservice';
-import { VorgangDetailBescheidenBescheidAutomatischErstellenComponent } from './vorgang-detail-bescheiden-bescheid-automatisch-erstellen.component';
-
-describe('VorgangDetailBescheidenBescheidAutomatischErstellenComponent', () => {
-  let component: VorgangDetailBescheidenBescheidAutomatischErstellenComponent;
-  let fixture: ComponentFixture<VorgangDetailBescheidenBescheidAutomatischErstellenComponent>;
-
-  const createBescheidDocumentButton: string = getDataTestIdOf('create-bescheid-document-button');
-
-  let bescheidService: Mock<BescheidService>;
-  let formService: Mock<BescheidenFormService>;
-
-  beforeEach(async () => {
-    bescheidService = mock(BescheidService);
-    formService = mock(BescheidenFormService);
-
-    await TestBed.configureTestingModule({
-      imports: [HasLinkPipe],
-      declarations: [
-        VorgangDetailBescheidenBescheidAutomatischErstellenComponent,
-        MockComponent(OzgcloudButtonWithSpinnerComponent),
-        MockComponent(ButtonCardComponent),
-        MockComponent(SpinnerIconComponent),
-        MockComponent(BescheidGenerateIconComponent),
-      ],
-      providers: [
-        {
-          provide: BescheidService,
-          useValue: bescheidService,
-        },
-        {
-          provide: BescheidenFormService,
-          useValue: formService,
-        },
-      ],
-    }).compileComponents();
-
-    fixture = TestBed.createComponent(VorgangDetailBescheidenBescheidAutomatischErstellenComponent);
-    component = fixture.componentInstance;
-    component.bescheidDraftStateResource = createStateResource(createBescheidResource());
-    fixture.detectChanges();
-  });
-
-  it('should create', () => {
-    expect(component).toBeTruthy();
-  });
-
-  describe('create bescheid document button', () => {
-    beforeEach(() => {
-      component.bescheidDraftStateResource = createStateResource(
-        createBescheidResource([BescheidLinkRel.CREATE_DOCUMENT]),
-      );
-
-      fixture.detectChanges();
-    });
-    it('should call bescheid service on click', () => {
-      dispatchEventFromFixture(fixture, createBescheidDocumentButton, 'click');
-
-      expect(bescheidService.createBescheidDocument).toHaveBeenCalled();
-    });
-
-    it('should be hidden if link is NOT present', () => {
-      component.bescheidDraftStateResource = createStateResource(createBescheidResource());
-
-      fixture.detectChanges();
-
-      notExistsAsHtmlElement(fixture, createBescheidDocumentButton);
-    });
-
-    it('should be visible if link is present', () => {
-      component.bescheidDraftStateResource = createStateResource(
-        createBescheidResource([BescheidLinkRel.CREATE_DOCUMENT]),
-      );
-      fixture.detectChanges();
-
-      existsAsHtmlElement(fixture, createBescheidDocumentButton);
-    });
-
-    it('should clear nachricht', () => {
-      bescheidService.createBescheidDocument.mockReturnValue(
-        of(createCommandStateResource([CommandLinkRel.EFFECTED_RESOURCE])),
-      );
-
-      component.createBescheidDocument();
-
-      component.createBescheidDocumentInProgress$.subscribe();
-      expect(formService.clearNachricht).toHaveBeenCalled();
-    });
-
-    it('should not clear nachricht when loading', () => {
-      bescheidService.createBescheidDocument.mockReturnValue(of(createEmptyStateResource(true)));
-
-      component.createBescheidDocument();
-
-      component.createBescheidDocumentInProgress$.subscribe();
-      expect(formService.clearNachricht).not.toHaveBeenCalled();
-    });
-
-    it('should not clear nachricht when error', () => {
-      bescheidService.createBescheidDocument.mockReturnValue(of(createCommandErrorStateResource()));
-
-      component.createBescheidDocument();
-
-      component.createBescheidDocumentInProgress$.subscribe();
-      expect(formService.clearNachricht).not.toHaveBeenCalled();
-    });
-  });
-});
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-dokumente-hinzufuegen/vorgang-detail-bescheiden-bescheid-automatisch-erstellen/vorgang-detail-bescheiden-bescheid-automatisch-erstellen.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-dokumente-hinzufuegen/vorgang-detail-bescheiden-bescheid-automatisch-erstellen/vorgang-detail-bescheiden-bescheid-automatisch-erstellen.component.ts
deleted file mode 100644
index 47ceb4fb1feeadc93da73eec593d1c69424a4ca1..0000000000000000000000000000000000000000
--- 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-dokumente-hinzufuegen/vorgang-detail-bescheiden-bescheid-automatisch-erstellen/vorgang-detail-bescheiden-bescheid-automatisch-erstellen.component.ts
+++ /dev/null
@@ -1,58 +0,0 @@
-/*
- * Copyright (C) 2024 Das Land Schleswig-Holstein vertreten durch den
- * Ministerpräsidenten des Landes Schleswig-Holstein
- * Staatskanzlei
- * Abteilung Digitalisierung und zentrales IT-Management der Landesregierung
- *
- * Lizenziert unter der EUPL, Version 1.2 oder - sobald
- * diese von der Europäischen Kommission genehmigt wurden -
- * Folgeversionen der EUPL ("Lizenz");
- * Sie dürfen dieses Werk ausschließlich gemäß
- * dieser Lizenz nutzen.
- * Eine Kopie der Lizenz finden Sie hier:
- *
- * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
- *
- * Sofern nicht durch anwendbare Rechtsvorschriften
- * gefordert oder in schriftlicher Form vereinbart, wird
- * die unter der Lizenz verbreitete Software "so wie sie
- * ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN -
- * ausdrücklich oder stillschweigend - verbreitet.
- * Die sprachspezifischen Genehmigungen und Beschränkungen
- * unter der Lizenz sind dem Lizenztext zu entnehmen.
- */
-import { BescheidLinkRel, BescheidResource, BescheidService } from '@alfa-client/bescheid-shared';
-import { CommandResource, isSuccessfulDone } from '@alfa-client/command-shared';
-import { createEmptyStateResource, StateResource } from '@alfa-client/tech-shared';
-import { Component, Input } from '@angular/core';
-import { Observable, of, tap } from 'rxjs';
-import { BescheidenFormService } from '../../../../bescheiden.formservice';
-
-@Component({
-  selector: 'alfa-vorgang-detail-bescheiden-bescheid-automatisch-erstellen',
-  templateUrl: './vorgang-detail-bescheiden-bescheid-automatisch-erstellen.component.html',
-})
-export class VorgangDetailBescheidenBescheidAutomatischErstellenComponent {
-  @Input() public bescheidDraftStateResource: StateResource<BescheidResource>;
-
-  public createBescheidDocumentInProgress$: Observable<StateResource<CommandResource>> = of(
-    createEmptyStateResource<CommandResource>(),
-  );
-
-  public readonly bescheidLinkRel = BescheidLinkRel;
-
-  constructor(
-    private readonly bescheidService: BescheidService,
-    private readonly formService: BescheidenFormService,
-  ) {}
-
-  public createBescheidDocument(): void {
-    this.createBescheidDocumentInProgress$ = this.bescheidService.createBescheidDocument().pipe(
-      tap((commandStateResource: StateResource<CommandResource>) => {
-        if (isSuccessfulDone(commandStateResource.resource)) {
-          this.formService.clearNachricht();
-        }
-      }),
-    );
-  }
-}
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-dokumente-hinzufuegen/vorgang-detail-bescheiden-dokument-hochladen/vorgang-detail-bescheiden-dokument-hochladen.component.html 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-dokumente-hinzufuegen/vorgang-detail-bescheiden-dokument-hochladen/vorgang-detail-bescheiden-dokument-hochladen.component.html
deleted file mode 100644
index cf032e3993238d0351d91cda1818be9dc7f0cb98..0000000000000000000000000000000000000000
--- 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-dokumente-hinzufuegen/vorgang-detail-bescheiden-dokument-hochladen/vorgang-detail-bescheiden-dokument-hochladen.component.html
+++ /dev/null
@@ -1,39 +0,0 @@
-<!--
-
-    Copyright (C) 2024 Das Land Schleswig-Holstein vertreten durch den
-    Ministerpräsidenten des Landes Schleswig-Holstein
-    Staatskanzlei
-    Abteilung Digitalisierung und zentrales IT-Management der Landesregierung
-
-    Lizenziert unter der EUPL, Version 1.2 oder - sobald
-    diese von der Europäischen Kommission genehmigt wurden -
-    Folgeversionen der EUPL ("Lizenz");
-    Sie dürfen dieses Werk ausschließlich gemäß
-    dieser Lizenz nutzen.
-    Eine Kopie der Lizenz finden Sie hier:
-
-    https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
-
-    Sofern nicht durch anwendbare Rechtsvorschriften
-    gefordert oder in schriftlicher Form vereinbart, wird
-    die unter der Lizenz verbreitete Software "so wie sie
-    ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN -
-    ausdrücklich oder stillschweigend - verbreitet.
-    Die sprachspezifischen Genehmigungen und Beschränkungen
-    unter der Lizenz sind dem Lizenztext zu entnehmen.
-
--->
-<div [formGroup]="formService.form">
-  <ods-single-file-upload-editor
-    *ngIf="bescheidDraftStateResource.resource | hasLink: bescheidLinkRel.UPLOAD_BESCHEID_FILE"
-    [uploadInProgress]="(uploadDocumentFileInProgress$ | async).loading"
-    class="w-72"
-    attr.data-test-id="vorgang-bescheiden-upload-editor"
-    [formControlName]="formServiceClass.FIELD_BESCHEID_DOCUMENT"
-    (newFile)="uploadFile($event)"
-  >
-    <ods-bescheid-upload-icon icon></ods-bescheid-upload-icon>
-    <ods-spinner-icon spinner size="extra-large"></ods-spinner-icon>
-    <div text class="text-center">Bescheiddokument hochladen</div>
-  </ods-single-file-upload-editor>
-</div>
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-dokumente-hinzufuegen/vorgang-detail-bescheiden-dokument-hochladen/vorgang-detail-bescheiden-dokument-hochladen.component.spec.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-dokumente-hinzufuegen/vorgang-detail-bescheiden-dokument-hochladen/vorgang-detail-bescheiden-dokument-hochladen.component.spec.ts
deleted file mode 100644
index 5b089dac014abc5a0da5991e964ba167b50edcf9..0000000000000000000000000000000000000000
--- 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-dokumente-hinzufuegen/vorgang-detail-bescheiden-dokument-hochladen/vorgang-detail-bescheiden-dokument-hochladen.component.spec.ts
+++ /dev/null
@@ -1,125 +0,0 @@
-/*
- * Copyright (C) 2024 Das Land Schleswig-Holstein vertreten durch den
- * Ministerpräsidenten des Landes Schleswig-Holstein
- * Staatskanzlei
- * Abteilung Digitalisierung und zentrales IT-Management der Landesregierung
- *
- * Lizenziert unter der EUPL, Version 1.2 oder - sobald
- * diese von der Europäischen Kommission genehmigt wurden -
- * Folgeversionen der EUPL ("Lizenz");
- * Sie dürfen dieses Werk ausschließlich gemäß
- * dieser Lizenz nutzen.
- * Eine Kopie der Lizenz finden Sie hier:
- *
- * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
- *
- * Sofern nicht durch anwendbare Rechtsvorschriften
- * gefordert oder in schriftlicher Form vereinbart, wird
- * die unter der Lizenz verbreitete Software "so wie sie
- * ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN -
- * ausdrücklich oder stillschweigend - verbreitet.
- * Die sprachspezifischen Genehmigungen und Beschränkungen
- * unter der Lizenz sind dem Lizenztext zu entnehmen.
- */
-import { BescheidService } from '@alfa-client/bescheid-shared';
-import { HasLinkPipe } from '@alfa-client/tech-shared';
-import { Mock, mock, useFromMock } from '@alfa-client/test-utils';
-import { ComponentFixture, TestBed } from '@angular/core/testing';
-import { ReactiveFormsModule, UntypedFormBuilder } from '@angular/forms';
-import { MatIcon } from '@angular/material/icon';
-import { faker } from '@faker-js/faker';
-import { ResourceUri } from '@ngxp/rest';
-import { SingleFileUploadEditorComponent } from '@ods/component';
-import { SpinnerIconComponent } from '@ods/system';
-import { MockComponent, MockPipe } from 'ng-mocks';
-import { of } from 'rxjs';
-import { createBescheidStateResource } from '../../../../../../../../../bescheid-shared/src/test/bescheid';
-import { createFile } from '../../../../../../../../../tech-shared/test/file';
-import { BescheidenFormService } from '../../../../bescheiden.formservice';
-import { VorgangDetailBescheidenDokumentHochladenComponent } from './vorgang-detail-bescheiden-dokument-hochladen.component';
-
-describe('VorgangDetailBescheidenDokumentHochladenComponent', () => {
-  let component: VorgangDetailBescheidenDokumentHochladenComponent;
-  let fixture: ComponentFixture<VorgangDetailBescheidenDokumentHochladenComponent>;
-
-  let bescheidService: Mock<BescheidService>;
-  let formService: BescheidenFormService;
-
-  beforeEach(async () => {
-    bescheidService = mock(BescheidService);
-    bescheidService.getDocumentUri.mockReturnValue(of(null));
-
-    formService = new BescheidenFormService(new UntypedFormBuilder(), useFromMock(bescheidService));
-
-    await TestBed.configureTestingModule({
-      declarations: [
-        VorgangDetailBescheidenDokumentHochladenComponent,
-        MatIcon,
-        MockPipe(HasLinkPipe),
-        MockComponent(SingleFileUploadEditorComponent),
-        MockComponent(SpinnerIconComponent),
-      ],
-      imports: [ReactiveFormsModule],
-      providers: [
-        {
-          provide: BescheidenFormService,
-          useValue: formService,
-        },
-        {
-          provide: BescheidService,
-          useValue: bescheidService,
-        },
-      ],
-    }).compileComponents();
-
-    fixture = TestBed.createComponent(VorgangDetailBescheidenDokumentHochladenComponent);
-    component = fixture.componentInstance;
-    component.bescheidDraftStateResource = createBescheidStateResource();
-    fixture.detectChanges();
-  });
-
-  it('should create', () => {
-    expect(component).toBeTruthy();
-  });
-
-  describe('ngOnInit', () => {
-    it('should handle document uri changes', () => {
-      bescheidService.getDocumentUri.mockReturnValue(of('DocumentUriDummy'));
-      component.handleDocumentUriChanges = jest.fn();
-
-      component.ngOnInit();
-
-      expect(component.handleDocumentUriChanges).toHaveBeenCalledWith('DocumentUriDummy');
-    });
-  });
-
-  describe('handle document uri changes', () => {
-    it('should update bescheid document file in form service', () => {
-      const documentUri: ResourceUri = faker.person.firstName();
-      formService.updateBescheidDocumentFile = jest.fn();
-
-      component.handleDocumentUriChanges(documentUri);
-
-      expect(formService.updateBescheidDocumentFile).toHaveBeenCalledWith(documentUri);
-    });
-    it('should clear bescheid document file in form service', () => {
-      formService.clearBescheidDocumentFile = jest.fn();
-
-      component.handleDocumentUriChanges(null);
-
-      expect(formService.clearBescheidDocumentFile).toHaveBeenCalled();
-    });
-  });
-
-  describe('upload file', () => {
-    it('should call service to upload bescheid document', () => {
-      const bescheidStateResource = createBescheidStateResource();
-      const file = createFile();
-      component.bescheidDraftStateResource = bescheidStateResource;
-
-      component.uploadFile(file);
-
-      expect(bescheidService.uploadBescheidDocument).toHaveBeenCalledWith(bescheidStateResource.resource, file);
-    });
-  });
-});
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-dokumente-hinzufuegen/vorgang-detail-bescheiden-dokument-hochladen/vorgang-detail-bescheiden-dokument-hochladen.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-dokumente-hinzufuegen/vorgang-detail-bescheiden-dokument-hochladen/vorgang-detail-bescheiden-dokument-hochladen.component.ts
deleted file mode 100644
index ebf303e9cc6208ac2fb0908cd9c1c52bf8f693d1..0000000000000000000000000000000000000000
--- 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-dokumente-hinzufuegen/vorgang-detail-bescheiden-dokument-hochladen/vorgang-detail-bescheiden-dokument-hochladen.component.ts
+++ /dev/null
@@ -1,82 +0,0 @@
-/*
- * Copyright (C) 2024 Das Land Schleswig-Holstein vertreten durch den
- * Ministerpräsidenten des Landes Schleswig-Holstein
- * Staatskanzlei
- * Abteilung Digitalisierung und zentrales IT-Management der Landesregierung
- *
- * Lizenziert unter der EUPL, Version 1.2 oder - sobald
- * diese von der Europäischen Kommission genehmigt wurden -
- * Folgeversionen der EUPL ("Lizenz");
- * Sie dürfen dieses Werk ausschließlich gemäß
- * dieser Lizenz nutzen.
- * Eine Kopie der Lizenz finden Sie hier:
- *
- * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
- *
- * Sofern nicht durch anwendbare Rechtsvorschriften
- * gefordert oder in schriftlicher Form vereinbart, wird
- * die unter der Lizenz verbreitete Software "so wie sie
- * ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN -
- * ausdrücklich oder stillschweigend - verbreitet.
- * Die sprachspezifischen Genehmigungen und Beschränkungen
- * unter der Lizenz sind dem Lizenztext zu entnehmen.
- */
-import {
-  BescheidLinkRel,
-  BescheidResource,
-  BescheidService,
-  UploadFileInProgress,
-} from '@alfa-client/bescheid-shared';
-import { isNotNil, StateResource } from '@alfa-client/tech-shared';
-import { Component, Input, OnDestroy, OnInit } from '@angular/core';
-import { ResourceUri } from '@ngxp/rest';
-import { isNull } from 'lodash-es';
-import { Observable, of, Subscription } from 'rxjs';
-import { BescheidenFormService } from '../../../../bescheiden.formservice';
-
-@Component({
-  selector: 'alfa-vorgang-detail-bescheiden-dokument-hochladen',
-  templateUrl: './vorgang-detail-bescheiden-dokument-hochladen.component.html',
-  styles: [],
-})
-export class VorgangDetailBescheidenDokumentHochladenComponent implements OnInit, OnDestroy {
-  @Input() bescheidDraftStateResource: StateResource<BescheidResource>;
-
-  public uploadDocumentFileInProgress$: Observable<UploadFileInProgress> = of({ loading: false });
-
-  public readonly formServiceClass = BescheidenFormService;
-  public readonly bescheidLinkRel = BescheidLinkRel;
-
-  private documentUriChangeSubscription: Subscription;
-
-  constructor(
-    public readonly formService: BescheidenFormService,
-    private bescheidService: BescheidService,
-  ) {}
-
-  ngOnInit(): void {
-    this.documentUriChangeSubscription = this.bescheidService
-      .getDocumentUri()
-      .subscribe((documentUri) => this.handleDocumentUriChanges(documentUri));
-  }
-
-  handleDocumentUriChanges(uri: ResourceUri): void {
-    if (isNull(uri)) {
-      this.formService.clearBescheidDocumentFile();
-    } else {
-      this.formService.updateBescheidDocumentFile(uri);
-    }
-  }
-
-  public uploadFile(file: File): void {
-    this.uploadDocumentFileInProgress$ = this.bescheidService.uploadBescheidDocument(
-      this.bescheidDraftStateResource.resource,
-      file,
-    );
-  }
-
-  ngOnDestroy(): void {
-    if (isNotNil(this.documentUriChangeSubscription))
-      this.documentUriChangeSubscription.unsubscribe();
-  }
-}
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-dokumente-hinzufuegen/vorgang-detail-bescheiden-dokumente-hinzufuegen.component.html 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-dokumente-hinzufuegen/vorgang-detail-bescheiden-dokumente-hinzufuegen.component.html
deleted file mode 100644
index 93c14522705e5f06a802280c49be66dc224a4721..0000000000000000000000000000000000000000
--- 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-dokumente-hinzufuegen/vorgang-detail-bescheiden-dokumente-hinzufuegen.component.html
+++ /dev/null
@@ -1,36 +0,0 @@
-<!--
-
-    Copyright (C) 2024 Das Land Schleswig-Holstein vertreten durch den
-    Ministerpräsidenten des Landes Schleswig-Holstein
-    Staatskanzlei
-    Abteilung Digitalisierung und zentrales IT-Management der Landesregierung
-
-    Lizenziert unter der EUPL, Version 1.2 oder - sobald
-    diese von der Europäischen Kommission genehmigt wurden -
-    Folgeversionen der EUPL ("Lizenz");
-    Sie dürfen dieses Werk ausschließlich gemäß
-    dieser Lizenz nutzen.
-    Eine Kopie der Lizenz finden Sie hier:
-
-    https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
-
-    Sofern nicht durch anwendbare Rechtsvorschriften
-    gefordert oder in schriftlicher Form vereinbart, wird
-    die unter der Lizenz verbreitete Software "so wie sie
-    ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN -
-    ausdrücklich oder stillschweigend - verbreitet.
-    Die sprachspezifischen Genehmigungen und Beschränkungen
-    unter der Lizenz sind dem Lizenztext zu entnehmen.
-
--->
-<div class="flex flex-col gap-4">
-  <alfa-vorgang-detail-bescheiden-bescheid-automatisch-erstellen
-    [bescheidDraftStateResource]="bescheidDraftStateResource$ | async"
-  ></alfa-vorgang-detail-bescheiden-bescheid-automatisch-erstellen>
-  <alfa-vorgang-detail-bescheiden-dokument-hochladen
-    [bescheidDraftStateResource]="bescheidDraftStateResource$ | async"
-  ></alfa-vorgang-detail-bescheiden-dokument-hochladen>
-  <alfa-vorgang-detail-bescheiden-attachment-hochladen
-    [bescheidDraftStateResource]="bescheidDraftStateResource$ | async"
-  ></alfa-vorgang-detail-bescheiden-attachment-hochladen>
-</div>
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-dokumente-hinzufuegen/vorgang-detail-bescheiden-dokumente-hinzufuegen.component.spec.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-dokumente-hinzufuegen/vorgang-detail-bescheiden-dokumente-hinzufuegen.component.spec.ts
deleted file mode 100644
index ea893f621e61c4bac925b2cb8a3a0a1155047548..0000000000000000000000000000000000000000
--- 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-dokumente-hinzufuegen/vorgang-detail-bescheiden-dokumente-hinzufuegen.component.spec.ts
+++ /dev/null
@@ -1,70 +0,0 @@
-/*
- * Copyright (C) 2024 Das Land Schleswig-Holstein vertreten durch den
- * Ministerpräsidenten des Landes Schleswig-Holstein
- * Staatskanzlei
- * Abteilung Digitalisierung und zentrales IT-Management der Landesregierung
- *
- * Lizenziert unter der EUPL, Version 1.2 oder - sobald
- * diese von der Europäischen Kommission genehmigt wurden -
- * Folgeversionen der EUPL ("Lizenz");
- * Sie dürfen dieses Werk ausschließlich gemäß
- * dieser Lizenz nutzen.
- * Eine Kopie der Lizenz finden Sie hier:
- *
- * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
- *
- * Sofern nicht durch anwendbare Rechtsvorschriften
- * gefordert oder in schriftlicher Form vereinbart, wird
- * die unter der Lizenz verbreitete Software "so wie sie
- * ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN -
- * ausdrücklich oder stillschweigend - verbreitet.
- * Die sprachspezifischen Genehmigungen und Beschränkungen
- * unter der Lizenz sind dem Lizenztext zu entnehmen.
- */
-import { BescheidService } from '@alfa-client/bescheid-shared';
-import { Mock, mock } from '@alfa-client/test-utils';
-import { ComponentFixture, TestBed } from '@angular/core/testing';
-import { MockComponent } from 'ng-mocks';
-import { VorgangDetailBescheidenAttachmentHochladenComponent } from './vorgang-detail-bescheiden-attachment-hochladen/vorgang-detail-bescheiden-attachment-hochladen.component';
-import { VorgangDetailBescheidenBescheidAutomatischErstellenComponent } from './vorgang-detail-bescheiden-bescheid-automatisch-erstellen/vorgang-detail-bescheiden-bescheid-automatisch-erstellen.component';
-import { VorgangDetailBescheidenDokumentHochladenComponent } from './vorgang-detail-bescheiden-dokument-hochladen/vorgang-detail-bescheiden-dokument-hochladen.component';
-import { VorgangDetailBescheidenDokumenteHinzufuegenComponent } from './vorgang-detail-bescheiden-dokumente-hinzufuegen.component';
-
-describe('VorgangDetailBescheidenDokumenteHinzufuegenComponent', () => {
-  let component: VorgangDetailBescheidenDokumenteHinzufuegenComponent;
-  let fixture: ComponentFixture<VorgangDetailBescheidenDokumenteHinzufuegenComponent>;
-
-  const bescheidService: Mock<BescheidService> = mock(BescheidService);
-
-  beforeEach(async () => {
-    await TestBed.configureTestingModule({
-      declarations: [
-        VorgangDetailBescheidenDokumenteHinzufuegenComponent,
-        MockComponent(VorgangDetailBescheidenBescheidAutomatischErstellenComponent),
-        MockComponent(VorgangDetailBescheidenDokumentHochladenComponent),
-        MockComponent(VorgangDetailBescheidenAttachmentHochladenComponent),
-      ],
-      providers: [
-        {
-          provide: BescheidService,
-          useValue: bescheidService,
-        },
-      ],
-    }).compileComponents();
-    fixture = TestBed.createComponent(VorgangDetailBescheidenDokumenteHinzufuegenComponent);
-    component = fixture.componentInstance;
-    fixture.detectChanges();
-  });
-
-  it('should create', () => {
-    expect(component).toBeTruthy();
-  });
-
-  describe('ngOnInit', () => {
-    it('should call service get bescheid draft if exists', () => {
-      component.ngOnInit();
-
-      expect(bescheidService.getBescheidDraft).toHaveBeenCalled();
-    });
-  });
-});
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-dokumente-hinzufuegen/vorgang-detail-bescheiden-dokumente-hinzufuegen.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-dokumente-hinzufuegen/vorgang-detail-bescheiden-dokumente-hinzufuegen.component.ts
deleted file mode 100644
index ae454a1d2e50138e617e6f7e8cd82d6ee7da39f5..0000000000000000000000000000000000000000
--- 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-dokumente-hinzufuegen/vorgang-detail-bescheiden-dokumente-hinzufuegen.component.ts
+++ /dev/null
@@ -1,44 +0,0 @@
-/*
- * Copyright (C) 2024 Das Land Schleswig-Holstein vertreten durch den
- * Ministerpräsidenten des Landes Schleswig-Holstein
- * Staatskanzlei
- * Abteilung Digitalisierung und zentrales IT-Management der Landesregierung
- *
- * Lizenziert unter der EUPL, Version 1.2 oder - sobald
- * diese von der Europäischen Kommission genehmigt wurden -
- * Folgeversionen der EUPL ("Lizenz");
- * Sie dürfen dieses Werk ausschließlich gemäß
- * dieser Lizenz nutzen.
- * Eine Kopie der Lizenz finden Sie hier:
- *
- * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
- *
- * Sofern nicht durch anwendbare Rechtsvorschriften
- * gefordert oder in schriftlicher Form vereinbart, wird
- * die unter der Lizenz verbreitete Software "so wie sie
- * ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN -
- * ausdrücklich oder stillschweigend - verbreitet.
- * Die sprachspezifischen Genehmigungen und Beschränkungen
- * unter der Lizenz sind dem Lizenztext zu entnehmen.
- */
-import { BescheidResource, BescheidService } from '@alfa-client/bescheid-shared';
-import { StateResource, createEmptyStateResource } from '@alfa-client/tech-shared';
-import { Component, OnInit } from '@angular/core';
-import { Observable, of } from 'rxjs';
-
-@Component({
-  selector: 'alfa-vorgang-detail-bescheiden-dokumente-hinzufuegen',
-  templateUrl: './vorgang-detail-bescheiden-dokumente-hinzufuegen.component.html',
-  styles: [],
-})
-export class VorgangDetailBescheidenDokumenteHinzufuegenComponent implements OnInit {
-  public bescheidDraftStateResource$: Observable<StateResource<BescheidResource>> = of(
-    createEmptyStateResource<BescheidResource>(),
-  );
-
-  constructor(private bescheidService: BescheidService) {}
-
-  ngOnInit(): void {
-    this.bescheidDraftStateResource$ = this.bescheidService.getBescheidDraft();
-  }
-}
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-step-content/vorgang-detail-bescheiden-step-content.component.html 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-step-content/vorgang-detail-bescheiden-step-content.component.html
deleted file mode 100644
index d940d1a0b6ee4e24b612f371157e5df63a171fdc..0000000000000000000000000000000000000000
--- 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-step-content/vorgang-detail-bescheiden-step-content.component.html
+++ /dev/null
@@ -1,40 +0,0 @@
-<!--
-
-    Copyright (C) 2024 Das Land Schleswig-Holstein vertreten durch den
-    Ministerpräsidenten des Landes Schleswig-Holstein
-    Staatskanzlei
-    Abteilung Digitalisierung und zentrales IT-Management der Landesregierung
-
-    Lizenziert unter der EUPL, Version 1.2 oder - sobald
-    diese von der Europäischen Kommission genehmigt wurden -
-    Folgeversionen der EUPL ("Lizenz");
-    Sie dürfen dieses Werk ausschließlich gemäß
-    dieser Lizenz nutzen.
-    Eine Kopie der Lizenz finden Sie hier:
-
-    https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
-
-    Sofern nicht durch anwendbare Rechtsvorschriften
-    gefordert oder in schriftlicher Form vereinbart, wird
-    die unter der Lizenz verbreitete Software "so wie sie
-    ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN -
-    ausdrücklich oder stillschweigend - verbreitet.
-    Die sprachspezifischen Genehmigungen und Beschränkungen
-    unter der Lizenz sind dem Lizenztext zu entnehmen.
-
--->
-<div
-  *ngIf="shouldShowStep()"
-  class="min-h-28 flex-1"
-  id="vorgang-detail-bescheiden-step-content-{{ step }}"
-  role="tabpanel"
-  [tabindex]="shouldShowStepContent() ? '0' : '-1'"
->
-  <alfa-vorgang-detail-bescheiden-step-title
-    [label]="stepTitle"
-    data-test-id="step-caption"
-  ></alfa-vorgang-detail-bescheiden-step-title>
-  <div *ngIf="shouldShowStepContent()">
-    <ng-content></ng-content>
-  </div>
-</div>
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-step-content/vorgang-detail-bescheiden-step-content.component.spec.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-step-content/vorgang-detail-bescheiden-step-content.component.spec.ts
deleted file mode 100644
index 825d6d08b617426f04782aedd866d705a96bbc08..0000000000000000000000000000000000000000
--- 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-step-content/vorgang-detail-bescheiden-step-content.component.spec.ts
+++ /dev/null
@@ -1,91 +0,0 @@
-/*
- * Copyright (C) 2024 Das Land Schleswig-Holstein vertreten durch den
- * Ministerpräsidenten des Landes Schleswig-Holstein
- * Staatskanzlei
- * Abteilung Digitalisierung und zentrales IT-Management der Landesregierung
- *
- * Lizenziert unter der EUPL, Version 1.2 oder - sobald
- * diese von der Europäischen Kommission genehmigt wurden -
- * Folgeversionen der EUPL ("Lizenz");
- * Sie dürfen dieses Werk ausschließlich gemäß
- * dieser Lizenz nutzen.
- * Eine Kopie der Lizenz finden Sie hier:
- *
- * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
- *
- * Sofern nicht durch anwendbare Rechtsvorschriften
- * gefordert oder in schriftlicher Form vereinbart, wird
- * die unter der Lizenz verbreitete Software "so wie sie
- * ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN -
- * ausdrücklich oder stillschweigend - verbreitet.
- * Die sprachspezifischen Genehmigungen und Beschränkungen
- * unter der Lizenz sind dem Lizenztext zu entnehmen.
- */
-import { ComponentFixture, TestBed } from '@angular/core/testing';
-import { MockComponent } from 'ng-mocks';
-import { VorgangDetailBescheidenStepTitleComponent } from '../../vorgang-detail-bescheiden-step-title/vorgang-detail-bescheiden-step-title.component';
-import { VorgangDetailBescheidenWeiterButtonComponent } from '../../vorgang-detail-bescheiden-weiter-button/vorgang-detail-bescheiden-weiter-button.component';
-import { VorgangDetailBescheidenStepContentComponent } from './vorgang-detail-bescheiden-step-content.component';
-
-describe('VorgangDetailBescheidenStepsContentComponent', () => {
-  let component: VorgangDetailBescheidenStepContentComponent;
-  let fixture: ComponentFixture<VorgangDetailBescheidenStepContentComponent>;
-
-  beforeEach(async () => {
-    await TestBed.configureTestingModule({
-      declarations: [
-        VorgangDetailBescheidenStepContentComponent,
-        MockComponent(VorgangDetailBescheidenWeiterButtonComponent),
-        MockComponent(VorgangDetailBescheidenStepTitleComponent),
-      ],
-    }).compileComponents();
-
-    fixture = TestBed.createComponent(VorgangDetailBescheidenStepContentComponent);
-    component = fixture.componentInstance;
-    fixture.detectChanges();
-  });
-
-  it('should create', () => {
-    expect(component).toBeTruthy();
-  });
-
-  describe('shouldShowStep', () => {
-    it('should return true', () => {
-      component.activeStep = 2;
-      component.step = 2;
-
-      const shouldShowStep = component.shouldShowStep();
-
-      expect(shouldShowStep).toBeTruthy();
-    });
-
-    it('should return false', () => {
-      component.activeStep = 2;
-      component.step = 3;
-
-      const shouldShowStep = component.shouldShowStep();
-
-      expect(shouldShowStep).toBeFalsy();
-    });
-  });
-
-  describe('shouldShowStepContent', () => {
-    it('should return true', () => {
-      component.activeStep = 2;
-      component.step = 2;
-
-      const shouldShowStep = component.shouldShowStepContent();
-
-      expect(shouldShowStep).toBeTruthy();
-    });
-
-    it('should return false', () => {
-      component.activeStep = 2;
-      component.step = 1;
-
-      const shouldShowStep = component.shouldShowStepContent();
-
-      expect(shouldShowStep).toBeFalsy();
-    });
-  });
-});
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-step-content/vorgang-detail-bescheiden-step-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-step-content/vorgang-detail-bescheiden-step-content.component.ts
deleted file mode 100644
index 4ab18f4714f922f27232a7b0a66d48bb5d08f9f0..0000000000000000000000000000000000000000
--- 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-step-content/vorgang-detail-bescheiden-step-content.component.ts
+++ /dev/null
@@ -1,44 +0,0 @@
-/*
- * Copyright (C) 2024 Das Land Schleswig-Holstein vertreten durch den
- * Ministerpräsidenten des Landes Schleswig-Holstein
- * Staatskanzlei
- * Abteilung Digitalisierung und zentrales IT-Management der Landesregierung
- *
- * Lizenziert unter der EUPL, Version 1.2 oder - sobald
- * diese von der Europäischen Kommission genehmigt wurden -
- * Folgeversionen der EUPL ("Lizenz");
- * Sie dürfen dieses Werk ausschließlich gemäß
- * dieser Lizenz nutzen.
- * Eine Kopie der Lizenz finden Sie hier:
- *
- * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
- *
- * Sofern nicht durch anwendbare Rechtsvorschriften
- * gefordert oder in schriftlicher Form vereinbart, wird
- * die unter der Lizenz verbreitete Software "so wie sie
- * ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN -
- * ausdrücklich oder stillschweigend - verbreitet.
- * Die sprachspezifischen Genehmigungen und Beschränkungen
- * unter der Lizenz sind dem Lizenztext zu entnehmen.
- */
-import { Component, Input } from '@angular/core';
-
-@Component({
-  selector: 'alfa-vorgang-detail-bescheiden-step-content',
-  templateUrl: './vorgang-detail-bescheiden-step-content.component.html',
-  styles: [':host {@apply flex}'],
-})
-export class VorgangDetailBescheidenStepContentComponent {
-  @Input() stepTitle: string;
-  @Input() step: number;
-  @Input() nextStep: number;
-  @Input() activeStep: number = 1;
-
-  public shouldShowStep(): boolean {
-    return this.activeStep > this.step - 1;
-  }
-
-  public shouldShowStepContent(): boolean {
-    return this.activeStep === this.step;
-  }
-}
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.html 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.html
deleted file mode 100644
index ab8c1d21a70bcd3eadfb8bf884a6215e961019be..0000000000000000000000000000000000000000
--- 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.html
+++ /dev/null
@@ -1,69 +0,0 @@
-<!--
-
-    Copyright (C) 2024 Das Land Schleswig-Holstein vertreten durch den
-    Ministerpräsidenten des Landes Schleswig-Holstein
-    Staatskanzlei
-    Abteilung Digitalisierung und zentrales IT-Management der Landesregierung
-
-    Lizenziert unter der EUPL, Version 1.2 oder - sobald
-    diese von der Europäischen Kommission genehmigt wurden -
-    Folgeversionen der EUPL ("Lizenz");
-    Sie dürfen dieses Werk ausschließlich gemäß
-    dieser Lizenz nutzen.
-    Eine Kopie der Lizenz finden Sie hier:
-
-    https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
-
-    Sofern nicht durch anwendbare Rechtsvorschriften
-    gefordert oder in schriftlicher Form vereinbart, wird
-    die unter der Lizenz verbreitete Software "so wie sie
-    ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN -
-    ausdrücklich oder stillschweigend - verbreitet.
-    Die sprachspezifischen Genehmigungen und Beschränkungen
-    unter der Lizenz sind dem Lizenztext zu entnehmen.
-
--->
-<alfa-vorgang-detail-bescheiden-step-content
-  stepTitle="Antrag bescheiden"
-  [step]="1"
-  [nextStep]="2"
-  [activeStep]="activeStep$ | async"
->
-  <alfa-vorgang-detail-bescheiden-antrag-bescheiden></alfa-vorgang-detail-bescheiden-antrag-bescheiden>
-  <alfa-vorgang-detail-bescheiden-weiter-button
-    (clickEmitter)="changeActiveStep(2)"
-    [submitResource]="submitResource"
-  ></alfa-vorgang-detail-bescheiden-weiter-button>
-</alfa-vorgang-detail-bescheiden-step-content>
-
-<alfa-vorgang-detail-bescheiden-step-content
-  stepTitle="Dokumente hinzufügen"
-  [step]="2"
-  [nextStep]="3"
-  [activeStep]="activeStep$ | async"
->
-  <alfa-vorgang-detail-bescheiden-dokumente-hinzufuegen
-    *ngIf="(activeStep$ | async) === 2"
-    data-test-id="bescheid-documents-upload"
-  ></alfa-vorgang-detail-bescheiden-dokumente-hinzufuegen>
-  <alfa-vorgang-detail-bescheiden-weiter-button
-    (clickEmitter)="changeActiveStep(3)"
-    [submitResource]="submitResource"
-  ></alfa-vorgang-detail-bescheiden-weiter-button>
-</alfa-vorgang-detail-bescheiden-step-content>
-
-<alfa-vorgang-detail-bescheiden-step-content
-  stepTitle="Bescheid versenden"
-  [step]="3"
-  [nextStep]="3"
-  [activeStep]="activeStep$ | async"
->
-  <alfa-vorgang-detail-bescheiden-bescheid-versenden
-    *ngIf="(activeStep$ | async) === 3"
-    data-test-id="bescheiden-bescheid-versenden"
-  ></alfa-vorgang-detail-bescheiden-bescheid-versenden>
-</alfa-vorgang-detail-bescheiden-step-content>
-
-<alfa-vorgang-detail-bescheiden-ueberspringen-button
-  *ngIf="showBescheidErstellungUeberspringen$ | async"
-></alfa-vorgang-detail-bescheiden-ueberspringen-button>
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.spec.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.spec.ts
deleted file mode 100644
index d9ff1e4db615920247c80afd51992b5a2f7bf266..0000000000000000000000000000000000000000
--- 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.spec.ts
+++ /dev/null
@@ -1,262 +0,0 @@
-/*
- * Copyright (C) 2024 Das Land Schleswig-Holstein vertreten durch den
- * Ministerpräsidenten des Landes Schleswig-Holstein
- * Staatskanzlei
- * Abteilung Digitalisierung und zentrales IT-Management der Landesregierung
- *
- * Lizenziert unter der EUPL, Version 1.2 oder - sobald
- * diese von der Europäischen Kommission genehmigt wurden -
- * Folgeversionen der EUPL ("Lizenz");
- * Sie dürfen dieses Werk ausschließlich gemäß
- * dieser Lizenz nutzen.
- * Eine Kopie der Lizenz finden Sie hier:
- *
- * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
- *
- * Sofern nicht durch anwendbare Rechtsvorschriften
- * gefordert oder in schriftlicher Form vereinbart, wird
- * die unter der Lizenz verbreitete Software "so wie sie
- * ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN -
- * ausdrücklich oder stillschweigend - verbreitet.
- * Die sprachspezifischen Genehmigungen und Beschränkungen
- * unter der Lizenz sind dem Lizenztext zu entnehmen.
- */
-import { BescheidService } from '@alfa-client/bescheid-shared';
-import {
-  createEmptyStateResource,
-  createErrorStateResource,
-  createStateResource,
-} from '@alfa-client/tech-shared';
-import { Mock, getElementFromFixture, mock } from '@alfa-client/test-utils';
-import { VorgangService, VorgangWithEingangLinkRel } from '@alfa-client/vorgang-shared';
-import { EventEmitter } from '@angular/core';
-import { ComponentFixture, TestBed } from '@angular/core/testing';
-import { createApiError } from 'libs/tech-shared/test/error';
-import { MockComponent } from 'ng-mocks';
-import { EMPTY, of } from 'rxjs';
-import {
-  createCommandResource,
-  createCommandStateResource,
-} from '../../../../../../../command-shared/test/command';
-import { getDataTestIdOf } from '../../../../../../../tech-shared/test/data-test';
-import { singleCold } from '../../../../../../../tech-shared/test/marbles';
-import { createVorgangWithEingangResource } from '../../../../../../../vorgang-shared/test/vorgang';
-import { BescheidenFormService } from '../../bescheiden.formservice';
-import { VorgangDetailBescheidenStepTitleComponent } from '../vorgang-detail-bescheiden-step-title/vorgang-detail-bescheiden-step-title.component';
-import { VorgangDetailBescheidenWeiterButtonComponent } from '../vorgang-detail-bescheiden-weiter-button/vorgang-detail-bescheiden-weiter-button.component';
-import { VorgangDetailBescheidenAntragBescheidenComponent } from './vorgang-detail-bescheiden-antrag-bescheiden/vorgang-detail-bescheiden-antrag-bescheiden.component';
-import { VorgangDetailBescheidenBescheidVersendenComponent } from './vorgang-detail-bescheiden-bescheid-versenden/vorgang-detail-bescheiden-bescheid-versenden.component';
-import { VorgangDetailBescheidenDokumenteHinzufuegenComponent } from './vorgang-detail-bescheiden-dokumente-hinzufuegen/vorgang-detail-bescheiden-dokumente-hinzufuegen.component';
-import { VorgangDetailBescheidenStepContentComponent } from './vorgang-detail-bescheiden-step-content/vorgang-detail-bescheiden-step-content.component';
-import { VorgangDetailBescheidenStepsContentComponent } from './vorgang-detail-bescheiden-steps-content.component';
-import { VorgangDetailBescheidenUeberspringenButtonComponent } from './vorgang-detail-bescheiden-ueberspringen-button/vorgang-detail-bescheiden-ueberspringen-button.component';
-
-describe('VorgangDetailBescheidenStepsContentComponent', () => {
-  let component: VorgangDetailBescheidenStepsContentComponent;
-  let fixture: ComponentFixture<VorgangDetailBescheidenStepsContentComponent>;
-
-  let vorgangService: Mock<VorgangService>;
-  let bescheidService: Mock<BescheidService>;
-  let formService: Mock<BescheidenFormService>;
-
-  const bescheidVersendenTestId: string = getDataTestIdOf('bescheiden-bescheid-versenden');
-
-  beforeEach(async () => {
-    vorgangService = mock(VorgangService);
-    vorgangService.getVorgangWithEingang.mockReturnValue(EMPTY);
-
-    bescheidService = mock(BescheidService);
-    formService = mock(BescheidenFormService);
-
-    await TestBed.configureTestingModule({
-      declarations: [
-        VorgangDetailBescheidenStepsContentComponent,
-        MockComponent(VorgangDetailBescheidenWeiterButtonComponent),
-        MockComponent(VorgangDetailBescheidenStepTitleComponent),
-        MockComponent(VorgangDetailBescheidenStepContentComponent),
-        MockComponent(VorgangDetailBescheidenUeberspringenButtonComponent),
-        MockComponent(VorgangDetailBescheidenAntragBescheidenComponent),
-        MockComponent(VorgangDetailBescheidenDokumenteHinzufuegenComponent),
-        MockComponent(VorgangDetailBescheidenBescheidVersendenComponent),
-      ],
-      providers: [
-        {
-          provide: VorgangService,
-          useValue: vorgangService,
-        },
-        {
-          provide: BescheidService,
-          useValue: bescheidService,
-        },
-        {
-          provide: BescheidenFormService,
-          useValue: formService,
-        },
-      ],
-    }).compileComponents();
-
-    fixture = TestBed.createComponent(VorgangDetailBescheidenStepsContentComponent);
-    component = fixture.componentInstance;
-    fixture.detectChanges();
-  });
-
-  it('should create', () => {
-    expect(component).toBeTruthy();
-  });
-
-  describe('render', () => {
-    it('should show documents component in step 2', () => {
-      component.activeStep = 2;
-      fixture.detectChanges();
-
-      const element = getElementFromFixture(fixture, getDataTestIdOf('bescheid-documents-upload'));
-
-      expect(element).toBeInstanceOf(HTMLElement);
-    });
-
-    it.each([1, 3])('should not show documents component in step %d', (step) => {
-      component.activeStep = step;
-      fixture.detectChanges();
-
-      const element = getElementFromFixture(fixture, getDataTestIdOf('bescheid-documents-upload'));
-
-      expect(element).not.toBeInstanceOf(HTMLElement);
-    });
-
-    it('should show bescheid versenden in step 3', () => {
-      component.activeStep = 3;
-      fixture.detectChanges();
-
-      const element = getElementFromFixture(fixture, bescheidVersendenTestId);
-
-      expect(element).toBeInstanceOf(HTMLElement);
-    });
-
-    it.each([1, 2])('should not show bescheid versenden in step %d', (step: number) => {
-      component.activeStep = step;
-      fixture.detectChanges();
-
-      const element = getElementFromFixture(fixture, bescheidVersendenTestId);
-
-      expect(element).not.toBeInstanceOf(HTMLElement);
-    });
-  });
-
-  describe('changeActiveStep', () => {
-    beforeEach(() => {
-      component.activeStepChange = <any>mock(EventEmitter);
-      formService.submit = jest.fn();
-    });
-
-    it('should submit', () => {
-      component.canChangeTo = jest.fn().mockReturnValue(true);
-      formService.submit = jest.fn().mockReturnValue(EMPTY);
-
-      component.changeActiveStep(1);
-
-      expect(formService.submit).toHaveBeenCalled();
-    });
-
-    it('should not submit', () => {
-      component.canChangeTo = jest.fn().mockReturnValue(false);
-      formService.submit = jest.fn().mockReturnValue(EMPTY);
-
-      component.changeActiveStep(1);
-
-      expect(formService.submit).not.toHaveBeenCalled();
-    });
-  });
-
-  describe('canChangeTo', () => {
-    it.each([1, 2])('should true for step %d', (step: number) => {
-      const canChange = component.canChangeTo(step);
-
-      expect(canChange).toBeTruthy();
-    });
-
-    it('should return true for step 3', () => {
-      formService.validateBescheidDocumentExists.mockReturnValue(true);
-
-      const canChange = component.canChangeTo(3);
-
-      expect(canChange).toBeTruthy();
-    });
-
-    it('should return false for step 3', () => {
-      formService.validateBescheidDocumentExists.mockReturnValue(false);
-
-      const canChange = component.canChangeTo(3);
-
-      expect(canChange).toBeFalsy();
-    });
-  });
-
-  describe('ngOnInit', () => {
-    it('should render überspringen und abschliessen button', () => {
-      component.activeStep = 1;
-      vorgangService.getVorgangWithEingang.mockReturnValue(
-        of(
-          createStateResource(
-            createVorgangWithEingangResource([VorgangWithEingangLinkRel.ABSCHLIESSEN]),
-          ),
-        ),
-      );
-
-      component.ngOnInit();
-
-      expect(component.showBescheidErstellungUeberspringen$).toBeObservable(singleCold(true));
-    });
-
-    it('should not render überspringen und abschliessen button for active step 2', () => {
-      component.activeStep = 2;
-      vorgangService.getVorgangWithEingang.mockReturnValue(
-        of(
-          createStateResource(
-            createVorgangWithEingangResource([VorgangWithEingangLinkRel.ABSCHLIESSEN]),
-          ),
-        ),
-      );
-
-      component.ngOnInit();
-
-      expect(component.showBescheidErstellungUeberspringen$).toBeObservable(singleCold(false));
-    });
-
-    it('should not render überspringen und abschliessen button if link missing', () => {
-      component.activeStep = 1;
-      vorgangService.getVorgangWithEingang.mockReturnValue(
-        of(createStateResource(createVorgangWithEingangResource())),
-      );
-
-      component.ngOnInit();
-
-      expect(component.showBescheidErstellungUeberspringen$).toBeObservable(singleCold(false));
-    });
-  });
-
-  describe('noError', () => {
-    it('should return true', () => {
-      const noError = component.noError(createCommandStateResource());
-
-      expect(noError).toBeTruthy();
-    });
-
-    it('should return false on not loaded state resource', () => {
-      const noError = component.noError(createEmptyStateResource());
-
-      expect(noError).toBeFalsy();
-    });
-
-    it('should return false on loading state resource', () => {
-      const noError = component.noError(createStateResource(createCommandResource(), true));
-
-      expect(noError).toBeFalsy();
-    });
-
-    it('should return false on error state resource', () => {
-      const noError = component.noError(createErrorStateResource(createApiError()));
-
-      expect(noError).toBeFalsy();
-    });
-  });
-});
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
deleted file mode 100644
index c880db36f7f58edf7f7865beb016deedf5d69ed2..0000000000000000000000000000000000000000
--- 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
+++ /dev/null
@@ -1,100 +0,0 @@
-/*
- * Copyright (C) 2024 Das Land Schleswig-Holstein vertreten durch den
- * Ministerpräsidenten des Landes Schleswig-Holstein
- * Staatskanzlei
- * Abteilung Digitalisierung und zentrales IT-Management der Landesregierung
- *
- * Lizenziert unter der EUPL, Version 1.2 oder - sobald
- * diese von der Europäischen Kommission genehmigt wurden -
- * Folgeversionen der EUPL ("Lizenz");
- * Sie dürfen dieses Werk ausschließlich gemäß
- * dieser Lizenz nutzen.
- * Eine Kopie der Lizenz finden Sie hier:
- *
- * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
- *
- * Sofern nicht durch anwendbare Rechtsvorschriften
- * gefordert oder in schriftlicher Form vereinbart, wird
- * die unter der Lizenz verbreitete Software "so wie sie
- * ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN -
- * ausdrücklich oder stillschweigend - verbreitet.
- * Die sprachspezifischen Genehmigungen und Beschränkungen
- * unter der Lizenz sind dem Lizenztext zu entnehmen.
- */
-import {
-  StateResource,
-  createEmptyStateResource,
-  hasStateResourceError,
-  isLoaded,
-} from '@alfa-client/tech-shared';
-import {
-  VorgangService,
-  VorgangWithEingangLinkRel,
-  VorgangWithEingangResource,
-} from '@alfa-client/vorgang-shared';
-import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';
-import { Resource, hasLink } from '@ngxp/rest';
-import { BehaviorSubject, Observable, combineLatest, filter, first, map, tap } from 'rxjs';
-import { BescheidenFormService } from '../../bescheiden.formservice';
-
-@Component({
-  selector: 'alfa-vorgang-detail-bescheiden-steps-content',
-  templateUrl: './vorgang-detail-bescheiden-steps-content.component.html',
-  styles: [':host {@apply flex flex-col}'],
-})
-export class VorgangDetailBescheidenStepsContentComponent implements OnInit {
-  readonly activeStep$ = new BehaviorSubject(1);
-
-  @Input() set activeStep(step: number) {
-    this.activeStep$.next(step);
-  }
-  @Output() activeStepChange = new EventEmitter<number>();
-
-  showBescheidErstellungUeberspringen$: Observable<boolean>;
-
-  submitResource: StateResource<Resource> = createEmptyStateResource();
-
-  constructor(
-    private readonly vorgangService: VorgangService,
-    private formService: BescheidenFormService,
-  ) {}
-
-  ngOnInit(): void {
-    this.showBescheidErstellungUeberspringen$ = combineLatest([
-      this.vorgangService.getVorgangWithEingang().pipe(
-        filter(isLoaded),
-        map((stateResource: StateResource<VorgangWithEingangResource>) =>
-          hasLink(stateResource.resource, VorgangWithEingangLinkRel.ABSCHLIESSEN),
-        ),
-      ),
-      this.activeStep$.pipe(map((step) => step === 1)),
-    ]).pipe(map(([hasAbschliessenLink, isFirstStep]) => hasAbschliessenLink && isFirstStep));
-  }
-
-  public changeActiveStep(step: number): void {
-    if (this.canChangeTo(step)) {
-      this.formService
-        .submit()
-        .pipe(
-          tap((resource: StateResource<Resource>) => (this.submitResource = resource)),
-          filter(this.noError),
-          first(),
-        )
-        .subscribe(() => {
-          this.formService.setActiveStep(step);
-          this.activeStepChange.emit(step);
-        });
-    }
-  }
-
-  canChangeTo(nextStep: number): boolean {
-    if (nextStep < 3) {
-      return true;
-    }
-    return this.formService.validateBescheidDocumentExists();
-  }
-
-  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-steps-content/vorgang-detail-bescheiden-ueberspringen-button/vorgang-detail-bescheiden-ueberspringen-button.component.html 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-ueberspringen-button/vorgang-detail-bescheiden-ueberspringen-button.component.html
deleted file mode 100644
index c12b66319d09caa61ccb7b5289dd79f5ccf5ca12..0000000000000000000000000000000000000000
--- 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-ueberspringen-button/vorgang-detail-bescheiden-ueberspringen-button.component.html
+++ /dev/null
@@ -1,32 +0,0 @@
-<!--
-
-    Copyright (C) 2024 Das Land Schleswig-Holstein vertreten durch den
-    Ministerpräsidenten des Landes Schleswig-Holstein
-    Staatskanzlei
-    Abteilung Digitalisierung und zentrales IT-Management der Landesregierung
-
-    Lizenziert unter der EUPL, Version 1.2 oder - sobald
-    diese von der Europäischen Kommission genehmigt wurden -
-    Folgeversionen der EUPL ("Lizenz");
-    Sie dürfen dieses Werk ausschließlich gemäß
-    dieser Lizenz nutzen.
-    Eine Kopie der Lizenz finden Sie hier:
-
-    https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
-
-    Sofern nicht durch anwendbare Rechtsvorschriften
-    gefordert oder in schriftlicher Form vereinbart, wird
-    die unter der Lizenz verbreitete Software "so wie sie
-    ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN -
-    ausdrücklich oder stillschweigend - verbreitet.
-    Die sprachspezifischen Genehmigungen und Beschränkungen
-    unter der Lizenz sind dem Lizenztext zu entnehmen.
-
--->
-<button
-  (click)="onClick()"
-  data-test-id="bescheid-ueberspringen"
-  class="mt-6 select-none text-left text-primary hover:underline"
->
-  Bescheiderstellung überspringen<br />und abschließen
-</button>
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-ueberspringen-button/vorgang-detail-bescheiden-ueberspringen-button.component.spec.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-ueberspringen-button/vorgang-detail-bescheiden-ueberspringen-button.component.spec.ts
deleted file mode 100644
index 6b574a970798d3521230f50d7fe14dab66087a02..0000000000000000000000000000000000000000
--- 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-ueberspringen-button/vorgang-detail-bescheiden-ueberspringen-button.component.spec.ts
+++ /dev/null
@@ -1,67 +0,0 @@
-/*
- * Copyright (C) 2024 Das Land Schleswig-Holstein vertreten durch den
- * Ministerpräsidenten des Landes Schleswig-Holstein
- * Staatskanzlei
- * Abteilung Digitalisierung und zentrales IT-Management der Landesregierung
- *
- * Lizenziert unter der EUPL, Version 1.2 oder - sobald
- * diese von der Europäischen Kommission genehmigt wurden -
- * Folgeversionen der EUPL ("Lizenz");
- * Sie dürfen dieses Werk ausschließlich gemäß
- * dieser Lizenz nutzen.
- * Eine Kopie der Lizenz finden Sie hier:
- *
- * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
- *
- * Sofern nicht durch anwendbare Rechtsvorschriften
- * gefordert oder in schriftlicher Form vereinbart, wird
- * die unter der Lizenz verbreitete Software "so wie sie
- * ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN -
- * ausdrücklich oder stillschweigend - verbreitet.
- * Die sprachspezifischen Genehmigungen und Beschränkungen
- * unter der Lizenz sind dem Lizenztext zu entnehmen.
- */
-import { Mock, mock } from '@alfa-client/test-utils';
-import { OzgcloudDialogService } from '@alfa-client/ui';
-import { ComponentFixture, TestBed } from '@angular/core/testing';
-import { VorgangDetailBescheidenUeberspringenDialogComponent } from '../vorgang-detail-bescheiden-ueberspringen-dialog/vorgang-detail-bescheiden-ueberspringen-dialog.component';
-import { VorgangDetailBescheidenUeberspringenButtonComponent } from './vorgang-detail-bescheiden-ueberspringen-button.component';
-
-describe('VorgangDetailBescheidenUeberspringenButtonComponent', () => {
-  let component: VorgangDetailBescheidenUeberspringenButtonComponent;
-  let fixture: ComponentFixture<VorgangDetailBescheidenUeberspringenButtonComponent>;
-
-  let ozgcloudDialogService: Mock<OzgcloudDialogService>;
-
-  beforeEach(async () => {
-    ozgcloudDialogService = mock(OzgcloudDialogService);
-
-    await TestBed.configureTestingModule({
-      declarations: [VorgangDetailBescheidenUeberspringenButtonComponent],
-      providers: [
-        {
-          provide: OzgcloudDialogService,
-          useValue: ozgcloudDialogService,
-        },
-      ],
-    }).compileComponents();
-
-    fixture = TestBed.createComponent(VorgangDetailBescheidenUeberspringenButtonComponent);
-    component = fixture.componentInstance;
-    fixture.detectChanges();
-  });
-
-  it('should create', () => {
-    expect(component).toBeTruthy();
-  });
-
-  describe('onClick', () => {
-    it('should open dialog', () => {
-      component.onClick();
-
-      expect(ozgcloudDialogService.open).toHaveBeenCalledWith(
-        VorgangDetailBescheidenUeberspringenDialogComponent,
-      );
-    });
-  });
-});
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-ueberspringen-button/vorgang-detail-bescheiden-ueberspringen-button.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-ueberspringen-button/vorgang-detail-bescheiden-ueberspringen-button.component.ts
deleted file mode 100644
index 37aa7deb4c581124eb3be9a57d30cf784c0951cd..0000000000000000000000000000000000000000
--- 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-ueberspringen-button/vorgang-detail-bescheiden-ueberspringen-button.component.ts
+++ /dev/null
@@ -1,44 +0,0 @@
-/*
- * Copyright (C) 2024 Das Land Schleswig-Holstein vertreten durch den
- * Ministerpräsidenten des Landes Schleswig-Holstein
- * Staatskanzlei
- * Abteilung Digitalisierung und zentrales IT-Management der Landesregierung
- *
- * Lizenziert unter der EUPL, Version 1.2 oder - sobald
- * diese von der Europäischen Kommission genehmigt wurden -
- * Folgeversionen der EUPL ("Lizenz");
- * Sie dürfen dieses Werk ausschließlich gemäß
- * dieser Lizenz nutzen.
- * Eine Kopie der Lizenz finden Sie hier:
- *
- * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
- *
- * Sofern nicht durch anwendbare Rechtsvorschriften
- * gefordert oder in schriftlicher Form vereinbart, wird
- * die unter der Lizenz verbreitete Software "so wie sie
- * ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN -
- * ausdrücklich oder stillschweigend - verbreitet.
- * Die sprachspezifischen Genehmigungen und Beschränkungen
- * unter der Lizenz sind dem Lizenztext zu entnehmen.
- */
-import { OzgcloudDialogService } from '@alfa-client/ui';
-import { VorgangWithEingangResource } from '@alfa-client/vorgang-shared';
-import { Component, Input } from '@angular/core';
-import { VorgangDetailBescheidenUeberspringenDialogComponent } from '../vorgang-detail-bescheiden-ueberspringen-dialog/vorgang-detail-bescheiden-ueberspringen-dialog.component';
-
-@Component({
-  selector: 'alfa-vorgang-detail-bescheiden-ueberspringen-button',
-  templateUrl: './vorgang-detail-bescheiden-ueberspringen-button.component.html',
-  styles: [':host {@apply flex flex-1 items-end}'],
-})
-export class VorgangDetailBescheidenUeberspringenButtonComponent {
-  @Input() vorgang: VorgangWithEingangResource;
-
-  constructor(private readonly ozgcloudDialogService: OzgcloudDialogService) {}
-
-  public onClick(): void {
-    this.ozgcloudDialogService.open<VorgangDetailBescheidenUeberspringenDialogComponent>(
-      VorgangDetailBescheidenUeberspringenDialogComponent,
-    );
-  }
-}
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-ueberspringen-dialog/vorgang-detail-bescheiden-ueberspringen-dialog.component.html 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-ueberspringen-dialog/vorgang-detail-bescheiden-ueberspringen-dialog.component.html
deleted file mode 100644
index 407ab86311898af6a4bfcd3eda4eebe1d03ac20f..0000000000000000000000000000000000000000
--- 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-ueberspringen-dialog/vorgang-detail-bescheiden-ueberspringen-dialog.component.html
+++ /dev/null
@@ -1,68 +0,0 @@
-<!--
-
-    Copyright (C) 2024 Das Land Schleswig-Holstein vertreten durch den
-    Ministerpräsidenten des Landes Schleswig-Holstein
-    Staatskanzlei
-    Abteilung Digitalisierung und zentrales IT-Management der Landesregierung
-
-    Lizenziert unter der EUPL, Version 1.2 oder - sobald
-    diese von der Europäischen Kommission genehmigt wurden -
-    Folgeversionen der EUPL ("Lizenz");
-    Sie dürfen dieses Werk ausschließlich gemäß
-    dieser Lizenz nutzen.
-    Eine Kopie der Lizenz finden Sie hier:
-
-    https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
-
-    Sofern nicht durch anwendbare Rechtsvorschriften
-    gefordert oder in schriftlicher Form vereinbart, wird
-    die unter der Lizenz verbreitete Software "so wie sie
-    ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN -
-    ausdrücklich oder stillschweigend - verbreitet.
-    Die sprachspezifischen Genehmigungen und Beschränkungen
-    unter der Lizenz sind dem Lizenztext zu entnehmen.
-
--->
-<div
-  class="relative m-6 max-w-2xl rounded-lg bg-modalBg p-6 shadow-xl"
-  data-test-id="bescheid-ueberspringen-dialog"
->
-  <button
-    class="absolute right-4 top-4 flex size-12 items-center justify-center rounded-full hover:bg-background-100"
-    (click)="onClose()"
-  >
-    <mat-icon>close</mat-icon>
-  </button>
-
-  <div class="flex flex-col gap-6">
-    <div>
-      <h4 class="text-lg font-medium text-primary">Bescheiderstellung überspringen</h4>
-    </div>
-    <div class="grow">
-      <p class="text-base">
-        Soll die Bescheiderstellung übersprungen und der Vorgang direkt in den Status Abgeschlossen
-        gesetzt werden?
-      </p>
-    </div>
-    <div class="flex gap-4">
-      <ozgcloud-stroked-button-with-spinner
-        (click)="onConfirm()"
-        data-test-id="ueberspringen-abschliessen-button"
-        text="Überspringen und abschließen"
-        type="submit"
-        icon="check"
-        [stateResource]="bescheiderstellungUeberspringen$ | async"
-      >
-      </ozgcloud-stroked-button-with-spinner>
-      <ozgcloud-stroked-button-with-spinner
-        (click)="onCancel()"
-        data-test-id="ueberspringen-abbrechen-button"
-        text="Abbrechen"
-        color=""
-        icon="clear"
-        type="submit"
-      >
-      </ozgcloud-stroked-button-with-spinner>
-    </div>
-  </div>
-</div>
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-ueberspringen-dialog/vorgang-detail-bescheiden-ueberspringen-dialog.component.spec.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-ueberspringen-dialog/vorgang-detail-bescheiden-ueberspringen-dialog.component.spec.ts
deleted file mode 100644
index 8429d3185620d549723b4fbbaa1c620e1a5c6cb8..0000000000000000000000000000000000000000
--- 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-ueberspringen-dialog/vorgang-detail-bescheiden-ueberspringen-dialog.component.spec.ts
+++ /dev/null
@@ -1,173 +0,0 @@
-/*
- * Copyright (C) 2024 Das Land Schleswig-Holstein vertreten durch den
- * Ministerpräsidenten des Landes Schleswig-Holstein
- * Staatskanzlei
- * Abteilung Digitalisierung und zentrales IT-Management der Landesregierung
- *
- * Lizenziert unter der EUPL, Version 1.2 oder - sobald
- * diese von der Europäischen Kommission genehmigt wurden -
- * Folgeversionen der EUPL ("Lizenz");
- * Sie dürfen dieses Werk ausschließlich gemäß
- * dieser Lizenz nutzen.
- * Eine Kopie der Lizenz finden Sie hier:
- *
- * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
- *
- * Sofern nicht durch anwendbare Rechtsvorschriften
- * gefordert oder in schriftlicher Form vereinbart, wird
- * die unter der Lizenz verbreitete Software "so wie sie
- * ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN -
- * ausdrücklich oder stillschweigend - verbreitet.
- * Die sprachspezifischen Genehmigungen und Beschränkungen
- * unter der Lizenz sind dem Lizenztext zu entnehmen.
- */
-import { BescheidService } from '@alfa-client/bescheid-shared';
-import { CommandResource } from '@alfa-client/command-shared';
-import {
-  StateResource,
-  createEmptyStateResource,
-  createStateResource,
-} from '@alfa-client/tech-shared';
-import { Mock, mock } from '@alfa-client/test-utils';
-import { OzgcloudDialogService, OzgcloudStrokedButtonWithSpinnerComponent } from '@alfa-client/ui';
-import { VorgangService, VorgangWithEingangResource } from '@alfa-client/vorgang-shared';
-import { DialogRef } from '@angular/cdk/dialog';
-import { ComponentFixture, TestBed } from '@angular/core/testing';
-import { MatIcon } from '@angular/material/icon';
-import { cold } from 'jest-marbles';
-import { MockComponent } from 'ng-mocks';
-import { of } from 'rxjs';
-import { CommandLinkRel } from '../../../../../../../../command-shared/src/lib/command.linkrel';
-import { createCommandResource } from '../../../../../../../../command-shared/test/command';
-import { createVorgangWithEingangResource } from '../../../../../../../../vorgang-shared/test/vorgang';
-import { VorgangDetailBescheidenUeberspringenDialogComponent } from './vorgang-detail-bescheiden-ueberspringen-dialog.component';
-
-describe('VorgangDetailBescheidenUeberspringenButtonComponent', () => {
-  let component: VorgangDetailBescheidenUeberspringenDialogComponent;
-  let fixture: ComponentFixture<VorgangDetailBescheidenUeberspringenDialogComponent>;
-
-  let dialogRef: Mock<DialogRef>;
-  let bescheidService: Mock<BescheidService>;
-  let ozgcloudDialogService: Mock<OzgcloudDialogService>;
-  let vorgangService: Mock<VorgangService>;
-
-  beforeEach(async () => {
-    dialogRef = mock(DialogRef);
-    bescheidService = mock(BescheidService);
-    ozgcloudDialogService = mock(OzgcloudDialogService);
-    vorgangService = mock(VorgangService);
-
-    await TestBed.configureTestingModule({
-      declarations: [
-        VorgangDetailBescheidenUeberspringenDialogComponent,
-        MockComponent(OzgcloudStrokedButtonWithSpinnerComponent),
-        MockComponent(MatIcon),
-      ],
-      providers: [
-        {
-          provide: DialogRef,
-          useValue: dialogRef,
-        },
-        {
-          provide: BescheidService,
-          useValue: bescheidService,
-        },
-        {
-          provide: OzgcloudDialogService,
-          useValue: ozgcloudDialogService,
-        },
-        {
-          provide: VorgangService,
-          useValue: vorgangService,
-        },
-      ],
-    }).compileComponents();
-
-    fixture = TestBed.createComponent(VorgangDetailBescheidenUeberspringenDialogComponent);
-    component = fixture.componentInstance;
-    fixture.detectChanges();
-  });
-
-  it('should create', () => {
-    expect(component).toBeTruthy();
-  });
-
-  describe('onCancel', () => {
-    it('should close dialog', () => {
-      component.onCancel();
-
-      expect(dialogRef.close).toHaveBeenCalled();
-    });
-  });
-
-  describe('onConfirm', () => {
-    let vorgangWithEingangResource: VorgangWithEingangResource;
-    const successfullyDoneCommandStateResource: StateResource<CommandResource> =
-      createStateResource(createCommandResource([CommandLinkRel.EFFECTED_RESOURCE]));
-
-    beforeEach(() => {
-      vorgangWithEingangResource = createVorgangWithEingangResource();
-      vorgangService.getVorgangWithEingang.mockReturnValue(
-        of(createStateResource(vorgangWithEingangResource)),
-      );
-      bescheidService.bescheidErstellungUeberspringen.mockReturnValue(
-        of(successfullyDoneCommandStateResource),
-      );
-    });
-
-    it('should get vorgang with eingang', () => {
-      component.onConfirm();
-
-      expect(vorgangService.getVorgangWithEingang).toHaveBeenCalled();
-    });
-
-    it('should call bescheid service erstellung ueberspringen', (done) => {
-      component.onConfirm();
-
-      component.bescheiderstellungUeberspringen$.subscribe(() => {
-        expect(bescheidService.bescheidErstellungUeberspringen).toHaveBeenCalledWith(
-          vorgangWithEingangResource,
-        );
-        done();
-      });
-    });
-
-    it('should close all dialogs on success', (done) => {
-      component.onConfirm();
-
-      component.bescheiderstellungUeberspringen$.subscribe(() => {
-        expect(ozgcloudDialogService.closeAll).toHaveBeenCalled();
-        done();
-      });
-    });
-
-    it('should not close all dialogs on command not done successfully', (done) => {
-      bescheidService.bescheidErstellungUeberspringen.mockReturnValue(
-        of(createEmptyStateResource()),
-      );
-
-      component.onConfirm();
-
-      component.bescheiderstellungUeberspringen$.subscribe(() => {
-        expect(ozgcloudDialogService.closeAll).not.toHaveBeenCalled();
-        done();
-      });
-    });
-
-    it('should return command', () => {
-      component.onConfirm();
-
-      expect(component.bescheiderstellungUeberspringen$).toBeObservable(
-        cold('(a|)', { a: successfullyDoneCommandStateResource }),
-      );
-    });
-  });
-
-  describe('onClose', () => {
-    it('should close dialog', () => {
-      component.onClose();
-
-      expect(dialogRef.close).toHaveBeenCalled();
-    });
-  });
-});
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-ueberspringen-dialog/vorgang-detail-bescheiden-ueberspringen-dialog.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-ueberspringen-dialog/vorgang-detail-bescheiden-ueberspringen-dialog.component.ts
deleted file mode 100644
index c960ee26ac2d189260e5afa2ec4ce95ef56ec95b..0000000000000000000000000000000000000000
--- 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-ueberspringen-dialog/vorgang-detail-bescheiden-ueberspringen-dialog.component.ts
+++ /dev/null
@@ -1,68 +0,0 @@
-/*
- * Copyright (C) 2024 Das Land Schleswig-Holstein vertreten durch den
- * Ministerpräsidenten des Landes Schleswig-Holstein
- * Staatskanzlei
- * Abteilung Digitalisierung und zentrales IT-Management der Landesregierung
- *
- * Lizenziert unter der EUPL, Version 1.2 oder - sobald
- * diese von der Europäischen Kommission genehmigt wurden -
- * Folgeversionen der EUPL ("Lizenz");
- * Sie dürfen dieses Werk ausschließlich gemäß
- * dieser Lizenz nutzen.
- * Eine Kopie der Lizenz finden Sie hier:
- *
- * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
- *
- * Sofern nicht durch anwendbare Rechtsvorschriften
- * gefordert oder in schriftlicher Form vereinbart, wird
- * die unter der Lizenz verbreitete Software "so wie sie
- * ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN -
- * ausdrücklich oder stillschweigend - verbreitet.
- * Die sprachspezifischen Genehmigungen und Beschränkungen
- * unter der Lizenz sind dem Lizenztext zu entnehmen.
- */
-import { BescheidService } from '@alfa-client/bescheid-shared';
-import { CommandResource, tapOnCommandSuccessfullyDone } from '@alfa-client/command-shared';
-import { StateResource, isLoaded } from '@alfa-client/tech-shared';
-import { OzgcloudDialogService } from '@alfa-client/ui';
-import { VorgangService } from '@alfa-client/vorgang-shared';
-import { DialogRef } from '@angular/cdk/dialog';
-import { Component } from '@angular/core';
-import { Observable, filter, first, switchMap } from 'rxjs';
-
-@Component({
-  selector: 'alfa-vorgang-detail-bescheiden-ueberspringen-dialog',
-  templateUrl: './vorgang-detail-bescheiden-ueberspringen-dialog.component.html',
-})
-export class VorgangDetailBescheidenUeberspringenDialogComponent {
-  bescheiderstellungUeberspringen$: Observable<StateResource<CommandResource>>;
-
-  constructor(
-    private readonly dialogRef: DialogRef,
-    private readonly bescheidService: BescheidService,
-    private readonly ozgcloudDialogService: OzgcloudDialogService,
-    private readonly vorgangService: VorgangService,
-  ) {}
-
-  public onClose(): void {
-    this.dialogRef.close();
-  }
-
-  public onConfirm(): void {
-    this.bescheiderstellungUeberspringen$ = this.vorgangService.getVorgangWithEingang().pipe(
-      filter(isLoaded),
-      first(),
-      switchMap((stateResource) =>
-        this.bescheidService.bescheidErstellungUeberspringen(stateResource.resource).pipe(
-          tapOnCommandSuccessfullyDone(() => {
-            this.ozgcloudDialogService.closeAll();
-          }),
-        ),
-      ),
-    );
-  }
-
-  public onCancel(): void {
-    this.dialogRef.close();
-  }
-}
diff --git a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps.component.html b/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps.component.html
deleted file mode 100644
index 5036dc81f87a4906d55be87f32a538b6e50679aa..0000000000000000000000000000000000000000
--- a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps.component.html
+++ /dev/null
@@ -1,34 +0,0 @@
-<!--
-
-    Copyright (C) 2024 Das Land Schleswig-Holstein vertreten durch den
-    Ministerpräsidenten des Landes Schleswig-Holstein
-    Staatskanzlei
-    Abteilung Digitalisierung und zentrales IT-Management der Landesregierung
-
-    Lizenziert unter der EUPL, Version 1.2 oder - sobald
-    diese von der Europäischen Kommission genehmigt wurden -
-    Folgeversionen der EUPL ("Lizenz");
-    Sie dürfen dieses Werk ausschließlich gemäß
-    dieser Lizenz nutzen.
-    Eine Kopie der Lizenz finden Sie hier:
-
-    https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
-
-    Sofern nicht durch anwendbare Rechtsvorschriften
-    gefordert oder in schriftlicher Form vereinbart, wird
-    die unter der Lizenz verbreitete Software "so wie sie
-    ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN -
-    ausdrücklich oder stillschweigend - verbreitet.
-    Die sprachspezifischen Genehmigungen und Beschränkungen
-    unter der Lizenz sind dem Lizenztext zu entnehmen.
-
--->
-<div class="flex w-full flex-row gap-7" role="tablist" aria-orientation="vertical">
-  <alfa-vorgang-detail-bescheiden-step-buttons
-    [(activeStep)]="activeStep"
-  ></alfa-vorgang-detail-bescheiden-step-buttons>
-  <alfa-vorgang-detail-bescheiden-steps-content
-    class="flex-1"
-    [(activeStep)]="activeStep"
-  ></alfa-vorgang-detail-bescheiden-steps-content>
-</div>
diff --git a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps.component.spec.ts b/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps.component.spec.ts
deleted file mode 100644
index 3f3fe9261b3e5fda926612eb2714c91df04f6079..0000000000000000000000000000000000000000
--- a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps.component.spec.ts
+++ /dev/null
@@ -1,63 +0,0 @@
-/*
- * Copyright (C) 2024 Das Land Schleswig-Holstein vertreten durch den
- * Ministerpräsidenten des Landes Schleswig-Holstein
- * Staatskanzlei
- * Abteilung Digitalisierung und zentrales IT-Management der Landesregierung
- *
- * Lizenziert unter der EUPL, Version 1.2 oder - sobald
- * diese von der Europäischen Kommission genehmigt wurden -
- * Folgeversionen der EUPL ("Lizenz");
- * Sie dürfen dieses Werk ausschließlich gemäß
- * dieser Lizenz nutzen.
- * Eine Kopie der Lizenz finden Sie hier:
- *
- * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
- *
- * Sofern nicht durch anwendbare Rechtsvorschriften
- * gefordert oder in schriftlicher Form vereinbart, wird
- * die unter der Lizenz verbreitete Software "so wie sie
- * ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN -
- * ausdrücklich oder stillschweigend - verbreitet.
- * Die sprachspezifischen Genehmigungen und Beschränkungen
- * unter der Lizenz sind dem Lizenztext zu entnehmen.
- */
-import { ComponentFixture, TestBed } from '@angular/core/testing';
-import { MockComponent } from 'ng-mocks';
-import { VorgangDetailBescheidenStepButtonsComponent } from './vorgang-detail-bescheiden-step-buttons/vorgang-detail-bescheiden-step-buttons.component';
-import { VorgangDetailBescheidenStepsContentComponent } from './vorgang-detail-bescheiden-steps-content/vorgang-detail-bescheiden-steps-content.component';
-import { VorgangDetailBescheidenStepsComponent } from './vorgang-detail-bescheiden-steps.component';
-import { VorgangDetailBescheidenWeiterButtonComponent } from './vorgang-detail-bescheiden-weiter-button/vorgang-detail-bescheiden-weiter-button.component';
-
-describe('VorgangDetailBescheidenStepsComponent', () => {
-  let component: VorgangDetailBescheidenStepsComponent;
-  let fixture: ComponentFixture<VorgangDetailBescheidenStepsComponent>;
-
-  beforeEach(async () => {
-    await TestBed.configureTestingModule({
-      declarations: [
-        VorgangDetailBescheidenStepsComponent,
-        MockComponent(VorgangDetailBescheidenStepButtonsComponent),
-        MockComponent(VorgangDetailBescheidenWeiterButtonComponent),
-        MockComponent(VorgangDetailBescheidenStepsContentComponent),
-      ],
-    }).compileComponents();
-
-    fixture = TestBed.createComponent(VorgangDetailBescheidenStepsComponent);
-    component = fixture.componentInstance;
-    fixture.detectChanges();
-  });
-
-  it('should create', () => {
-    expect(component).toBeTruthy();
-  });
-
-  describe('changeActiveStep', () => {
-    it('should set activeStep', () => {
-      const step: number = 1;
-
-      component.changeActiveStep(step);
-
-      expect(component.activeStep).toBe(step);
-    });
-  });
-});
diff --git a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps.component.ts b/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps.component.ts
deleted file mode 100644
index c77004f343469a304d8b498a52223b77b5452da0..0000000000000000000000000000000000000000
--- a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps.component.ts
+++ /dev/null
@@ -1,36 +0,0 @@
-/*
- * Copyright (C) 2024 Das Land Schleswig-Holstein vertreten durch den
- * Ministerpräsidenten des Landes Schleswig-Holstein
- * Staatskanzlei
- * Abteilung Digitalisierung und zentrales IT-Management der Landesregierung
- *
- * Lizenziert unter der EUPL, Version 1.2 oder - sobald
- * diese von der Europäischen Kommission genehmigt wurden -
- * Folgeversionen der EUPL ("Lizenz");
- * Sie dürfen dieses Werk ausschließlich gemäß
- * dieser Lizenz nutzen.
- * Eine Kopie der Lizenz finden Sie hier:
- *
- * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
- *
- * Sofern nicht durch anwendbare Rechtsvorschriften
- * gefordert oder in schriftlicher Form vereinbart, wird
- * die unter der Lizenz verbreitete Software "so wie sie
- * ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN -
- * ausdrücklich oder stillschweigend - verbreitet.
- * Die sprachspezifischen Genehmigungen und Beschränkungen
- * unter der Lizenz sind dem Lizenztext zu entnehmen.
- */
-import { Component, Input } from '@angular/core';
-
-@Component({
-  selector: 'alfa-vorgang-detail-bescheiden-steps',
-  templateUrl: './vorgang-detail-bescheiden-steps.component.html',
-})
-export class VorgangDetailBescheidenStepsComponent {
-  @Input() activeStep: number = 1;
-
-  public changeActiveStep(step: number): void {
-    this.activeStep = step;
-  }
-}
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.html 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.html
deleted file mode 100644
index 49e6a9a7906c47445d2c667004494a94170ee84d..0000000000000000000000000000000000000000
--- 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.html
+++ /dev/null
@@ -1,36 +0,0 @@
-<!--
-
-    Copyright (C) 2024 Das Land Schleswig-Holstein vertreten durch den
-    Ministerpräsidenten des Landes Schleswig-Holstein
-    Staatskanzlei
-    Abteilung Digitalisierung und zentrales IT-Management der Landesregierung
-
-    Lizenziert unter der EUPL, Version 1.2 oder - sobald
-    diese von der Europäischen Kommission genehmigt wurden -
-    Folgeversionen der EUPL ("Lizenz");
-    Sie dürfen dieses Werk ausschließlich gemäß
-    dieser Lizenz nutzen.
-    Eine Kopie der Lizenz finden Sie hier:
-
-    https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
-
-    Sofern nicht durch anwendbare Rechtsvorschriften
-    gefordert oder in schriftlicher Form vereinbart, wird
-    die unter der Lizenz verbreitete Software "so wie sie
-    ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN -
-    ausdrücklich oder stillschweigend - verbreitet.
-    Die sprachspezifischen Genehmigungen und Beschränkungen
-    unter der Lizenz sind dem Lizenztext zu entnehmen.
-
--->
-<ods-button-with-spinner
-  *ngIf="showButton$ | async"
-  (clickEmitter)="clickEmitter.emit()"
-  [stateResource]="submitResource"
-  variant="primary"
-  size="medium"
-  class="mt-8 flex"
-  dataTestId="bescheid-weiter-button"
-  text="Weiter"
->
-</ods-button-with-spinner>
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.spec.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.spec.ts
deleted file mode 100644
index 510d50d1bc34aac1039966aad3cc53fe389cbc42..0000000000000000000000000000000000000000
--- 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.spec.ts
+++ /dev/null
@@ -1,114 +0,0 @@
-/*
- * Copyright (C) 2024 Das Land Schleswig-Holstein vertreten durch den
- * Ministerpräsidenten des Landes Schleswig-Holstein
- * Staatskanzlei
- * Abteilung Digitalisierung und zentrales IT-Management der Landesregierung
- *
- * Lizenziert unter der EUPL, Version 1.2 oder - sobald
- * diese von der Europäischen Kommission genehmigt wurden -
- * Folgeversionen der EUPL ("Lizenz");
- * Sie dürfen dieses Werk ausschließlich gemäß
- * dieser Lizenz nutzen.
- * Eine Kopie der Lizenz finden Sie hier:
- *
- * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
- *
- * Sofern nicht durch anwendbare Rechtsvorschriften
- * gefordert oder in schriftlicher Form vereinbart, wird
- * die unter der Lizenz verbreitete Software "so wie sie
- * ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN -
- * ausdrücklich oder stillschweigend - verbreitet.
- * Die sprachspezifischen Genehmigungen und Beschränkungen
- * unter der Lizenz sind dem Lizenztext zu entnehmen.
- */
-import { BescheidLinkRel, BescheidService } from '@alfa-client/bescheid-shared';
-import { createStateResource } from '@alfa-client/tech-shared';
-import { Mock, mock } from '@alfa-client/test-utils';
-import { VorgangService, VorgangWithEingangLinkRel } from '@alfa-client/vorgang-shared';
-import { ComponentFixture, TestBed } from '@angular/core/testing';
-import { cold } from 'jest-marbles';
-import { EMPTY, of } from 'rxjs';
-import { createBescheidResource } from '../../../../../../../bescheid-shared/src/test/bescheid';
-import { createVorgangWithEingangResource } from '../../../../../../../vorgang-shared/test/vorgang';
-import { BescheidenFormService } from '../../bescheiden.formservice';
-import { VorgangDetailBescheidenWeiterButtonComponent } from './vorgang-detail-bescheiden-weiter-button.component';
-
-describe('VorgangDetailBescheidenWeiterButtonComponent', () => {
-  let component: VorgangDetailBescheidenWeiterButtonComponent;
-  let fixture: ComponentFixture<VorgangDetailBescheidenWeiterButtonComponent>;
-
-  let formService: Mock<BescheidenFormService>;
-  let bescheidService: Mock<BescheidService>;
-  let vorgangService: Mock<VorgangService>;
-
-  beforeEach(async () => {
-    formService = mock(BescheidenFormService);
-    bescheidService = mock(BescheidService);
-    vorgangService = mock(VorgangService);
-    bescheidService.getBescheidDraftIfExists.mockReturnValue(EMPTY);
-    vorgangService.getVorgangWithEingang.mockReturnValue(EMPTY);
-
-    await TestBed.configureTestingModule({
-      declarations: [VorgangDetailBescheidenWeiterButtonComponent],
-      providers: [
-        {
-          provide: BescheidenFormService,
-          useValue: formService,
-        },
-        {
-          provide: BescheidService,
-          useValue: bescheidService,
-        },
-        {
-          provide: VorgangService,
-          useValue: vorgangService,
-        },
-      ],
-    }).compileComponents();
-
-    fixture = TestBed.createComponent(VorgangDetailBescheidenWeiterButtonComponent);
-    component = fixture.componentInstance;
-    fixture.detectChanges();
-  });
-
-  it('should create', () => {
-    expect(component).toBeTruthy();
-  });
-
-  describe('ngOnInit', () => {
-    it('should show button if update link available', () => {
-      const bescheidResource = createBescheidResource([BescheidLinkRel.UPDATE]);
-      bescheidService.getBescheidDraftIfExists.mockReturnValue(
-        of(createStateResource(bescheidResource)),
-      );
-
-      component.ngOnInit();
-
-      expect(component.showButton$).toBeObservable(cold('(a|)', { a: true }));
-    });
-
-    it('should not show button if update link unavailable', () => {
-      const bescheidResource = createBescheidResource();
-      bescheidService.getBescheidDraftIfExists.mockReturnValue(
-        of(createStateResource(bescheidResource)),
-      );
-
-      component.ngOnInit();
-
-      expect(component.showButton$).toBeObservable(cold('(a|)', { a: false }));
-    });
-
-    it('should show button if create bescheid draft link available', () => {
-      const vorgangWithEingangResource = createVorgangWithEingangResource([
-        VorgangWithEingangLinkRel.CREATE_BESCHEID_DRAFT,
-      ]);
-      vorgangService.getVorgangWithEingang.mockReturnValue(
-        of(createStateResource(vorgangWithEingangResource)),
-      );
-
-      component.ngOnInit();
-
-      expect(component.showButton$).toBeObservable(cold('(a|)', { a: true }));
-    });
-  });
-});
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
deleted file mode 100644
index 8a231cf355b524c3556ce59914bcb001b222d2e0..0000000000000000000000000000000000000000
--- 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
+++ /dev/null
@@ -1,61 +0,0 @@
-/*
- * Copyright (C) 2024 Das Land Schleswig-Holstein vertreten durch den
- * Ministerpräsidenten des Landes Schleswig-Holstein
- * Staatskanzlei
- * Abteilung Digitalisierung und zentrales IT-Management der Landesregierung
- *
- * Lizenziert unter der EUPL, Version 1.2 oder - sobald
- * diese von der Europäischen Kommission genehmigt wurden -
- * Folgeversionen der EUPL ("Lizenz");
- * Sie dürfen dieses Werk ausschließlich gemäß
- * dieser Lizenz nutzen.
- * Eine Kopie der Lizenz finden Sie hier:
- *
- * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
- *
- * Sofern nicht durch anwendbare Rechtsvorschriften
- * gefordert oder in schriftlicher Form vereinbart, wird
- * die unter der Lizenz verbreitete Software "so wie sie
- * ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN -
- * ausdrücklich oder stillschweigend - verbreitet.
- * Die sprachspezifischen Genehmigungen und Beschränkungen
- * unter der Lizenz sind dem Lizenztext zu entnehmen.
- */
-import { BescheidLinkRel, BescheidService } from '@alfa-client/bescheid-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';
-import { Observable, filter, map, merge } from 'rxjs';
-import { BescheidenFormService } from '../../bescheiden.formservice';
-
-@Component({
-  selector: 'alfa-vorgang-detail-bescheiden-weiter-button',
-  templateUrl: './vorgang-detail-bescheiden-weiter-button.component.html',
-})
-export class VorgangDetailBescheidenWeiterButtonComponent implements OnInit {
-  @Input() submitResource: StateResource<Resource> = createEmptyStateResource();
-  @Output() clickEmitter: EventEmitter<MouseEvent> = new EventEmitter<MouseEvent>();
-
-  showButton$: Observable<boolean>;
-
-  constructor(
-    public formService: BescheidenFormService,
-    private readonly bescheidService: BescheidService,
-    private readonly vorgangService: VorgangService,
-  ) {}
-
-  ngOnInit(): void {
-    this.showButton$ = merge(
-      this.vorgangService.getVorgangWithEingang(),
-      this.bescheidService.getBescheidDraftIfExists(),
-    ).pipe(
-      filter(isLoaded),
-      map(
-        (stateResource) =>
-          hasLink(stateResource.resource, VorgangWithEingangLinkRel.CREATE_BESCHEID_DRAFT) ||
-          hasLink(stateResource.resource, BescheidLinkRel.UPDATE),
-      ),
-    );
-  }
-}
diff --git a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden.component.html b/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden.component.html
deleted file mode 100644
index da99c64248a271a75a7a429e570b7146c1fa2baa..0000000000000000000000000000000000000000
--- a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden.component.html
+++ /dev/null
@@ -1,54 +0,0 @@
-<!--
-
-    Copyright (C) 2024 Das Land Schleswig-Holstein vertreten durch den
-    Ministerpräsidenten des Landes Schleswig-Holstein
-    Staatskanzlei
-    Abteilung Digitalisierung und zentrales IT-Management der Landesregierung
-
-    Lizenziert unter der EUPL, Version 1.2 oder - sobald
-    diese von der Europäischen Kommission genehmigt wurden -
-    Folgeversionen der EUPL ("Lizenz");
-    Sie dürfen dieses Werk ausschließlich gemäß
-    dieser Lizenz nutzen.
-    Eine Kopie der Lizenz finden Sie hier:
-
-    https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
-
-    Sofern nicht durch anwendbare Rechtsvorschriften
-    gefordert oder in schriftlicher Form vereinbart, wird
-    die unter der Lizenz verbreitete Software "so wie sie
-    ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN -
-    ausdrücklich oder stillschweigend - verbreitet.
-    Die sprachspezifischen Genehmigungen und Beschränkungen
-    unter der Lizenz sind dem Lizenztext zu entnehmen.
-
--->
-<div
-  class="relative z-10 duration-500 ease-in-out"
-  aria-label="Bescheid Dialog"
-  role="dialog"
-  aria-modal="true"
-  data-test-id="bescheid-wizard"
->
-  <div class="fixed inset-0 z-10 w-screen overflow-y-auto">
-    <div class="flex h-full items-center justify-center p-8">
-      <div
-        class="relative h-full w-full max-w-7xl transform overflow-hidden rounded-lg bg-background-200 px-6 py-10 text-left shadow-xl transition-all"
-      >
-        <alfa-vorgang-detail-bescheiden-abbrechen-button
-          (clickEmitter)="cancelWizard()"
-        ></alfa-vorgang-detail-bescheiden-abbrechen-button>
-        <form [formGroup]="formService.form" class="flex h-full flex-row gap-11">
-          <alfa-vorgang-detail-bescheiden-steps
-            class="flex w-1/2"
-          ></alfa-vorgang-detail-bescheiden-steps>
-          <alfa-vorgang-detail-bescheiden-result
-            data-test-id="bescheiden-result"
-            (closeDialog)="onClose()"
-            class="flex w-1/2"
-          ></alfa-vorgang-detail-bescheiden-result>
-        </form>
-      </div>
-    </div>
-  </div>
-</div>
diff --git a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden.component.spec.ts b/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden.component.spec.ts
deleted file mode 100644
index b976d702d642721c317985fad672a8fe7b94fd48..0000000000000000000000000000000000000000
--- a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden.component.spec.ts
+++ /dev/null
@@ -1,210 +0,0 @@
-/*
- * Copyright (C) 2024 Das Land Schleswig-Holstein vertreten durch den
- * Ministerpräsidenten des Landes Schleswig-Holstein
- * Staatskanzlei
- * Abteilung Digitalisierung und zentrales IT-Management der Landesregierung
- *
- * Lizenziert unter der EUPL, Version 1.2 oder - sobald
- * diese von der Europäischen Kommission genehmigt wurden -
- * Folgeversionen der EUPL ("Lizenz");
- * Sie dürfen dieses Werk ausschließlich gemäß
- * dieser Lizenz nutzen.
- * Eine Kopie der Lizenz finden Sie hier:
- *
- * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
- *
- * Sofern nicht durch anwendbare Rechtsvorschriften
- * gefordert oder in schriftlicher Form vereinbart, wird
- * die unter der Lizenz verbreitete Software "so wie sie
- * ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN -
- * ausdrücklich oder stillschweigend - verbreitet.
- * Die sprachspezifischen Genehmigungen und Beschränkungen
- * unter der Lizenz sind dem Lizenztext zu entnehmen.
- */
-import { BescheidResource, BescheidService } from '@alfa-client/bescheid-shared';
-import { PostfachService } from '@alfa-client/postfach-shared';
-import { Mock, dispatchEventFromFixture, mock, useFromMock } from '@alfa-client/test-utils';
-import { OzgcloudDialogService } from '@alfa-client/ui';
-import { VorgangService, VorgangWithEingangResource } from '@alfa-client/vorgang-shared';
-import { DIALOG_DATA, DialogRef } from '@angular/cdk/dialog';
-import { ComponentFixture, TestBed } from '@angular/core/testing';
-import { ReactiveFormsModule, UntypedFormBuilder } from '@angular/forms';
-import { MatIcon } from '@angular/material/icon';
-import { getDataTestIdOf } from 'libs/tech-shared/test/data-test';
-import { MockComponent } from 'ng-mocks';
-import { Subscription, of } from 'rxjs';
-import { createBescheidResource } from '../../../../../bescheid-shared/src/test/bescheid';
-import { createVorgangWithEingangResource } from '../../../../../vorgang-shared/test/vorgang';
-import { BescheidenFormService } from './bescheiden.formservice';
-import { VorgangDetailBescheidenResultComponent } from './vorgang-detail-bescheiden-result/vorgang-detail-bescheiden-result.component';
-import { VorgangDetailBescheidenAbbrechenButtonComponent } from './vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps-content/vorgang-detail-bescheiden-abbrechen-button/vorgang-detail-bescheiden-abbrechen-button.component';
-import { VorgangDetailBescheidenAbbrechenDialogComponent } from './vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps-content/vorgang-detail-bescheiden-abbrechen-dialog/vorgang-detail-bescheiden-abbrechen-dialog.component';
-import { VorgangDetailBescheidenStepsComponent } from './vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps.component';
-import { VorgangDetailBescheidenComponent } from './vorgang-detail-bescheiden.component';
-
-describe('VorgangDetailBescheidenComponent', () => {
-  let component: VorgangDetailBescheidenComponent;
-  let fixture: ComponentFixture<VorgangDetailBescheidenComponent>;
-
-  let bescheidService: Mock<BescheidService>;
-  let vorgangService: Mock<VorgangService>;
-  let formService: BescheidenFormService;
-  let postfachService: Mock<PostfachService>;
-  let ozgcloudDialogService: Mock<OzgcloudDialogService>;
-
-  let vorgangWithEingangResource: VorgangWithEingangResource;
-  let bescheidDraftResource: BescheidResource;
-
-  const bescheidenResult: string = getDataTestIdOf('bescheiden-result');
-
-  beforeEach(async () => {
-    bescheidService = mock(BescheidService);
-    vorgangService = mock(VorgangService);
-    formService = new BescheidenFormService(new UntypedFormBuilder(), useFromMock(bescheidService));
-    postfachService = mock(PostfachService);
-    ozgcloudDialogService = mock(OzgcloudDialogService);
-
-    vorgangWithEingangResource = createVorgangWithEingangResource();
-    bescheidDraftResource = createBescheidResource();
-
-    TestBed.overrideComponent(VorgangDetailBescheidenComponent, {
-      set: {
-        providers: [
-          {
-            provide: BescheidenFormService,
-            useValue: formService,
-          },
-        ],
-      },
-    });
-    await TestBed.configureTestingModule({
-      declarations: [
-        VorgangDetailBescheidenComponent,
-        MockComponent(VorgangDetailBescheidenStepsComponent),
-        MockComponent(VorgangDetailBescheidenResultComponent),
-        MockComponent(VorgangDetailBescheidenAbbrechenButtonComponent),
-        MockComponent(MatIcon),
-      ],
-      providers: [
-        {
-          provide: BescheidService,
-          useValue: bescheidService,
-        },
-        {
-          provide: VorgangService,
-          useValue: vorgangService,
-        },
-        {
-          provide: DialogRef,
-          useValue: { keydownEvents: of(KeyboardEvent), close: jest.fn(), disableClose: false },
-        },
-        {
-          provide: DIALOG_DATA,
-          useValue: { vorgangWithEingangResource, bescheidDraftResource },
-        },
-        {
-          provide: PostfachService,
-          useValue: postfachService,
-        },
-        {
-          provide: OzgcloudDialogService,
-          useValue: ozgcloudDialogService,
-        },
-      ],
-      imports: [ReactiveFormsModule],
-    }).compileComponents();
-
-    fixture = TestBed.createComponent(VorgangDetailBescheidenComponent);
-    component = fixture.componentInstance;
-
-    fixture.detectChanges();
-  });
-
-  it('should create', () => {
-    expect(component).toBeTruthy();
-  });
-
-  describe('ngOnInit', () => {
-    it('should set vorgang on form service', () => {
-      const setVorgangWithEingangResource = (formService.setVorgangWithEingangResource = jest.fn());
-
-      component.ngOnInit();
-
-      expect(setVorgangWithEingangResource).toHaveBeenCalledWith(vorgangWithEingangResource);
-    });
-
-    it('should patch values', () => {
-      const patchValues = (formService.patchValues = jest.fn());
-
-      component.ngOnInit();
-
-      expect(patchValues).toHaveBeenCalledWith(bescheidDraftResource);
-    });
-
-    it('should call handleEscapeKey', () => {
-      component.handleEscapeKey = jest.fn();
-
-      component.ngOnInit();
-
-      expect(component.handleEscapeKey).toHaveBeenCalled();
-    });
-  });
-
-  describe('handleEscapeKey', () => {
-    it('should subscribe to dialogRef.keydownEvents', () => {
-      component.handleEscapeKey();
-
-      expect(component.keydownEventsSubscription).toBeInstanceOf(Subscription);
-    });
-  });
-
-  describe('ngOnDestroy', () => {
-    it('should unsubscribe keydownEventsSubscription', () => {
-      component.keydownEventsSubscription = new Subscription();
-      jest.spyOn(component.keydownEventsSubscription, 'unsubscribe');
-
-      component.ngOnDestroy();
-
-      expect(component.keydownEventsSubscription.unsubscribe).toHaveBeenCalled();
-    });
-  });
-
-  describe('onClose', () => {
-    it('should call dialogRef.close', () => {
-      component.onClose();
-
-      expect(component.dialogRef.close).toHaveBeenCalled();
-    });
-
-    it('should call vorgang service to reload current vorgang', () => {
-      component.onClose();
-
-      expect(vorgangService.reloadCurrentVorgang).toHaveBeenCalled();
-    });
-
-    it('should reload postfach mail list', () => {
-      component.onClose();
-
-      expect(postfachService.setPostfachMailOnReload).toHaveBeenCalled();
-    });
-  });
-
-  describe('close dialog on bescheiden result', () => {
-    it('should close dialog ref', () => {
-      dispatchEventFromFixture(fixture, bescheidenResult, 'closeDialog');
-
-      expect(component.dialogRef.close).toHaveBeenCalled();
-    });
-  });
-
-  describe('cancelWizard', () => {
-    it('should call ozgcloudDialogService.open', () => {
-      component.cancelWizard();
-
-      expect(ozgcloudDialogService.openInCallingComponentContext).toHaveBeenCalledWith(
-        VorgangDetailBescheidenAbbrechenDialogComponent,
-        component.viewContainerRef,
-      );
-    });
-  });
-});
diff --git a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden.component.ts b/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden.component.ts
deleted file mode 100644
index 24f030b71967c3b4ea1a4d4f9c0e3ad3a780166d..0000000000000000000000000000000000000000
--- a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden.component.ts
+++ /dev/null
@@ -1,88 +0,0 @@
-/*
- * Copyright (C) 2024 Das Land Schleswig-Holstein vertreten durch den
- * Ministerpräsidenten des Landes Schleswig-Holstein
- * Staatskanzlei
- * Abteilung Digitalisierung und zentrales IT-Management der Landesregierung
- *
- * Lizenziert unter der EUPL, Version 1.2 oder - sobald
- * diese von der Europäischen Kommission genehmigt wurden -
- * Folgeversionen der EUPL ("Lizenz");
- * Sie dürfen dieses Werk ausschließlich gemäß
- * dieser Lizenz nutzen.
- * Eine Kopie der Lizenz finden Sie hier:
- *
- * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
- *
- * Sofern nicht durch anwendbare Rechtsvorschriften
- * gefordert oder in schriftlicher Form vereinbart, wird
- * die unter der Lizenz verbreitete Software "so wie sie
- * ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN -
- * ausdrücklich oder stillschweigend - verbreitet.
- * Die sprachspezifischen Genehmigungen und Beschränkungen
- * unter der Lizenz sind dem Lizenztext zu entnehmen.
- */
-import { BescheidResource } from '@alfa-client/bescheid-shared';
-import { PostfachService } from '@alfa-client/postfach-shared';
-import { isEscapeKey } from '@alfa-client/tech-shared';
-import { OzgcloudDialogService } from '@alfa-client/ui';
-import { VorgangService } from '@alfa-client/vorgang-shared';
-import { DIALOG_DATA, DialogRef } from '@angular/cdk/dialog';
-import { Component, Inject, OnDestroy, OnInit, ViewContainerRef } from '@angular/core';
-import { Subscription, filter } from 'rxjs';
-import { BescheidenFormService } from './bescheiden.formservice';
-import { BescheidenDialogData } from './bescheiden.model';
-import { VorgangDetailBescheidenAbbrechenDialogComponent } from './vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps-content/vorgang-detail-bescheiden-abbrechen-dialog/vorgang-detail-bescheiden-abbrechen-dialog.component';
-
-@Component({
-  selector: 'alfa-vorgang-detail-bescheiden',
-  templateUrl: './vorgang-detail-bescheiden.component.html',
-  providers: [BescheidenFormService],
-})
-export class VorgangDetailBescheidenComponent implements OnDestroy, OnInit {
-  private readonly bescheidDraftResource: BescheidResource;
-
-  keydownEventsSubscription: Subscription;
-
-  public activeStep: number = 1;
-
-  constructor(
-    public dialogRef: DialogRef,
-    public readonly formService: BescheidenFormService,
-    private readonly vorgangService: VorgangService,
-    private readonly postfachService: PostfachService,
-    @Inject(DIALOG_DATA) private readonly dialogData: BescheidenDialogData,
-    private readonly ozgcloudDialogService: OzgcloudDialogService,
-    readonly viewContainerRef: ViewContainerRef,
-  ) {
-    this.bescheidDraftResource = dialogData.bescheidDraftResource;
-  }
-
-  ngOnInit(): void {
-    this.formService.setVorgangWithEingangResource(this.dialogData.vorgangWithEingangResource);
-    this.formService.patchValues(this.bescheidDraftResource);
-    this.handleEscapeKey();
-  }
-
-  handleEscapeKey(): void {
-    this.keydownEventsSubscription = this.dialogRef.keydownEvents
-      .pipe(filter(isEscapeKey))
-      .subscribe(() => this.cancelWizard());
-  }
-
-  ngOnDestroy(): void {
-    this.keydownEventsSubscription.unsubscribe();
-  }
-
-  public onClose(): void {
-    this.dialogRef.close();
-    this.vorgangService.reloadCurrentVorgang();
-    this.postfachService.setPostfachMailOnReload();
-  }
-
-  public cancelWizard(): void {
-    this.ozgcloudDialogService.openInCallingComponentContext<VorgangDetailBescheidenAbbrechenDialogComponent>(
-      VorgangDetailBescheidenAbbrechenDialogComponent,
-      this.viewContainerRef,
-    );
-  }
-}
diff --git a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-page.component.ts b/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-page.component.ts
index 44f75752c49f761680b3c7db8966cf7b4c220270..150d74f675519f8e62932689e2f2294daeea5fe5 100644
--- a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-page.component.ts
+++ b/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-page.component.ts
@@ -24,22 +24,16 @@
 import { CommandResource } from '@alfa-client/command-shared';
 import { LoeschAnforderungService } from '@alfa-client/loesch-anforderung-shared';
 import { NavigationService } from '@alfa-client/navigation-shared';
-import { StateResource, isResourceNotFoundError } from '@alfa-client/tech-shared';
+import { isResourceNotFoundError, StateResource } from '@alfa-client/tech-shared';
 import { Messages, SnackBarService } from '@alfa-client/ui';
-import {
-  VorgangCommandService,
-  VorgangService,
-  VorgangWithEingangResource,
-} from '@alfa-client/vorgang-shared';
+import { VorgangCommandService, VorgangService, VorgangWithEingangResource } from '@alfa-client/vorgang-shared';
 import { Component, OnInit } from '@angular/core';
 import { Observable, tap } from 'rxjs';
-import { BescheidenFormService } from './vorgang-detail-bescheiden/bescheiden.formservice';
 
 @Component({
   selector: 'alfa-vorgang-detail-page',
   templateUrl: './vorgang-detail-page.component.html',
   styleUrls: ['./vorgang-detail-page.component.scss'],
-  providers: [BescheidenFormService],
 })
 export class VorgangDetailPageComponent implements OnInit {
   vorgangStateResource$: Observable<StateResource<VorgangWithEingangResource>>;
@@ -57,12 +51,9 @@ export class VorgangDetailPageComponent implements OnInit {
   ngOnInit(): void {
     this.vorgangStateResource$ = this.vorgangService
       .getVorgangWithEingang()
-      .pipe(
-        tap((resource: StateResource<VorgangWithEingangResource>) => this.handleApiError(resource)),
-      );
+      .pipe(tap((resource: StateResource<VorgangWithEingangResource>) => this.handleApiError(resource)));
     this.revokeCommandStateResource$ = this.vorgangCommandService.getRevokeCommand();
-    this.vorgangLoeschenCommandStateResource$ =
-      this.loeschAnforderungService.getEndgueltigLoeschenCommand();
+    this.vorgangLoeschenCommandStateResource$ = this.loeschAnforderungService.getEndgueltigLoeschenCommand();
   }
 
   handleApiError(resource: StateResource<VorgangWithEingangResource>) {
diff --git a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail.module.ts b/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail.module.ts
index df1ec6563ff01d6130ab2cf54e144c5bfc970465..275fc4d082a11a4a0dd2da8cfeb95a5d532343e2 100644
--- a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail.module.ts
+++ b/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail.module.ts
@@ -32,21 +32,7 @@ import { LoeschAnforderungSharedModule } from '@alfa-client/loesch-anforderung-s
 import { PostfachModule } from '@alfa-client/postfach';
 import { PostfachSharedModule } from '@alfa-client/postfach-shared';
 import { ConvertForDataTestPipe, ConvertProblemDetailToErrorMessagesPipe, HasLinkPipe } from '@alfa-client/tech-shared';
-import {
-  BackButtonComponent,
-  DateEditorComponent,
-  ExpansionPanelComponent,
-  IconButtonWithSpinnerComponent,
-  OzgcloudIconButtonPrimaryComponent,
-  OzgcloudIconComponent,
-  OzgcloudMenuComponent,
-  OzgcloudPasteTextButtonComponent,
-  OzgcloudStrokedButtonWithSpinnerComponent,
-  OzgcloudTextEditorComponent,
-  SpinnerComponent,
-  SpinnerTransparencyComponent,
-  SubnavigationComponent,
-} from '@alfa-client/ui';
+import { BackButtonComponent, DateEditorComponent, ExpansionPanelComponent, IconButtonWithSpinnerComponent, OzgcloudIconButtonPrimaryComponent, OzgcloudIconComponent, OzgcloudMenuComponent, OzgcloudPasteTextButtonComponent, OzgcloudStrokedButtonWithSpinnerComponent, OzgcloudTextEditorComponent, SpinnerComponent, SpinnerTransparencyComponent, SubnavigationComponent, } from '@alfa-client/ui';
 import { UserProfileModule } from '@alfa-client/user-profile';
 import { UserProfileSharedModule } from '@alfa-client/user-profile-shared';
 import { VorgangSharedModule } from '@alfa-client/vorgang-shared';
@@ -60,13 +46,7 @@ import { MatIcon } from '@angular/material/icon';
 import { MatMenuTrigger } from '@angular/material/menu';
 import { MatTab, MatTabContent, MatTabGroup } from '@angular/material/tabs';
 import { RouterModule, Routes } from '@angular/router';
-import {
-  ButtonWithSpinnerComponent,
-  FileUploadEditorComponent,
-  SingleFileUploadEditorComponent,
-  TextareaEditorComponent,
-  TextEditorComponent,
-} from '@ods/component';
+import { ButtonWithSpinnerComponent, FileUploadEditorComponent, SingleFileUploadEditorComponent, TextareaEditorComponent, TextEditorComponent, } from '@ods/component';
 import {
   ArchiveIconComponent,
   AttachmentComponent,
@@ -119,29 +99,6 @@ import { VorgangDetailFormularDatenComponent } from './vorgang-detail-page/vorga
 import { VorgangDetailHeaderComponent } from './vorgang-detail-page/vorgang-detail-area/vorgang-detail-header/vorgang-detail-header.component';
 import { VorgangDetailBackButtonContainerComponent } from './vorgang-detail-page/vorgang-detail-back-button-container/vorgang-detail-back-button-container.component';
 import { VorgangDetailBackButtonComponent } from './vorgang-detail-page/vorgang-detail-back-button-container/vorgang-detail-back-button/vorgang-detail-back-button.component';
-import { VorgangDetailBescheidenResultAttachmentsComponent } from './vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-result/vorgang-detail-bescheiden-result-attachments/vorgang-detail-bescheiden-result-attachments.component';
-import { VorgangDetailBescheidenResultDokumentComponent } from './vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-result/vorgang-detail-bescheiden-result-dokument/vorgang-detail-bescheiden-result-dokument.component';
-import { VorgangDetailBescheidenResultNachrichtComponent } from './vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-result/vorgang-detail-bescheiden-result-nachricht/vorgang-detail-bescheiden-result-nachricht.component';
-import { VorgangDetailBescheidenResultStatusComponent } from './vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-result/vorgang-detail-bescheiden-result-status/vorgang-detail-bescheiden-result-status.component';
-import { VorgangDetailBescheidenResultComponent } from './vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-result/vorgang-detail-bescheiden-result.component';
-import { VorgangDetailBescheidenStepButtonComponent } from './vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-step-buttons/vorgang-detail-bescheiden-step-button/vorgang-detail-bescheiden-step-button.component';
-import { VorgangDetailBescheidenStepButtonsComponent } from './vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-step-buttons/vorgang-detail-bescheiden-step-buttons.component';
-import { VorgangDetailBescheidenStepTitleComponent } from './vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-step-title/vorgang-detail-bescheiden-step-title.component';
-import { VorgangDetailBescheidenAbbrechenButtonComponent } from './vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps-content/vorgang-detail-bescheiden-abbrechen-button/vorgang-detail-bescheiden-abbrechen-button.component';
-import { VorgangDetailBescheidenAbbrechenDialogComponent } from './vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps-content/vorgang-detail-bescheiden-abbrechen-dialog/vorgang-detail-bescheiden-abbrechen-dialog.component';
-import { VorgangDetailBescheidenAntragBescheidenComponent } from './vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps-content/vorgang-detail-bescheiden-antrag-bescheiden/vorgang-detail-bescheiden-antrag-bescheiden.component';
-import { VorgangDetailBescheidenBescheidVersendenComponent } from './vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps-content/vorgang-detail-bescheiden-bescheid-versenden/vorgang-detail-bescheiden-bescheid-versenden.component';
-import { VorgangDetailBescheidenAttachmentHochladenComponent } from './vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps-content/vorgang-detail-bescheiden-dokumente-hinzufuegen/vorgang-detail-bescheiden-attachment-hochladen/vorgang-detail-bescheiden-attachment-hochladen.component';
-import { VorgangDetailBescheidenBescheidAutomatischErstellenComponent } from './vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps-content/vorgang-detail-bescheiden-dokumente-hinzufuegen/vorgang-detail-bescheiden-bescheid-automatisch-erstellen/vorgang-detail-bescheiden-bescheid-automatisch-erstellen.component';
-import { VorgangDetailBescheidenDokumentHochladenComponent } from './vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps-content/vorgang-detail-bescheiden-dokumente-hinzufuegen/vorgang-detail-bescheiden-dokument-hochladen/vorgang-detail-bescheiden-dokument-hochladen.component';
-import { VorgangDetailBescheidenDokumenteHinzufuegenComponent } from './vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps-content/vorgang-detail-bescheiden-dokumente-hinzufuegen/vorgang-detail-bescheiden-dokumente-hinzufuegen.component';
-import { VorgangDetailBescheidenStepContentComponent } from './vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps-content/vorgang-detail-bescheiden-step-content/vorgang-detail-bescheiden-step-content.component';
-import { VorgangDetailBescheidenStepsContentComponent } from './vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps-content/vorgang-detail-bescheiden-steps-content.component';
-import { VorgangDetailBescheidenUeberspringenButtonComponent } from './vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps-content/vorgang-detail-bescheiden-ueberspringen-button/vorgang-detail-bescheiden-ueberspringen-button.component';
-import { VorgangDetailBescheidenUeberspringenDialogComponent } from './vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps-content/vorgang-detail-bescheiden-ueberspringen-dialog/vorgang-detail-bescheiden-ueberspringen-dialog.component';
-import { VorgangDetailBescheidenStepsComponent } from './vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps.component';
-import { VorgangDetailBescheidenWeiterButtonComponent } from './vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-weiter-button/vorgang-detail-bescheiden-weiter-button.component';
-import { VorgangDetailBescheidenComponent } from './vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden.component';
 import { VorgangArchiveConfirmationDialogContainerComponent } from './vorgang-detail-page/vorgang-detail-more-menu/vorgang-archive-container/vorgang-archive-confirmation-dialog-container/vorgang-archive-confirmation-dialog-container.component';
 import { VorgangArchiveConfirmationDialogComponent } from './vorgang-detail-page/vorgang-detail-more-menu/vorgang-archive-container/vorgang-archive-confirmation-dialog-container/vorgang-archive-confirmation-dialog/vorgang-archive-confirmation-dialog.component';
 import { VorgangArchiveContainerComponent } from './vorgang-detail-page/vorgang-detail-more-menu/vorgang-archive-container/vorgang-archive-container.component';
@@ -262,34 +219,11 @@ const routes: Routes = [
     ProcessVorgangContainerComponent,
     AktenzeichenEditableComponent,
     AktenzeichenEditDialogComponent,
-    VorgangDetailBescheidenComponent,
-    VorgangDetailBescheidenResultComponent,
-    VorgangDetailBescheidenStepButtonComponent,
-    VorgangDetailBescheidenStepsComponent,
-    VorgangDetailBescheidenStepButtonsComponent,
-    VorgangDetailBescheidenWeiterButtonComponent,
-    VorgangDetailBescheidenStepTitleComponent,
-    VorgangDetailBescheidenStepsContentComponent,
-    VorgangDetailBescheidenStepContentComponent,
-    VorgangDetailBescheidenResultStatusComponent,
-    VorgangDetailBescheidenUeberspringenButtonComponent,
-    VorgangDetailBescheidenUeberspringenDialogComponent,
-    VorgangDetailBescheidenAbbrechenDialogComponent,
-    VorgangDetailBescheidenAbbrechenButtonComponent,
-    VorgangDetailBescheidenDokumentHochladenComponent,
-    VorgangDetailBescheidenBescheidAutomatischErstellenComponent,
-    VorgangDetailBescheidenDokumenteHinzufuegenComponent,
-    VorgangDetailBescheidenAntragBescheidenComponent,
-    VorgangDetailBescheidenAttachmentHochladenComponent,
-    VorgangDetailBescheidenResultDokumentComponent,
-    VorgangDetailBescheidenResultAttachmentsComponent,
-    VorgangDetailBescheidenBescheidVersendenComponent,
-    VorgangDetailBescheidenResultNachrichtComponent,
     VorgangDetailDateienContainerComponent,
     VorgangArchiveContainerComponent,
     VorgangArchiveConfirmationDialogContainerComponent,
     VorgangArchiveConfirmationDialogComponent,
   ],
-  exports: [VorgangDetailAntragstellerComponent, VorgangDetailAntragDataComponent, VorgangDetailBescheidenComponent],
+  exports: [VorgangDetailAntragstellerComponent, VorgangDetailAntragDataComponent],
 })
 export class VorgangDetailModule {}