diff --git a/src/main/java/de/ozgcloud/admin/common/organisationseinheit/OrganisationsEinheitSettingsService.java b/src/main/java/de/ozgcloud/admin/common/organisationseinheit/OrganisationsEinheitSettingsService.java
index c5d6e894b604bf298870bd2b417e8491eb3986cc..079a038ee7da87c5bd83ffc64a19361d9d3c9055 100644
--- a/src/main/java/de/ozgcloud/admin/common/organisationseinheit/OrganisationsEinheitSettingsService.java
+++ b/src/main/java/de/ozgcloud/admin/common/organisationseinheit/OrganisationsEinheitSettingsService.java
@@ -1,12 +1,12 @@
 package de.ozgcloud.admin.common.organisationseinheit;
 
+import de.ozgcloud.admin.organisationseinheit.OrganisationsEinheitSettings;
+import java.util.Collections;
 import java.util.Map;
+import java.util.stream.Collectors;
 import java.util.stream.Stream;
-
-import org.springframework.stereotype.Service;
-
-import de.ozgcloud.admin.organisationseinheit.OrganisationsEinheitSettings;
 import lombok.RequiredArgsConstructor;
+import org.springframework.stereotype.Service;
 
 @Service
 @RequiredArgsConstructor
@@ -19,6 +19,14 @@ public class OrganisationsEinheitSettingsService {
 	}
 
 	Map<String, OrganisationsEinheitSettings> getSettingsMap(Stream<OrganisationsEinheitWithSettings> settings) {
-		return Map.of();
+		if(settings == null){
+			return Collections.emptyMap();
+		}
+		return settings.collect(
+				Collectors.toMap(
+						entry -> entry.organisationsEinheitId(),
+						entry -> entry.settings()
+				)
+		);
 	}
 }
diff --git a/src/main/java/de/ozgcloud/admin/common/organisationseinheit/OrganisationsEinheitWithSettings.java b/src/main/java/de/ozgcloud/admin/common/organisationseinheit/OrganisationsEinheitWithSettings.java
index bd9aa33e3f3c697be38e6c91b81821d689f242a5..b2bc2fc0ecc4914180dfc36a129d0e11a90af839 100644
--- a/src/main/java/de/ozgcloud/admin/common/organisationseinheit/OrganisationsEinheitWithSettings.java
+++ b/src/main/java/de/ozgcloud/admin/common/organisationseinheit/OrganisationsEinheitWithSettings.java
@@ -2,8 +2,9 @@ package de.ozgcloud.admin.common.organisationseinheit;
 
 import de.ozgcloud.admin.organisationseinheit.OrganisationsEinheitSettings;
 
-interface OrganisationsEinheitWithSettings {
+record OrganisationsEinheitWithSettings(
+		String organisationsEinheitId,
+		OrganisationsEinheitSettings settings
+) {
 
-	String getOrganisationsEinheitId();
-	OrganisationsEinheitSettings getSettings();
 }
diff --git a/src/test/java/de/ozgcloud/admin/common/organisationseinheit/OrganisationsEinheitSettingsRepositoryITCase.java b/src/test/java/de/ozgcloud/admin/common/organisationseinheit/OrganisationsEinheitSettingsRepositoryITCase.java
index 548f6f55b7062c6f5a6887833394d2182d665c45..b70ef355262d34d93f857a7a59da3a3b0ad02cb2 100644
--- a/src/test/java/de/ozgcloud/admin/common/organisationseinheit/OrganisationsEinheitSettingsRepositoryITCase.java
+++ b/src/test/java/de/ozgcloud/admin/common/organisationseinheit/OrganisationsEinheitSettingsRepositoryITCase.java
@@ -74,7 +74,7 @@ class OrganisationsEinheitSettingsRepositoryITCase {
 		void shouldFind() {
 			var found = repository.getSettings();
 
-			assertThat(found).extracting(OrganisationsEinheitWithSettings::getOrganisationsEinheitId, item -> item.getSettings().getSignatur())
+			assertThat(found).extracting(OrganisationsEinheitWithSettings::organisationsEinheitId, item -> item.settings().getSignatur())
 					.containsExactlyInAnyOrder(
 							tuple(withSignatur1.getOrganisationsEinheitId(), withSignatur1.getSettings().getSignatur()),
 							tuple(withSignatur2.getOrganisationsEinheitId(), withSignatur2.getSettings().getSignatur()));
diff --git a/src/test/java/de/ozgcloud/admin/common/organisationseinheit/OrganisationsEinheitSettingsServiceTest.java b/src/test/java/de/ozgcloud/admin/common/organisationseinheit/OrganisationsEinheitSettingsServiceTest.java
index f6283b9230c77de52f71b43888baf5a225574b93..31f59f63513a01b632fb84ec6a098cbdc815e832 100644
--- a/src/test/java/de/ozgcloud/admin/common/organisationseinheit/OrganisationsEinheitSettingsServiceTest.java
+++ b/src/test/java/de/ozgcloud/admin/common/organisationseinheit/OrganisationsEinheitSettingsServiceTest.java
@@ -1,12 +1,19 @@
 package de.ozgcloud.admin.common.organisationseinheit;
 
-import static org.assertj.core.api.Assertions.*;
-import static org.mockito.ArgumentMatchers.*;
-import static org.mockito.Mockito.*;
+import static org.assertj.core.api.Assertions.assertThat;
+import static org.assertj.core.api.Assertions.entry;
+import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.Mockito.doReturn;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.times;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
 
+import de.ozgcloud.admin.organisationseinheit.OrganisationsEinheitSettings;
+import de.ozgcloud.admin.organisationseinheit.OrganisationsEinheitSettingsTestFactory;
+import de.ozgcloud.admin.organisationseinheit.OrganisationsEinheitTestFactory;
 import java.util.Map;
 import java.util.stream.Stream;
-
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Nested;
 import org.junit.jupiter.api.Test;
@@ -14,12 +21,9 @@ import org.mockito.ArgumentCaptor;
 import org.mockito.Captor;
 import org.mockito.InjectMocks;
 import org.mockito.Mock;
+import org.mockito.Mockito;
 import org.mockito.Spy;
 
-import de.ozgcloud.admin.organisationseinheit.OrganisationsEinheitSettings;
-import de.ozgcloud.admin.organisationseinheit.OrganisationsEinheitSettingsTestFactory;
-import de.ozgcloud.admin.organisationseinheit.OrganisationsEinheitTestFactory;
-
 class OrganisationsEinheitSettingsServiceTest {
 
 	@Mock
@@ -31,16 +35,16 @@ class OrganisationsEinheitSettingsServiceTest {
 	private final OrganisationsEinheitWithSettings withSettings1 = mockWith(OrganisationsEinheitTestFactory.ID,
 			OrganisationsEinheitSettingsTestFactory.create());
 
-	@BeforeEach
-	void init() {
-		when(settingsRepository.getSettings()).thenReturn(Stream.of(withSettings1));
-	}
-
 	@Nested
 	class TestGetSettings {
 
+		@BeforeEach
+		void init2() {
+			when(settingsRepository.getSettings()).thenReturn(Stream.of(withSettings1));
+		}
+
 		private final Map<String, OrganisationsEinheitSettings> settingsMap = Map.of(
-			OrganisationsEinheitTestFactory.ORGANISATIONS_EINHEIT_ID, OrganisationsEinheitSettingsTestFactory.create()
+				OrganisationsEinheitTestFactory.ORGANISATIONS_EINHEIT_ID, OrganisationsEinheitSettingsTestFactory.create()
 		);
 
 		@Captor
@@ -74,12 +78,63 @@ class OrganisationsEinheitSettingsServiceTest {
 	@Nested
 	class TestGetSettingsMap {
 
+		@Test
+		void shouldUseGetterWhenMapping() {
+			OrganisationsEinheitWithSettings settings = Mockito.mock(OrganisationsEinheitWithSettings.class);
+			doReturn(OrganisationsEinheitTestFactory.ORGANISATIONS_EINHEIT_ID).when(settings).organisationsEinheitId();
+			doReturn(OrganisationsEinheitSettingsTestFactory.create()).when(settings).settings();
+
+			callService(Stream.of(settings));
+
+			verify(settings, times(1)).organisationsEinheitId();
+			verify(settings, times(1)).settings();
+		}
+
+		@Test
+		void shouldConvertToMap() {
+			OrganisationsEinheitWithSettings oews = OrganisationsEinheitWithSettingsTestFactory.create();
+
+			var settingsMap = callService(Stream.of(oews));
+
+			assertThat(settingsMap).containsEntry(OrganisationsEinheitTestFactory.ORGANISATIONS_EINHEIT_ID, oews.settings());
+		}
+
+		@Test
+		void shouldGetEmptyMapIfStreamEmpty() {
+			var settingsMap = callService(Stream.of());
+
+			assertThat(settingsMap).size().isEqualTo(0);
+		}
+
+		@Test
+		void shouldGetEmptyMapIfNull() {
+			var settingsMap = callService(null);
+
+			assertThat(settingsMap).size().isEqualTo(0);
+		}
+
+		@Test
+		void shouldHaveAllEntries() {
+			OrganisationsEinheitWithSettings owes = OrganisationsEinheitWithSettingsTestFactory.create();
+			OrganisationsEinheitWithSettings owes2 = OrganisationsEinheitWithSettingsTestFactory.createAnother();
+
+			var settingsMap = callService(Stream.of(owes, owes2));
+
+			assertThat(settingsMap).containsExactly(
+					entry(owes.organisationsEinheitId(), owes.settings()),
+					entry(owes2.organisationsEinheitId(), owes2.settings()));
+		}
+
+		Map<String, OrganisationsEinheitSettings> callService(Stream<OrganisationsEinheitWithSettings> settings) {
+			return service.getSettingsMap(settings);
+		}
+
 	}
 
 	private OrganisationsEinheitWithSettings mockWith(String organisationsEinheitId, OrganisationsEinheitSettings settings) {
 		var withSettings = mock(OrganisationsEinheitWithSettings.class);
-		when(withSettings.getOrganisationsEinheitId()).thenReturn(organisationsEinheitId);
-		when(withSettings.getSettings()).thenReturn(settings);
+		when(withSettings.organisationsEinheitId()).thenReturn(organisationsEinheitId);
+		when(withSettings.settings()).thenReturn(settings);
 		return withSettings;
 	}
 }
diff --git a/src/test/java/de/ozgcloud/admin/common/organisationseinheit/OrganisationsEinheitWithSettingsTestFactory.java b/src/test/java/de/ozgcloud/admin/common/organisationseinheit/OrganisationsEinheitWithSettingsTestFactory.java
new file mode 100644
index 0000000000000000000000000000000000000000..7e787bdf8c161a2f93720ddb758c92a64030afed
--- /dev/null
+++ b/src/test/java/de/ozgcloud/admin/common/organisationseinheit/OrganisationsEinheitWithSettingsTestFactory.java
@@ -0,0 +1,22 @@
+package de.ozgcloud.admin.common.organisationseinheit;
+
+import de.ozgcloud.admin.organisationseinheit.OrganisationsEinheitSettingsTestFactory;
+import de.ozgcloud.admin.organisationseinheit.OrganisationsEinheitTestFactory;
+import java.util.UUID;
+
+public class OrganisationsEinheitWithSettingsTestFactory {
+
+	public static OrganisationsEinheitWithSettings create() {
+		return new OrganisationsEinheitWithSettings(
+				OrganisationsEinheitTestFactory.ORGANISATIONS_EINHEIT_ID,
+				OrganisationsEinheitSettingsTestFactory.create()
+		);
+	}
+
+	public static OrganisationsEinheitWithSettings createAnother() {
+		return new OrganisationsEinheitWithSettings(
+				UUID.randomUUID().toString(),
+				OrganisationsEinheitSettingsTestFactory.create()
+		);
+	}
+}