diff --git a/alfa-client/libs/tech-shared/src/lib/resource/resource.service.spec.ts b/alfa-client/libs/tech-shared/src/lib/resource/resource.service.spec.ts
index db02b9a18f8e000c512b8339c441599529e7efe1..af9e427887e1482fe2ac76c1847bad1054597dc4 100644
--- a/alfa-client/libs/tech-shared/src/lib/resource/resource.service.spec.ts
+++ b/alfa-client/libs/tech-shared/src/lib/resource/resource.service.spec.ts
@@ -363,22 +363,34 @@ describe('ResourceService', () => {
 
       expect(service.createIfNotExist).toHaveBeenCalled();
     });
+  });
 
-    it('should call loadLinkedResource if loading is required', () => {
+  describe('createIfNotExists', () => {
+    it('should create linked resource if none exists', () => {
+      service.createIfNotExist(linkedResourceUri);
+
+      expect(service.linkedResources[linkedResourceUri].value).toEqual(createEmptyStateResource());
+    });
+  });
+
+  describe('loadLinkedResourceIfRequired', () => {
+    it('should set Loading in Linked Resource', () => {
       service.createIfNotExist(linkedResourceUri);
+      service.setLinkedResourceLoading = jest.fn();
       service.loadLinkedResoure = jest.fn();
 
       service.getLinkedResoure(linkedResourceUri);
 
-      expect(service.loadLinkedResoure).toHaveBeenCalledWith(linkedResourceUri);
+      expect(service.setLinkedResourceLoading).toHaveBeenCalledWith(linkedResourceUri);
     });
-  });
 
-  describe('createIfNotExists', () => {
-    it('should create linked resource if none exists', () => {
+    it('should call loadLinkedResource if loading is required', () => {
       service.createIfNotExist(linkedResourceUri);
+      service.loadLinkedResoure = jest.fn();
 
-      expect(service.linkedResources[linkedResourceUri].value).toEqual(createEmptyStateResource());
+      service.getLinkedResoure(linkedResourceUri);
+
+      expect(service.loadLinkedResoure).toHaveBeenCalledWith(linkedResourceUri);
     });
   });
 
diff --git a/alfa-client/libs/tech-shared/src/lib/resource/resource.service.ts b/alfa-client/libs/tech-shared/src/lib/resource/resource.service.ts
index d2d2c83a291b42b2385a371660f1e095c572903e..cc26c3d85960d24eb9a08e75012038c78fcb6747 100644
--- a/alfa-client/libs/tech-shared/src/lib/resource/resource.service.ts
+++ b/alfa-client/libs/tech-shared/src/lib/resource/resource.service.ts
@@ -115,13 +115,7 @@ export abstract class ResourceService<B extends Resource, T extends Resource> {
 
   public getLinkedResoure<F extends Resource>(resourceUri: ResourceUri): Observable<StateResource<F>> {
     this.createIfNotExist(resourceUri);
-
-    //todo: In Funktion auslagern
-    doIfLoadingRequired(this.linkedResources[resourceUri].value, () => {
-      this.setLinkedResourceLoading(resourceUri);
-      this.loadLinkedResoure(resourceUri);
-    });
-
+    this.loadLinkedResourceIfRequired(resourceUri);
     return this.linkedResources[resourceUri].asObservable();
   }
 
@@ -129,6 +123,13 @@ export abstract class ResourceService<B extends Resource, T extends Resource> {
     if (isNil(this.linkedResources[uri])) this.linkedResources[uri] = new BehaviorSubject(createEmptyStateResource());
   }
 
+  loadLinkedResourceIfRequired(resourceUri: ResourceUri): void {
+    doIfLoadingRequired(this.linkedResources[resourceUri].value, () => {
+      this.setLinkedResourceLoading(resourceUri);
+      this.loadLinkedResoure(resourceUri);
+    });
+  }
+
   loadLinkedResoure(resourceUri: ResourceUri): void {
     this.repository
       .getResource(resourceUri)