diff --git a/src/main/java/de/ozgcloud/aggregation/AggregationManagerRunner.java b/src/main/java/de/ozgcloud/aggregation/AggregationManagerRunner.java
index 3be3763cad02f515e502468eaab4ddfd66fa8486..ccfe40139c90b6f80ff097426b707ad7515f42ce 100644
--- a/src/main/java/de/ozgcloud/aggregation/AggregationManagerRunner.java
+++ b/src/main/java/de/ozgcloud/aggregation/AggregationManagerRunner.java
@@ -83,15 +83,15 @@ public class AggregationManagerRunner implements CommandLineRunner {
 		var identifier = transformationProperties.getIdentifier();
 		var aggregationMappings = transformationProperties.getAggregationMappings();
 		if (Objects.isNull(aggregationMappings) || aggregationMappings.isEmpty()) {
-			runWithTransformation(transformationService.load(identifier, null), null);
+			runWithTransformation(transformationService.load(identifier, null), Optional.empty());
 		} else {
 			aggregationMappings.stream()
 					.forEach(aggregationMapping -> runWithTransformation(transformationService.load(identifier, aggregationMapping),
-							aggregationMapping.getFormIdentifier()));
+							Optional.of(aggregationMapping.getFormIdentifier())));
 		}
 	}
 
-	void runWithTransformation(Transformation transformation, FormIdentifier formIdentifier) {
+	void runWithTransformation(Transformation transformation, Optional<FormIdentifier> formIdentifier) {
 		try (Execution execution = new Execution(transformation)) {
 			ThreadContext.put(MDC_EXECUTION, execution.id.toString());
 			loadVorgaengeIntoRepository(Stream.concat(
@@ -107,32 +107,32 @@ public class AggregationManagerRunner implements CommandLineRunner {
 		batches.map(this::transformBatchToDocumentEntries).forEach(this::loadDocumentEntriesIntoRepository);
 	}
 
-	Stream<Batch> extractBatchesOfVorgaengeFromDataSource(Execution execution, FormIdentifier formIdentifier) {
+	Stream<Batch> extractBatchesOfVorgaengeFromDataSource(Execution execution, Optional<FormIdentifier> formIdentifier) {
 		return extractBatchesFromDataSource(execution, page -> getVorgaengeFromDataSource(page, formIdentifier));
 	}
 
-	List<OzgCloudVorgang> getVorgaengeFromDataSource(Page page, FormIdentifier formIdentifier) {
+	List<OzgCloudVorgang> getVorgaengeFromDataSource(Page page, Optional<FormIdentifier> formIdentifier) {
 		return vorgangService.find(buildFindByFormEngineQuery(formIdentifier), page).stream()
 				.map(vorgangStub -> vorgangService.getById(vorgangStub.getId()))
 				.toList();
 	}
 
-	OzgCloudVorgangQuery buildFindByFormEngineQuery(FormIdentifier formIdentifier) {
+	OzgCloudVorgangQuery buildFindByFormEngineQuery(Optional<FormIdentifier> formIdentifier) {
 		return OzgCloudVorgangQuery.builder()
 				.form(mapToFormIdentification(formIdentifier))
 				.build();
 	}
 
-	private Optional<FormIdentification> mapToFormIdentification(FormIdentifier formIdentifier) {
-		return Optional.ofNullable(formIdentifier)
+	private Optional<FormIdentification> mapToFormIdentification(Optional<FormIdentifier> formIdentifier) {
+		return formIdentifier
 				.map(identifier -> FormIdentification.builder()
 						.formId(identifier.getFormId())
 						.formEngineName(identifier.getFormEngineName())
 						.build());
 	}
 
-	Stream<Batch> extractBatchesOfDeletedVorgaengeFromDataSource(Execution execution, FormIdentifier formIdentifier) {
-		return Objects.isNull(formIdentifier) ? extractBatchesFromDataSource(execution, getPagedDeletedVorgaenge(vorgangService.findDeleted()))
+	Stream<Batch> extractBatchesOfDeletedVorgaengeFromDataSource(Execution execution, Optional<FormIdentifier> formIdentifier) {
+		return formIdentifier.isEmpty() ? extractBatchesFromDataSource(execution, getPagedDeletedVorgaenge(vorgangService.findDeleted()))
 				: Stream.empty();
 	}
 
diff --git a/src/test/java/de/ozgcloud/aggregation/AggregationManagerRunnerTest.java b/src/test/java/de/ozgcloud/aggregation/AggregationManagerRunnerTest.java
index 8ae63547a9c93fbc32de62b39f8a4409b24d7e9f..1e578c804c4a8caa7022cce046ec08f37c059fcc 100644
--- a/src/test/java/de/ozgcloud/aggregation/AggregationManagerRunnerTest.java
+++ b/src/test/java/de/ozgcloud/aggregation/AggregationManagerRunnerTest.java
@@ -29,6 +29,7 @@ import static org.mockito.Mockito.*;
 
 import java.util.Collections;
 import java.util.List;
+import java.util.Optional;
 import java.util.UUID;
 import java.util.function.Function;
 import java.util.stream.Stream;
@@ -134,8 +135,8 @@ class AggregationManagerRunnerTest {
 			void shouldRunWithTransformationForEachTransformation() {
 				runner.run();
 
-				verify(runner).runWithTransformation(firstTransformation, AggregationMappingTestFactory.FORM_IDENTIFIER);
-				verify(runner).runWithTransformation(secondTransformation, AggregationMappingTestFactory.FORM_IDENTIFIER);
+				verify(runner).runWithTransformation(firstTransformation, Optional.of(AggregationMappingTestFactory.FORM_IDENTIFIER));
+				verify(runner).runWithTransformation(secondTransformation, Optional.of(AggregationMappingTestFactory.FORM_IDENTIFIER));
 			}
 		}
 
@@ -161,7 +162,7 @@ class AggregationManagerRunnerTest {
 			void shouldCallRunWithTransformation() {
 				runner.run();
 
-				verify(runner).runWithTransformation(transformation, null);
+				verify(runner).runWithTransformation(transformation, Optional.empty());
 			}
 		}
 
@@ -187,7 +188,7 @@ class AggregationManagerRunnerTest {
 			void shouldCallRunWithTransformation() {
 				runner.run();
 
-				verify(runner).runWithTransformation(transformation, null);
+				verify(runner).runWithTransformation(transformation, Optional.empty());
 			}
 		}
 	}
@@ -198,7 +199,7 @@ class AggregationManagerRunnerTest {
 		@Mock
 		private Transformation transformation;
 		private final ArgumentMatcher<Execution> hasTransformation = execution -> execution.getTransformation().equals(transformation);
-		private final FormIdentifier formIdentifier = FormIdentifierTestFactory.create();
+		private final Optional<FormIdentifier> formIdentifier = Optional.of(FormIdentifierTestFactory.create());
 		@Mock
 		private Batch batchOfVorgaenge;
 		@Mock
@@ -283,7 +284,7 @@ class AggregationManagerRunnerTest {
 	@Nested
 	class TestExtractBatchesOfVorgaengeFromDataSource {
 
-		private final FormIdentifier formIdentifier = FormIdentifierTestFactory.create();
+		private final Optional<FormIdentifier> formIdentifier = Optional.of(FormIdentifierTestFactory.create());
 		@Mock
 		private Execution execution;
 		@Captor
@@ -326,7 +327,7 @@ class AggregationManagerRunnerTest {
 	class TestGetVorgaengeFromDataSource {
 
 		private final Page page = Page.builder().offset(10).limit(2).build();
-		private final FormIdentifier formIdentifier = FormIdentifierTestFactory.create();
+		private final Optional<FormIdentifier> formIdentifier = Optional.of(FormIdentifierTestFactory.create());
 		private final OzgCloudVorgangQuery query = OzgCloudVorgangQuery.builder().build();
 
 		@BeforeEach
@@ -373,18 +374,20 @@ class AggregationManagerRunnerTest {
 	class TestBuildFindByFormEngineQuery {
 
 		@Nested
-		class TestOnFormIdentifierNull {
+		class TestOnEmptyFormIdentifier {
+
 			@Test
-			void shouldReturnFindAllQueryOnNullFormIdentifier() {
-				var query = runner.buildFindByFormEngineQuery(null);
+			void shouldReturnFindAllQueryOnEmptyFormIdentifier() {
+				var query = runner.buildFindByFormEngineQuery(Optional.empty());
 
 				assertThat(query).usingRecursiveComparison().isEqualTo(OzgCloudVorgangQuery.builder().build());
 			}
 		}
 
 		@Nested
-		class TestOnFormIdentifierNotNull {
-			private final FormIdentifier formIdentifier = FormIdentifierTestFactory.create();
+		class TestOnFormIdentifierNotEmpty {
+
+			private final Optional<FormIdentifier> formIdentifier = Optional.of(FormIdentifierTestFactory.create());
 
 			@Test
 			void shouldSetFormIdInQuery() {
@@ -416,7 +419,7 @@ class AggregationManagerRunnerTest {
 		private Batch batch;
 
 		@Nested
-		class TestOnNullFormIdentifier {
+		class TestOnEmptyFormIdentifier {
 
 			@BeforeEach
 			void init() {
@@ -427,14 +430,14 @@ class AggregationManagerRunnerTest {
 
 			@Test
 			void shouldFindDeleted() {
-				runner.extractBatchesOfDeletedVorgaengeFromDataSource(execution, null);
+				runner.extractBatchesOfDeletedVorgaengeFromDataSource(execution, Optional.empty());
 
 				verify(vorgangService).findDeleted();
 			}
 
 			@Test
 			void shouldGetPagedDeletedVorgaenge() {
-				runner.extractBatchesOfDeletedVorgaengeFromDataSource(execution, null);
+				runner.extractBatchesOfDeletedVorgaengeFromDataSource(execution, Optional.empty());
 
 				verify(runner).getPagedDeletedVorgaenge(deletedVorgaengeCaptor.capture());
 				assertThat(deletedVorgaengeCaptor.getValue()).usingRecursiveFieldByFieldElementComparator()
@@ -443,23 +446,23 @@ class AggregationManagerRunnerTest {
 
 			@Test
 			void shouldExtractWithDataRetrievalFunction() {
-				runner.extractBatchesOfDeletedVorgaengeFromDataSource(execution, null);
+				runner.extractBatchesOfDeletedVorgaengeFromDataSource(execution, Optional.empty());
 
 				verify(runner).extractBatchesFromDataSource(execution, functionToRetrieveData);
 			}
 
 			@Test
 			void shouldReturnExtractedBatches() {
-				var extracted = runner.extractBatchesOfDeletedVorgaengeFromDataSource(execution, null);
+				var extracted = runner.extractBatchesOfDeletedVorgaengeFromDataSource(execution, Optional.empty());
 
 				assertThat(extracted).containsExactly(batch);
 			}
 		}
 
 		@Nested
-		class TestOnFormIdentifierNotNull {
+		class TestOnFormIdentifierNotEmpty {
 
-			private final FormIdentifier formIdentifier = FormIdentifierTestFactory.create();
+			private final Optional<FormIdentifier> formIdentifier = Optional.of(FormIdentifierTestFactory.create());
 
 			@Test
 			void shouldReturnEmptyStream() {