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 daa0e9c48412323f1754c1c25825712304e2c988..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
@@ -41,22 +41,32 @@ import { singleCold, singleColdCompleted } from '../../../tech-shared/test/marbl
 import { createBescheid, createBescheidDocument, createBescheidListResource, 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, 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 { BescheidListResourceService } from './bescheid-list-resource-service';
-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>;
@@ -84,6 +94,8 @@ describe('BescheidService', () => {
     postfachService = mock(PostfachService);
     bescheidResourceService = mock(CommandResourceService);
     bescheidListResourceService = mock(ResourceListService);
+    (createBescheidResourceService as jest.Mock).mockReturnValue(bescheidResourceService);
+    (createBescheidListResourceService as jest.Mock).mockReturnValue(bescheidListResourceService);
 
     TestBed.configureTestingModule({
       providers: [
@@ -97,8 +109,6 @@ describe('BescheidService', () => {
           provide: PostfachService,
           useValue: postfachService,
         },
-        { provide: BescheidResourceService, useValue: bescheidResourceService },
-        { provide: BescheidListResourceService, useValue: bescheidListResourceService },
         BescheidService,
       ],
     });
@@ -534,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));
     });
 
@@ -554,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', () => {
@@ -697,12 +705,10 @@ describe('BescheidService', () => {
     const bescheidResource: BescheidResource = createBescheidResource();
 
     const createCommandProps: CreateCommandProps = createCreateCommandProps();
-    let buildUpdateBescheidCommandPropsSpy: jest.SpyInstance;
+    let buildUpdateBescheidCommandPropsMock: jest.Mock = buildUpdateBescheidCommandProps as jest.Mock;
 
     beforeEach(() => {
-      buildUpdateBescheidCommandPropsSpy = jest
-        .spyOn(BescheidUtil, 'buildUpdateBescheidCommandProps')
-        .mockReturnValue(createCommandProps);
+      buildUpdateBescheidCommandPropsMock.mockReturnValue(createCommandProps);
       commandService.createCommandByProps.mockClear();
       commandService.createCommandByProps.mockReturnValue(of(createCommandStateResource()));
     });
@@ -710,7 +716,7 @@ describe('BescheidService', () => {
     it('should build update bescheid command props', () => {
       service.doUpdateBescheid(bescheidResource, bescheid);
 
-      expect(buildUpdateBescheidCommandPropsSpy).toHaveBeenCalledWith(bescheidResource, bescheid);
+      expect(buildUpdateBescheidCommandPropsMock).toHaveBeenCalledWith(bescheidResource, bescheid);
     });
 
     it('should call command service', () => {
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 5f58ef9c22fcb2c80dfde2209ebfa13f785e86de..ec6a90a43ad27dd898eda39b580ddeb4f0d287be 100644
--- a/alfa-client/libs/bescheid-shared/src/lib/bescheid.service.ts
+++ b/alfa-client/libs/bescheid-shared/src/lib/bescheid.service.ts
@@ -36,6 +36,8 @@ import {
   buildCreateBescheidDocumentFromFileProps,
   buildSendBescheidCommandProps,
   buildUpdateBescheidCommandProps,
+  createBescheidListResourceService,
+  createBescheidResourceService,
   createEmptyBescheidDocument,
   createEmptyUploadInProgress,
   createInitialWizard,
@@ -46,17 +48,15 @@ import { BinaryFileListLinkRel, BinaryFileListResource, BinaryFileResource, Bina
 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, VorgangWithEingangResource } from '@alfa-client/vorgang-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 { BescheidListResourceService } from './bescheid-list-resource-service';
-import { BescheidResourceService } from './bescheid-resource-service';
 import { DocumentLinkRel } from './document.linkrel';
 
-@Injectable()
+@Injectable({ providedIn: 'root' })
 export class BescheidService {
   private readonly bescheidFacade = inject(BescheidFacade);
   private readonly commandService = inject(CommandService);
@@ -64,8 +64,15 @@ export class BescheidService {
   private readonly binaryFileService = inject(BinaryFileService);
   private readonly resourceRepository = inject(ResourceRepository);
   private readonly postfachService = inject(PostfachService);
-  private readonly bescheidResourceService = inject(BescheidResourceService);
-  private readonly bescheidListResourceService = inject(BescheidListResourceService);
+  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 _bescheidDocument$: BehaviorSubject<BescheidDocument> = new BehaviorSubject(createEmptyBescheidDocument());
   readonly _wizard$: BehaviorSubject<Wizard> = new BehaviorSubject(createInitialWizard());