diff --git a/alfa-xdomea/src/main/java/de/ozgcloud/alfa/vorgang/FormDataFlattener.java b/alfa-xdomea/src/main/java/de/ozgcloud/alfa/vorgang/FormDataFlattener.java
deleted file mode 100644
index 1d49b8440a298bf31af7694db0bda7772525a171..0000000000000000000000000000000000000000
--- a/alfa-xdomea/src/main/java/de/ozgcloud/alfa/vorgang/FormDataFlattener.java
+++ /dev/null
@@ -1,36 +0,0 @@
-package de.ozgcloud.alfa.vorgang;
-
-import java.util.HashMap;
-import java.util.Map;
-
-class FormDataFlattener {
-
-	static final String VALUE_KEY = "value";
-
-	public static Map<String, Object> flatten(Map<String, Object> formData) {
-		return getDataWithoutValueKeys(formData);
-	}
-
-	private static Map<String, Object> getDataWithoutValueKeys(Map<String, Object> data) {
-		Map<String, Object> result = new HashMap<>();
-		for (var entry : data.entrySet()) {
-			result.put(entry.getKey(), getDataWithoutValueKey(entry.getValue()));
-		}
-		return result;
-	}
-
-	@SuppressWarnings("unchecked")
-	private static Object getDataWithoutValueKey(Object data) {
-		if (!(data instanceof Map)) {
-			return data;
-		}
-		Map<String, Object> formData = (Map<String, Object>) data;
-		return containsValueKeyAsSingleEntry(formData) ?
-				getDataWithoutValueKey(formData.get(VALUE_KEY)) :
-				getDataWithoutValueKeys(formData);
-	}
-
-	private static boolean containsValueKeyAsSingleEntry(Map<String, Object> formData) {
-		return formData.containsKey(VALUE_KEY) && formData.size() == 1;
-	}
-}
diff --git a/alfa-xdomea/src/main/java/de/ozgcloud/alfa/vorgang/FormDataMapper.java b/alfa-xdomea/src/main/java/de/ozgcloud/alfa/vorgang/FormDataMapper.java
index 7c1af10f8ea2f721b5b3efe9f354265c670f328d..0c34564a6ddcfb3f617f2c93fd4895ea275f07db 100644
--- a/alfa-xdomea/src/main/java/de/ozgcloud/alfa/vorgang/FormDataMapper.java
+++ b/alfa-xdomea/src/main/java/de/ozgcloud/alfa/vorgang/FormDataMapper.java
@@ -32,7 +32,7 @@ class FormDataMapper {
 	public Antragsdaten toAntragsdaten(@NotNull VorgangWithEingang vorgang) {
 		return Optional.ofNullable(vorgang.getEingang())
 				.map(Eingang::getFormData)
-				.map(FormDataFlattener::flatten)
+				.map(ValueKeysRemover::removeValueKeys)
 				.map(this::buildAntragsdaten)
 				.orElseGet(Antragsdaten::new);
 	}
diff --git a/alfa-xdomea/src/main/java/de/ozgcloud/alfa/vorgang/ValueKeysRemover.java b/alfa-xdomea/src/main/java/de/ozgcloud/alfa/vorgang/ValueKeysRemover.java
new file mode 100644
index 0000000000000000000000000000000000000000..76c1b7d0eb64e88eecfcaa93c5f1b094c2228c63
--- /dev/null
+++ b/alfa-xdomea/src/main/java/de/ozgcloud/alfa/vorgang/ValueKeysRemover.java
@@ -0,0 +1,32 @@
+package de.ozgcloud.alfa.vorgang;
+
+import java.util.HashMap;
+import java.util.Map;
+
+class ValueKeysRemover {
+
+	static final String VALUE_KEY = "value";
+
+	public static Map<String, Object> removeValueKeys(Map<String, Object> formData) {
+		Map<String, Object> result = new HashMap<>();
+		for (var entry : formData.entrySet()) {
+			result.put(entry.getKey(), removeValueKeysFromValue(entry.getValue()));
+		}
+		return result;
+	}
+
+	@SuppressWarnings("unchecked")
+	private static Object removeValueKeysFromValue(Object value) {
+		if (!(value instanceof Map)) {
+			return value;
+		}
+		Map<String, Object> formData = (Map<String, Object>) value;
+		return containsValueKeyAsSingleEntry(formData) ?
+				removeValueKeysFromValue(formData.get(VALUE_KEY)) :
+				removeValueKeys(formData);
+	}
+
+	private static boolean containsValueKeyAsSingleEntry(Map<String, Object> formData) {
+		return formData.containsKey(VALUE_KEY) && formData.size() == 1;
+	}
+}
diff --git a/alfa-xdomea/src/test/java/de/ozgcloud/alfa/vorgang/FormDataMapperTest.java b/alfa-xdomea/src/test/java/de/ozgcloud/alfa/vorgang/FormDataMapperTest.java
index cb17aaabc7d3b24f6b58f74804cf2e3d3bfeab05..3c0c2519b83fd379091d789a8cc9044c8c407b5d 100644
--- a/alfa-xdomea/src/test/java/de/ozgcloud/alfa/vorgang/FormDataMapperTest.java
+++ b/alfa-xdomea/src/test/java/de/ozgcloud/alfa/vorgang/FormDataMapperTest.java
@@ -45,15 +45,15 @@ class FormDataMapperTest {
 
 		@Test
 		void shouldCallBuildAntragsdaten() {
-			try (MockedStatic<FormDataFlattener> formDataFlattener = mockStatic(FormDataFlattener.class)) {
+			try (MockedStatic<ValueKeysRemover> valueKeysRemover = mockStatic(ValueKeysRemover.class)) {
 				var vorgang = VorgangWithEingangTestFactory.create();
-				Map<String, Object> flattenedFormData = Map.of(UUID.randomUUID().toString(), "value1");
-				formDataFlattener.when(() -> FormDataFlattener.flatten(any())).thenReturn(flattenedFormData);
+				Map<String, Object> formDataWithoutValueKeys = Map.of(UUID.randomUUID().toString(), "value1");
+				valueKeysRemover.when(() -> ValueKeysRemover.removeValueKeys(any())).thenReturn(formDataWithoutValueKeys);
 				doReturn(new Object()).when(formDataMapper).formatValue(any(), any());
 
 				formDataMapper.toAntragsdaten(vorgang);
 
-				verify(formDataMapper).buildAntragsdaten(flattenedFormData);
+				verify(formDataMapper).buildAntragsdaten(formDataWithoutValueKeys);
 			}
 		}
 
diff --git a/alfa-xdomea/src/test/java/de/ozgcloud/alfa/vorgang/FormDataFlattenerTest.java b/alfa-xdomea/src/test/java/de/ozgcloud/alfa/vorgang/ValueKeysRemoverTest.java
similarity index 64%
rename from alfa-xdomea/src/test/java/de/ozgcloud/alfa/vorgang/FormDataFlattenerTest.java
rename to alfa-xdomea/src/test/java/de/ozgcloud/alfa/vorgang/ValueKeysRemoverTest.java
index a9f067504d684c773d3baa8f9002bc413b9bedb1..f9b5105db6ef211f7dd7c3ca287567fe64ee5465 100644
--- a/alfa-xdomea/src/test/java/de/ozgcloud/alfa/vorgang/FormDataFlattenerTest.java
+++ b/alfa-xdomea/src/test/java/de/ozgcloud/alfa/vorgang/ValueKeysRemoverTest.java
@@ -7,18 +7,18 @@ import java.util.Map;
 import org.junit.jupiter.api.Nested;
 import org.junit.jupiter.api.Test;
 
-public class FormDataFlattenerTest {
+public class ValueKeysRemoverTest {
 
 	@Nested
-	class TestFlatten {
+	class TestRemoveValueKeys {
 
 		@Test
 		void shouldPreserveValueKeyWithoutParent() {
 			Map<String, Object> formData = Map.of("value", "Kiel");
 
-			var flattened = FormDataFlattener.flatten(formData);
+			var formDataWithoutValueKeys = ValueKeysRemover.removeValueKeys(formData);
 
-			assertThat(flattened).isEqualTo(formData);
+			assertThat(formDataWithoutValueKeys).isEqualTo(formData);
 		}
 
 		@Test
@@ -26,18 +26,18 @@ public class FormDataFlattenerTest {
 			Map<String, Object> formData = Map.of("ort", Map.of("value", "Kiel"));
 			Map<String, Object> expected = Map.of("ort", "Kiel");
 
-			var flattened = FormDataFlattener.flatten(formData);
+			var formDataWithoutValueKeys = ValueKeysRemover.removeValueKeys(formData);
 
-			assertThat(flattened).isEqualTo(expected);
+			assertThat(formDataWithoutValueKeys).isEqualTo(expected);
 		}
 
 		@Test
 		void shouldPreserveValueKeyIfHasSiblings() {
 			Map<String, Object> formData = Map.of("ort", Map.of("value", "Kiel", "value2", "Kiel"));
 
-			var flattened = FormDataFlattener.flatten(formData);
+			var formDataWithoutValueKeys = ValueKeysRemover.removeValueKeys(formData);
 
-			assertThat(flattened).isEqualTo(formData);
+			assertThat(formDataWithoutValueKeys).isEqualTo(formData);
 		}
 
 		@Test
@@ -63,9 +63,9 @@ public class FormDataFlattenerTest {
 					)
 			);
 
-			var flattened = FormDataFlattener.flatten(formData);
+			var formDataWithoutValueKeys = ValueKeysRemover.removeValueKeys(formData);
 
-			assertThat(flattened).isEqualTo(expected);
+			assertThat(formDataWithoutValueKeys).isEqualTo(expected);
 		}
 	}
 }