diff --git a/.gitignore b/.gitignore
index 3fc1d884b983db7cd48581b4198239e70ebc5119..a09bba8b6414208729c55e43adae3398e26e0a13 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,6 +1,6 @@
 HELP.md
 target/
-!.mvn/wrapper/maven-wrapper.jar
+!user-manager/.mvn/wrapper/maven-wrapper.jar
 !**/src/main/**/target/
 !**/src/test/**/target/
 
diff --git a/pom.xml b/pom.xml
index 2eedc3b34b128ce7a269b8ff82f5f49f22cba7a9..cd91faff17d9077089442f19d6c691ade0e893be 100644
--- a/pom.xml
+++ b/pom.xml
@@ -1,321 +1,17 @@
-<?xml version="1.0"?>
-<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
-	<modelVersion>4.0.0</modelVersion>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
 
-	<groupId>de.itvsh.kop.user</groupId>
-	<artifactId>user-manager</artifactId>
+	<modelVersion>4.0.0</modelVersion>
+	<groupId>de.itvsh.ozg</groupId>
+	<artifactId>pluto</artifactId>
 	<version>0.2.0-SNAPSHOT</version>
-	<name>Kop UserManager</name>
-
-	<properties>
-		<skipITs>true</skipITs>
-
-		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
-		<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
-		<compiler-plugin.version>3.8.1</compiler-plugin.version>
-		<maven.compiler.release>17</maven.compiler.release>
-
-		<kop-common.version>1.1.4-SNAPSHOT</kop-common.version>
-
-		<jacoco.plugin.version>0.8.8</jacoco.plugin.version>
-		<quarkus.platform.version>2.10.3.Final</quarkus.platform.version>
-		<surefire-plugin.version>3.0.0-M7</surefire-plugin.version>
-		<maven-failsafe-plugin.version>3.0.0-M7</maven-failsafe-plugin.version>
-		<git-commit-id-plugin.version>4.9.10</git-commit-id-plugin.version>
-		<quarkus-logging-json.version>1.1.1</quarkus-logging-json.version>
-		
-		<!-- Versions already declared in kop-common-dependencies bom -> use bom as parent!? -->
-		<mapstruct.version>1.5.1.Final</mapstruct.version>
-		<lombok.version>1.18.24</lombok.version>
-		<commons-lang3.version>3.12.0</commons-lang3.version>
-	</properties>
-
-	<dependencyManagement>
-		<dependencies>
-			<dependency>
-				<groupId>io.quarkus.platform</groupId>
-				<artifactId>quarkus-bom</artifactId>
-				<version>${quarkus.platform.version}</version>
-				<type>pom</type>
-				<scope>import</scope>
-			</dependency>
-			<dependency>
-				<groupId>de.itvsh.kop.common</groupId>
-				<artifactId>kop-common-dependencies</artifactId>
-				<version>${kop-common.version}</version>
-				<type>pom</type>
-				<scope>import</scope>
-			</dependency>
-		</dependencies>
-	</dependencyManagement>
-
-	<dependencies>
-		<!-- Quarkus -->
-		<dependency>
-			<groupId>io.quarkus</groupId>
-			<artifactId>quarkus-resteasy-reactive-jackson</artifactId>
-		</dependency>
-		<dependency>
-			<groupId>io.quarkus</groupId>
-			<artifactId>quarkus-arc</artifactId>
-		</dependency>
-		<dependency>
-			<groupId>io.quarkus</groupId>
-			<artifactId>quarkus-config-yaml</artifactId>
-		</dependency>
-		<dependency>
-			<groupId>io.quarkus</groupId>
-			<artifactId>quarkus-micrometer-registry-prometheus</artifactId>
-		</dependency>
-		<dependency>
-			<groupId>io.quarkus</groupId>
-			<artifactId>quarkus-smallrye-health</artifactId>
-		</dependency>
-		<dependency>
-			<groupId>io.quarkus</groupId>
-			<artifactId>quarkus-keycloak-admin-client</artifactId>
-		</dependency>
-		<dependency>
-			<groupId>io.quarkus</groupId>
-			<artifactId>quarkus-mongodb-client</artifactId>
-		</dependency>
-		<dependency>
-			<groupId>io.quarkus</groupId>
-			<artifactId>quarkus-mongodb-panache</artifactId>
-		</dependency>
-		<dependency>
-			<groupId>io.quarkus</groupId>
-			<artifactId>quarkus-resteasy-reactive</artifactId>
-		</dependency>
-		<dependency>
-			<groupId>io.quarkus</groupId>
-			<artifactId>quarkus-scheduler</artifactId>
-		</dependency>
-		<dependency>
-			<groupId>org.projectlombok</groupId>
-			<artifactId>lombok</artifactId>
-		</dependency>
-		<dependency>
-			<groupId>org.apache.commons</groupId>
-			<artifactId>commons-lang3</artifactId>
-		</dependency>
-		<dependency>
-			<groupId>org.apache.commons</groupId>
-			<artifactId>commons-collections4</artifactId>
-		</dependency>
-		<dependency>
-			<groupId>io.quarkus</groupId>
-			<artifactId>quarkus-oidc</artifactId>
-		</dependency>
-		
-		<!-- Logging -->
-		<dependency>
-			<groupId>io.quarkiverse.loggingjson</groupId>
-			<artifactId>quarkus-logging-json</artifactId>
-			<version>${quarkus-logging-json.version}</version>
-		</dependency>
-		<dependency>
-		    <groupId>org.jboss.logmanager</groupId>
-		    <artifactId>log4j2-jboss-logmanager</artifactId> 
-		</dependency>
-
-		<!-- Tools -->
-		<dependency>
-			<groupId>io.quarkus</groupId>
-			<artifactId>quarkus-jacoco</artifactId>
-			<scope>test</scope>
-		</dependency>
-		<dependency>
-			<groupId>io.quarkus</groupId>
-			<artifactId>quarkus-container-image-jib</artifactId>
-		</dependency>
-		<dependency>
-			<groupId>org.mapstruct</groupId>
-			<artifactId>mapstruct</artifactId>
-			<scope>provided</scope>
-		</dependency>
-		<dependency>
-			<groupId>io.quarkus</groupId>
-			<artifactId>quarkus-test-keycloak-server</artifactId>
-			<scope>test</scope>
-		</dependency>
-		<dependency>
-			<groupId>org.mapstruct</groupId>
-			<artifactId>mapstruct-processor</artifactId>
-			<version>${mapstruct.version}</version>
-			<scope>provided</scope>
-		</dependency>
-		<dependency>
-			<groupId>com.thedeanda</groupId>
-			<artifactId>lorem</artifactId>
-			<scope>test</scope>
-		</dependency>
-
-		<!-- Test -->
-		<dependency>
-			<groupId>io.quarkus</groupId>
-			<artifactId>quarkus-junit5</artifactId>
-			<scope>test</scope>
-		</dependency>
-		<dependency>
-		    <groupId>io.quarkus</groupId>
-		    <artifactId>quarkus-junit5-mockito</artifactId>
-		    <scope>test</scope>
-		</dependency>
-		<dependency>
-			<groupId>io.quarkus</groupId>
-			<artifactId>quarkus-panache-mock</artifactId>
-			<scope>test</scope>
-		</dependency>
-		<dependency>
-			<groupId>io.rest-assured</groupId>
-			<artifactId>rest-assured</artifactId>
-			<scope>test</scope>
-		</dependency>
-		<dependency>
-			<groupId>org.assertj</groupId>
-			<artifactId>assertj-core</artifactId>
-			<scope>test</scope>
-		</dependency>
-		<dependency>
-			<groupId>org.mockito</groupId>
-			<artifactId>mockito-junit-jupiter</artifactId>
-			<scope>test</scope>
-		</dependency>
-	</dependencies>
 
-	<build>
-		<plugins>
-			<plugin>
-				<groupId>io.quarkus.platform</groupId>
-				<artifactId>quarkus-maven-plugin</artifactId>
-				<version>${quarkus.platform.version}</version>
-				<extensions>true</extensions>
-				<executions>
-					<execution>
-						<goals>
-							<goal>build</goal>
-							<goal>generate-code</goal>
-							<goal>generate-code-tests</goal>
-						</goals>
-					</execution>
-				</executions>
-			</plugin>
-			<plugin>
-				<artifactId>maven-compiler-plugin</artifactId>
-				<version>${compiler-plugin.version}</version>
-				<configuration>
-					<fork>true</fork>
-						<annotationProcessorPaths>
-							<path>
-								<groupId>org.projectlombok</groupId>
-								<artifactId>lombok</artifactId>
-								<version>${lombok.version}</version>
-							</path>
-							<path>
-								<groupId>org.mapstruct</groupId>
-								<artifactId>mapstruct-processor</artifactId>
-								<version>${mapstruct.version}</version>
-							</path>
-							<!-- other annotation processors -->
-						</annotationProcessorPaths>
-					<showWarnings>true</showWarnings>
-					<compilerArgs>
-						<arg>-parameters</arg>
-						<compilerArg>
-								-Amapstruct.defaultComponentModel=cdi
-							</compilerArg>
-							<compilerArg>
-								-Amapstruct.unmappedTargetPolicy=WARN
-							</compilerArg>
-					</compilerArgs>					
-				</configuration>
-			</plugin>
-			<plugin>
-				<artifactId>maven-surefire-plugin</artifactId>
-				<version>${surefire-plugin.version}</version>
-				<configuration>
-					<systemPropertyVariables>
-						<java.util.logging.manager>org.jboss.logmanager.LogManager</java.util.logging.manager>
-						<maven.home>${maven.home}</maven.home>
-					</systemPropertyVariables>
-				</configuration>
-			</plugin>
-			<plugin>
-				<artifactId>maven-failsafe-plugin</artifactId>
-				<version>${maven-failsafe-plugin.version}</version>
-				<executions>
-					<execution>
-						<goals>
-							<goal>integration-test</goal>
-							<goal>verify</goal>
-						</goals>
-						<configuration>
-							<systemPropertyVariables>
-								<native.image.path>${project.build.directory}/${project.build.finalName}-runner</native.image.path>
-								<java.util.logging.manager>org.jboss.logmanager.LogManager</java.util.logging.manager>
-								<maven.home>${maven.home}</maven.home>
-							</systemPropertyVariables>
-						</configuration>
-					</execution>
-				</executions>
-				<configuration>
-					<argLine>${surefire.jacoco.args}</argLine>
-					<classesDirectory>${project.build.outputDirectory}</classesDirectory>
-				</configuration>
-			</plugin>
-			<plugin>
-				<groupId>pl.project13.maven</groupId>
-				<artifactId>git-commit-id-plugin</artifactId>
-				<version>${git-commit-id-plugin.version}</version>
-				<executions>
-					<execution>
-						<id>get-the-git-infos</id>
-						<phase>initialize</phase>
-						<goals>
-							<goal>revision</goal>
-						</goals>
-					</execution>
-				</executions>
-				<configuration>
-					<offline>true</offline>
-				</configuration>
-			</plugin>
-			<plugin>
-				<groupId>org.jacoco</groupId>
-				<artifactId>jacoco-maven-plugin</artifactId>
-				<version>${jacoco.plugin.version}</version>
-				<executions>
-					<execution>
-						<id>start-agent</id>
-						<goals>
-							<goal>prepare-agent</goal>
-						</goals>
-						<configuration>
-							<propertyName>surefire.jacoco.args</propertyName>
-						</configuration>
-					</execution>
-					<execution>
-						<id>generate-report</id>
-						<phase>package</phase>
-						<goals>
-							<goal>report</goal>
-						</goals>
-					</execution>
-				</executions>
-			</plugin>
-		</plugins>
-	</build>
+	<name>User Manager Parent</name>
+	<packaging>pom</packaging>
 
-	<profiles>
-		<profile>
-			<id>native</id>
-			<properties>
-				<skipITs>false</skipITs>
-				<quarkus.package.type>native</quarkus.package.type>
-			</properties>
-		</profile>
-	</profiles>
+	<modules>
+		<module>user-manager</module>
+		<module>user-manager-interface</module>
+	</modules>
 
 	<distributionManagement>
 		<repository>
@@ -330,3 +26,4 @@
 		</snapshotRepository>
 	</distributionManagement>
 </project>
+	
diff --git a/user-manager-interface/pom.xml b/user-manager-interface/pom.xml
new file mode 100644
index 0000000000000000000000000000000000000000..eb58654866c594b8415dd7dbae965a7ed1e6a27e
--- /dev/null
+++ b/user-manager-interface/pom.xml
@@ -0,0 +1,81 @@
+<?xml version="1.0"?>
+<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+    <modelVersion>4.0.0</modelVersion>
+
+    <parent>
+        <groupId>de.itvsh.kop.common</groupId>
+        <artifactId>kop-common-dependencies</artifactId>
+        <version>1.2.0-SNAPSHOT</version>
+        <relativePath/>
+    </parent>
+
+    <groupId>de.itvsh.kop.user</groupId>
+    <artifactId>user-manager-interface</artifactId>
+    <version>0.2.0-SNAPSHOT</version>
+
+    <name>UserManager Interface</name>
+    <description>gRPC Interface for User Manager</description>
+
+    <properties>
+        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
+
+        <java.version>17</java.version>
+        <maven.compiler.source>${java.version}</maven.compiler.source>
+        <maven.compiler.target>${java.version}</maven.compiler.target>
+    </properties>
+
+    <dependencies>
+        <!-- GRPC -->
+        <dependency>
+            <groupId>io.grpc</groupId>
+            <artifactId>grpc-stub</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>io.grpc</groupId>
+            <artifactId>grpc-protobuf</artifactId>
+        </dependency>
+
+        <!-- Java 9+ compatibility -->
+        <dependency>
+            <groupId>javax.annotation</groupId>
+            <artifactId>javax.annotation-api</artifactId>
+        </dependency>
+    </dependencies>
+
+    <build>
+        <extensions>
+            <extension>
+                <groupId>kr.motd.maven</groupId>
+                <artifactId>os-maven-plugin</artifactId>
+            </extension>
+        </extensions>
+
+        <plugins>
+            <plugin>
+                <groupId>com.github.os72</groupId>
+                <artifactId>protoc-jar-maven-plugin</artifactId>
+                <version>${protoc-jar-plugin.version}</version>
+                <executions>
+                    <execution>
+                        <phase>generate-sources</phase>
+                        <goals>
+                            <goal>run</goal>
+                        </goals>
+                        <configuration>
+                            <outputTargets>
+                                <outputTarget>
+                                    <type>java</type>
+                                </outputTarget>
+                                <outputTarget>
+                                    <type>grpc-java</type>
+                                    <pluginArtifact>io.grpc:protoc-gen-grpc-java:1.47.0</pluginArtifact>
+                                </outputTarget>
+                            </outputTargets>
+                        </configuration>
+                    </execution>
+                </executions>
+            </plugin>
+        </plugins>
+    </build>
+</project>
\ No newline at end of file
diff --git a/user-manager-interface/src/main/protobuf/usermanager_service.proto b/user-manager-interface/src/main/protobuf/usermanager_service.proto
new file mode 100644
index 0000000000000000000000000000000000000000..dc1d12b884956bac00d84bff056d63bcaeb5dad4
--- /dev/null
+++ b/user-manager-interface/src/main/protobuf/usermanager_service.proto
@@ -0,0 +1,25 @@
+syntax = "proto3";
+
+package de.itvsh.kop.user.grpc;
+
+option java_multiple_files = true;
+option java_package = "de.itvsh.kop.user.grpc";
+option java_outer_classname = "UserManagerServiceProto";
+
+message RecipientSearchRequest {
+  string organisationseinheitId = 1;
+}
+
+message Recipient {
+  string firstName = 1;
+  string lastName = 2;
+  string email = 3;
+}
+
+message RecipientSearchResponse {
+  repeated Recipient recipients = 1;
+}
+
+service RecipientService {
+  rpc findRecipientByOrganisationsEinheitId(RecipientSearchRequest) returns (RecipientSearchResponse);
+}
\ No newline at end of file
diff --git a/.mvn/wrapper/maven-wrapper.jar b/user-manager/.mvn/wrapper/maven-wrapper.jar
similarity index 100%
rename from .mvn/wrapper/maven-wrapper.jar
rename to user-manager/.mvn/wrapper/maven-wrapper.jar
diff --git a/.mvn/wrapper/maven-wrapper.properties b/user-manager/.mvn/wrapper/maven-wrapper.properties
similarity index 100%
rename from .mvn/wrapper/maven-wrapper.properties
rename to user-manager/.mvn/wrapper/maven-wrapper.properties
diff --git a/lombok.config b/user-manager/lombok.config
similarity index 100%
rename from lombok.config
rename to user-manager/lombok.config
diff --git a/user-manager/pom.xml b/user-manager/pom.xml
new file mode 100644
index 0000000000000000000000000000000000000000..4118650958b962470bf91d720f5b9e62405bcd9e
--- /dev/null
+++ b/user-manager/pom.xml
@@ -0,0 +1,326 @@
+<?xml version="1.0"?>
+<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+	<modelVersion>4.0.0</modelVersion>
+
+	<groupId>de.itvsh.kop.user</groupId>
+	<artifactId>user-manager</artifactId>
+	<version>0.2.0-SNAPSHOT</version>
+	<name>Kop UserManager</name>
+
+	<properties>
+		<skipITs>true</skipITs>
+
+		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+		<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
+		<compiler-plugin.version>3.8.1</compiler-plugin.version>
+		<maven.compiler.release>17</maven.compiler.release>
+
+		<kop-common.version>1.1.4-SNAPSHOT</kop-common.version>
+
+		<jacoco.plugin.version>0.8.8</jacoco.plugin.version>
+		<quarkus.platform.version>2.10.3.Final</quarkus.platform.version>
+		<surefire-plugin.version>3.0.0-M7</surefire-plugin.version>
+		<maven-failsafe-plugin.version>3.0.0-M7</maven-failsafe-plugin.version>
+		<git-commit-id-plugin.version>4.9.10</git-commit-id-plugin.version>
+		<quarkus-logging-json.version>1.1.1</quarkus-logging-json.version>
+		
+		<!-- Versions already declared in kop-common-dependencies bom -> use bom as parent!? -->
+		<mapstruct.version>1.5.1.Final</mapstruct.version>
+		<lombok.version>1.18.24</lombok.version>
+		<commons-lang3.version>3.12.0</commons-lang3.version>
+	</properties>
+
+	<dependencyManagement>
+		<dependencies>
+			<!-- Quarkus -->
+			<dependency>
+				<groupId>io.quarkus.platform</groupId>
+				<artifactId>quarkus-bom</artifactId>
+				<version>${quarkus.platform.version}</version>
+				<type>pom</type>
+				<scope>import</scope>
+			</dependency>
+			<dependency>
+				<groupId>de.itvsh.kop.common</groupId>
+				<artifactId>kop-common-dependencies</artifactId>
+				<version>${kop-common.version}</version>
+				<type>pom</type>
+				<scope>import</scope>
+			</dependency>
+		</dependencies>
+	</dependencyManagement>
+
+	<dependencies>
+		<dependency>
+			<groupId>de.itvsh.kop.user</groupId>
+			<artifactId>user-manager-interface</artifactId>
+			<version>${project.version}</version>
+		</dependency>
+		<!-- Quarkus -->
+		<dependency>
+			<groupId>io.quarkus</groupId>
+			<artifactId>quarkus-resteasy-reactive-jackson</artifactId>
+		</dependency>
+		<dependency>
+			<groupId>io.quarkus</groupId>
+			<artifactId>quarkus-arc</artifactId>
+		</dependency>
+		<dependency>
+			<groupId>io.quarkus</groupId>
+			<artifactId>quarkus-config-yaml</artifactId>
+		</dependency>
+		<dependency>
+			<groupId>io.quarkus</groupId>
+			<artifactId>quarkus-micrometer-registry-prometheus</artifactId>
+		</dependency>
+		<dependency>
+			<groupId>io.quarkus</groupId>
+			<artifactId>quarkus-smallrye-health</artifactId>
+		</dependency>
+		<dependency>
+			<groupId>io.quarkus</groupId>
+			<artifactId>quarkus-keycloak-admin-client</artifactId>
+		</dependency>
+		<dependency>
+			<groupId>io.quarkus</groupId>
+			<artifactId>quarkus-mongodb-client</artifactId>
+		</dependency>
+		<dependency>
+			<groupId>io.quarkus</groupId>
+			<artifactId>quarkus-mongodb-panache</artifactId>
+		</dependency>
+		<dependency>
+			<groupId>io.quarkus</groupId>
+			<artifactId>quarkus-resteasy-reactive</artifactId>
+		</dependency>
+		<dependency>
+			<groupId>io.quarkus</groupId>
+			<artifactId>quarkus-scheduler</artifactId>
+		</dependency>
+		<dependency>
+			<groupId>org.projectlombok</groupId>
+			<artifactId>lombok</artifactId>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.commons</groupId>
+			<artifactId>commons-lang3</artifactId>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.commons</groupId>
+			<artifactId>commons-collections4</artifactId>
+		</dependency>
+		<dependency>
+			<groupId>io.quarkus</groupId>
+			<artifactId>quarkus-oidc</artifactId>
+		</dependency>
+		
+		<!-- Logging -->
+		<dependency>
+			<groupId>io.quarkiverse.loggingjson</groupId>
+			<artifactId>quarkus-logging-json</artifactId>
+			<version>${quarkus-logging-json.version}</version>
+		</dependency>
+		<dependency>
+		    <groupId>org.jboss.logmanager</groupId>
+		    <artifactId>log4j2-jboss-logmanager</artifactId> 
+		</dependency>
+
+		<!-- Tools -->
+		<dependency>
+			<groupId>io.quarkus</groupId>
+			<artifactId>quarkus-jacoco</artifactId>
+			<scope>test</scope>
+		</dependency>
+		<dependency>
+			<groupId>io.quarkus</groupId>
+			<artifactId>quarkus-container-image-jib</artifactId>
+		</dependency>
+		<dependency>
+			<groupId>org.mapstruct</groupId>
+			<artifactId>mapstruct</artifactId>
+			<scope>provided</scope>
+		</dependency>
+		<dependency>
+			<groupId>io.quarkus</groupId>
+			<artifactId>quarkus-test-keycloak-server</artifactId>
+			<scope>test</scope>
+		</dependency>
+		<dependency>
+			<groupId>org.mapstruct</groupId>
+			<artifactId>mapstruct-processor</artifactId>
+			<version>${mapstruct.version}</version>
+			<scope>provided</scope>
+		</dependency>
+		<dependency>
+			<groupId>com.thedeanda</groupId>
+			<artifactId>lorem</artifactId>
+			<scope>test</scope>
+		</dependency>
+
+		<!-- Test -->
+		<dependency>
+			<groupId>io.quarkus</groupId>
+			<artifactId>quarkus-junit5</artifactId>
+			<scope>test</scope>
+		</dependency>
+		<dependency>
+		    <groupId>io.quarkus</groupId>
+		    <artifactId>quarkus-junit5-mockito</artifactId>
+		    <scope>test</scope>
+		</dependency>
+		<dependency>
+			<groupId>io.quarkus</groupId>
+			<artifactId>quarkus-panache-mock</artifactId>
+			<scope>test</scope>
+		</dependency>
+		<dependency>
+			<groupId>io.rest-assured</groupId>
+			<artifactId>rest-assured</artifactId>
+			<scope>test</scope>
+		</dependency>
+		<dependency>
+			<groupId>org.assertj</groupId>
+			<artifactId>assertj-core</artifactId>
+			<scope>test</scope>
+		</dependency>
+		<dependency>
+			<groupId>org.mockito</groupId>
+			<artifactId>mockito-junit-jupiter</artifactId>
+			<scope>test</scope>
+		</dependency>
+	</dependencies>
+
+	<build>
+		<plugins>
+			<plugin>
+				<groupId>io.quarkus.platform</groupId>
+				<artifactId>quarkus-maven-plugin</artifactId>
+				<version>${quarkus.platform.version}</version>
+				<extensions>true</extensions>
+				<executions>
+					<execution>
+						<goals>
+							<goal>build</goal>
+							<goal>generate-code</goal>
+							<goal>generate-code-tests</goal>
+						</goals>
+					</execution>
+				</executions>
+			</plugin>
+			<plugin>
+				<artifactId>maven-compiler-plugin</artifactId>
+				<version>${compiler-plugin.version}</version>
+				<configuration>
+					<fork>true</fork>
+						<annotationProcessorPaths>
+							<path>
+								<groupId>org.projectlombok</groupId>
+								<artifactId>lombok</artifactId>
+								<version>${lombok.version}</version>
+							</path>
+							<path>
+								<groupId>org.mapstruct</groupId>
+								<artifactId>mapstruct-processor</artifactId>
+								<version>${mapstruct.version}</version>
+							</path>
+							<!-- other annotation processors -->
+						</annotationProcessorPaths>
+					<showWarnings>true</showWarnings>
+					<compilerArgs>
+						<arg>-parameters</arg>
+						<compilerArg>
+								-Amapstruct.defaultComponentModel=cdi
+							</compilerArg>
+							<compilerArg>
+								-Amapstruct.unmappedTargetPolicy=WARN
+							</compilerArg>
+					</compilerArgs>					
+				</configuration>
+			</plugin>
+			<plugin>
+				<artifactId>maven-surefire-plugin</artifactId>
+				<version>${surefire-plugin.version}</version>
+				<configuration>
+					<systemPropertyVariables>
+						<java.util.logging.manager>org.jboss.logmanager.LogManager</java.util.logging.manager>
+						<maven.home>${maven.home}</maven.home>
+					</systemPropertyVariables>
+				</configuration>
+			</plugin>
+			<plugin>
+				<artifactId>maven-failsafe-plugin</artifactId>
+				<version>${maven-failsafe-plugin.version}</version>
+				<executions>
+					<execution>
+						<goals>
+							<goal>integration-test</goal>
+							<goal>verify</goal>
+						</goals>
+						<configuration>
+							<systemPropertyVariables>
+								<native.image.path>${project.build.directory}/${project.build.finalName}-runner</native.image.path>
+								<java.util.logging.manager>org.jboss.logmanager.LogManager</java.util.logging.manager>
+								<maven.home>${maven.home}</maven.home>
+							</systemPropertyVariables>
+						</configuration>
+					</execution>
+				</executions>
+				<configuration>
+					<argLine>${surefire.jacoco.args}</argLine>
+					<classesDirectory>${project.build.outputDirectory}</classesDirectory>
+				</configuration>
+			</plugin>
+			<plugin>
+				<groupId>pl.project13.maven</groupId>
+				<artifactId>git-commit-id-plugin</artifactId>
+				<version>${git-commit-id-plugin.version}</version>
+				<executions>
+					<execution>
+						<id>get-the-git-infos</id>
+						<phase>initialize</phase>
+						<goals>
+							<goal>revision</goal>
+						</goals>
+					</execution>
+				</executions>
+				<configuration>
+					<offline>true</offline>
+				</configuration>
+			</plugin>
+			<plugin>
+				<groupId>org.jacoco</groupId>
+				<artifactId>jacoco-maven-plugin</artifactId>
+				<version>${jacoco.plugin.version}</version>
+				<executions>
+					<execution>
+						<id>start-agent</id>
+						<goals>
+							<goal>prepare-agent</goal>
+						</goals>
+						<configuration>
+							<propertyName>surefire.jacoco.args</propertyName>
+						</configuration>
+					</execution>
+					<execution>
+						<id>generate-report</id>
+						<phase>package</phase>
+						<goals>
+							<goal>report</goal>
+						</goals>
+					</execution>
+				</executions>
+			</plugin>
+		</plugins>
+	</build>
+
+	<profiles>
+		<profile>
+			<id>native</id>
+			<properties>
+				<skipITs>false</skipITs>
+				<quarkus.package.type>native</quarkus.package.type>
+			</properties>
+		</profile>
+	</profiles>
+
+</project>
diff --git a/src/main/docker/Dockerfile.jvm b/user-manager/src/main/docker/Dockerfile.jvm
similarity index 100%
rename from src/main/docker/Dockerfile.jvm
rename to user-manager/src/main/docker/Dockerfile.jvm
diff --git a/src/main/docker/Dockerfile.legacy-jar b/user-manager/src/main/docker/Dockerfile.legacy-jar
similarity index 100%
rename from src/main/docker/Dockerfile.legacy-jar
rename to user-manager/src/main/docker/Dockerfile.legacy-jar
diff --git a/src/main/docker/Dockerfile.native b/user-manager/src/main/docker/Dockerfile.native
similarity index 100%
rename from src/main/docker/Dockerfile.native
rename to user-manager/src/main/docker/Dockerfile.native
diff --git a/src/main/docker/Dockerfile.native-micro b/user-manager/src/main/docker/Dockerfile.native-micro
similarity index 100%
rename from src/main/docker/Dockerfile.native-micro
rename to user-manager/src/main/docker/Dockerfile.native-micro
diff --git a/src/main/docker/Dockerfile.quarkus b/user-manager/src/main/docker/Dockerfile.quarkus
similarity index 100%
rename from src/main/docker/Dockerfile.quarkus
rename to user-manager/src/main/docker/Dockerfile.quarkus
diff --git a/src/main/docker/README.md b/user-manager/src/main/docker/README.md
similarity index 100%
rename from src/main/docker/README.md
rename to user-manager/src/main/docker/README.md
diff --git a/src/main/java/de/itvsh/kop/user/LivenessCheck.java b/user-manager/src/main/java/de/itvsh/kop/user/LivenessCheck.java
similarity index 100%
rename from src/main/java/de/itvsh/kop/user/LivenessCheck.java
rename to user-manager/src/main/java/de/itvsh/kop/user/LivenessCheck.java
diff --git a/src/main/java/de/itvsh/kop/user/RemoteUserIterator.java b/user-manager/src/main/java/de/itvsh/kop/user/RemoteUserIterator.java
similarity index 100%
rename from src/main/java/de/itvsh/kop/user/RemoteUserIterator.java
rename to user-manager/src/main/java/de/itvsh/kop/user/RemoteUserIterator.java
diff --git a/src/main/java/de/itvsh/kop/user/User.java b/user-manager/src/main/java/de/itvsh/kop/user/User.java
similarity index 100%
rename from src/main/java/de/itvsh/kop/user/User.java
rename to user-manager/src/main/java/de/itvsh/kop/user/User.java
diff --git a/src/main/java/de/itvsh/kop/user/UserRepository.java b/user-manager/src/main/java/de/itvsh/kop/user/UserRepository.java
similarity index 100%
rename from src/main/java/de/itvsh/kop/user/UserRepository.java
rename to user-manager/src/main/java/de/itvsh/kop/user/UserRepository.java
diff --git a/src/main/java/de/itvsh/kop/user/UserResourceMapper.java b/user-manager/src/main/java/de/itvsh/kop/user/UserResourceMapper.java
similarity index 100%
rename from src/main/java/de/itvsh/kop/user/UserResourceMapper.java
rename to user-manager/src/main/java/de/itvsh/kop/user/UserResourceMapper.java
diff --git a/src/main/java/de/itvsh/kop/user/UserService.java b/user-manager/src/main/java/de/itvsh/kop/user/UserService.java
similarity index 100%
rename from src/main/java/de/itvsh/kop/user/UserService.java
rename to user-manager/src/main/java/de/itvsh/kop/user/UserService.java
diff --git a/src/main/java/de/itvsh/kop/user/common/errorhandling/KeycloakClientException.java b/user-manager/src/main/java/de/itvsh/kop/user/common/errorhandling/KeycloakClientException.java
similarity index 100%
rename from src/main/java/de/itvsh/kop/user/common/errorhandling/KeycloakClientException.java
rename to user-manager/src/main/java/de/itvsh/kop/user/common/errorhandling/KeycloakClientException.java
diff --git a/src/main/java/de/itvsh/kop/user/common/errorhandling/KeycloakUnavailableException.java b/user-manager/src/main/java/de/itvsh/kop/user/common/errorhandling/KeycloakUnavailableException.java
similarity index 100%
rename from src/main/java/de/itvsh/kop/user/common/errorhandling/KeycloakUnavailableException.java
rename to user-manager/src/main/java/de/itvsh/kop/user/common/errorhandling/KeycloakUnavailableException.java
diff --git a/src/main/java/de/itvsh/kop/user/common/errorhandling/LockCreationException.java b/user-manager/src/main/java/de/itvsh/kop/user/common/errorhandling/LockCreationException.java
similarity index 100%
rename from src/main/java/de/itvsh/kop/user/common/errorhandling/LockCreationException.java
rename to user-manager/src/main/java/de/itvsh/kop/user/common/errorhandling/LockCreationException.java
diff --git a/src/main/java/de/itvsh/kop/user/common/errorhandling/TechnicalException.java b/user-manager/src/main/java/de/itvsh/kop/user/common/errorhandling/TechnicalException.java
similarity index 100%
rename from src/main/java/de/itvsh/kop/user/common/errorhandling/TechnicalException.java
rename to user-manager/src/main/java/de/itvsh/kop/user/common/errorhandling/TechnicalException.java
diff --git a/src/main/java/de/itvsh/kop/user/common/errorhandling/UserNotFoundException.java b/user-manager/src/main/java/de/itvsh/kop/user/common/errorhandling/UserNotFoundException.java
similarity index 100%
rename from src/main/java/de/itvsh/kop/user/common/errorhandling/UserNotFoundException.java
rename to user-manager/src/main/java/de/itvsh/kop/user/common/errorhandling/UserNotFoundException.java
diff --git a/src/main/java/de/itvsh/kop/user/keycloak/KeycloakApiProperties.java b/user-manager/src/main/java/de/itvsh/kop/user/keycloak/KeycloakApiProperties.java
similarity index 100%
rename from src/main/java/de/itvsh/kop/user/keycloak/KeycloakApiProperties.java
rename to user-manager/src/main/java/de/itvsh/kop/user/keycloak/KeycloakApiProperties.java
diff --git a/src/main/java/de/itvsh/kop/user/keycloak/KeycloakApiService.java b/user-manager/src/main/java/de/itvsh/kop/user/keycloak/KeycloakApiService.java
similarity index 100%
rename from src/main/java/de/itvsh/kop/user/keycloak/KeycloakApiService.java
rename to user-manager/src/main/java/de/itvsh/kop/user/keycloak/KeycloakApiService.java
diff --git a/src/main/java/de/itvsh/kop/user/keycloak/KeycloakProvider.java b/user-manager/src/main/java/de/itvsh/kop/user/keycloak/KeycloakProvider.java
similarity index 100%
rename from src/main/java/de/itvsh/kop/user/keycloak/KeycloakProvider.java
rename to user-manager/src/main/java/de/itvsh/kop/user/keycloak/KeycloakProvider.java
diff --git a/src/main/java/de/itvsh/kop/user/keycloak/KeycloakUserRemoteService.java b/user-manager/src/main/java/de/itvsh/kop/user/keycloak/KeycloakUserRemoteService.java
similarity index 100%
rename from src/main/java/de/itvsh/kop/user/keycloak/KeycloakUserRemoteService.java
rename to user-manager/src/main/java/de/itvsh/kop/user/keycloak/KeycloakUserRemoteService.java
diff --git a/src/main/java/de/itvsh/kop/user/sync/Lock.java b/user-manager/src/main/java/de/itvsh/kop/user/sync/Lock.java
similarity index 100%
rename from src/main/java/de/itvsh/kop/user/sync/Lock.java
rename to user-manager/src/main/java/de/itvsh/kop/user/sync/Lock.java
diff --git a/src/main/java/de/itvsh/kop/user/sync/LockRepository.java b/user-manager/src/main/java/de/itvsh/kop/user/sync/LockRepository.java
similarity index 100%
rename from src/main/java/de/itvsh/kop/user/sync/LockRepository.java
rename to user-manager/src/main/java/de/itvsh/kop/user/sync/LockRepository.java
diff --git a/src/main/java/de/itvsh/kop/user/sync/LockService.java b/user-manager/src/main/java/de/itvsh/kop/user/sync/LockService.java
similarity index 100%
rename from src/main/java/de/itvsh/kop/user/sync/LockService.java
rename to user-manager/src/main/java/de/itvsh/kop/user/sync/LockService.java
diff --git a/src/main/java/de/itvsh/kop/user/sync/SyncScheduler.java b/user-manager/src/main/java/de/itvsh/kop/user/sync/SyncScheduler.java
similarity index 100%
rename from src/main/java/de/itvsh/kop/user/sync/SyncScheduler.java
rename to user-manager/src/main/java/de/itvsh/kop/user/sync/SyncScheduler.java
diff --git a/src/main/java/de/itvsh/kop/user/sync/SyncService.java b/user-manager/src/main/java/de/itvsh/kop/user/sync/SyncService.java
similarity index 100%
rename from src/main/java/de/itvsh/kop/user/sync/SyncService.java
rename to user-manager/src/main/java/de/itvsh/kop/user/sync/SyncService.java
diff --git a/src/main/resources/META-INF/resources/index.html b/user-manager/src/main/resources/META-INF/resources/index.html
similarity index 100%
rename from src/main/resources/META-INF/resources/index.html
rename to user-manager/src/main/resources/META-INF/resources/index.html
diff --git a/src/main/resources/application-dev.yaml b/user-manager/src/main/resources/application-dev.yaml
similarity index 100%
rename from src/main/resources/application-dev.yaml
rename to user-manager/src/main/resources/application-dev.yaml
diff --git a/src/main/resources/application-local.yaml b/user-manager/src/main/resources/application-local.yaml
similarity index 100%
rename from src/main/resources/application-local.yaml
rename to user-manager/src/main/resources/application-local.yaml
diff --git a/src/main/resources/application-remotekc.yaml b/user-manager/src/main/resources/application-remotekc.yaml
similarity index 100%
rename from src/main/resources/application-remotekc.yaml
rename to user-manager/src/main/resources/application-remotekc.yaml
diff --git a/src/main/resources/application.yaml b/user-manager/src/main/resources/application.yaml
similarity index 100%
rename from src/main/resources/application.yaml
rename to user-manager/src/main/resources/application.yaml
diff --git a/src/test/java/de/itvsh/kop/user/GroupRepresentationTestFactory.java b/user-manager/src/test/java/de/itvsh/kop/user/GroupRepresentationTestFactory.java
similarity index 100%
rename from src/test/java/de/itvsh/kop/user/GroupRepresentationTestFactory.java
rename to user-manager/src/test/java/de/itvsh/kop/user/GroupRepresentationTestFactory.java
diff --git a/src/test/java/de/itvsh/kop/user/UserRepositoryTest.java b/user-manager/src/test/java/de/itvsh/kop/user/UserRepositoryTest.java
similarity index 100%
rename from src/test/java/de/itvsh/kop/user/UserRepositoryTest.java
rename to user-manager/src/test/java/de/itvsh/kop/user/UserRepositoryTest.java
diff --git a/src/test/java/de/itvsh/kop/user/UserRepresentationTestFactory.java b/user-manager/src/test/java/de/itvsh/kop/user/UserRepresentationTestFactory.java
similarity index 100%
rename from src/test/java/de/itvsh/kop/user/UserRepresentationTestFactory.java
rename to user-manager/src/test/java/de/itvsh/kop/user/UserRepresentationTestFactory.java
diff --git a/src/test/java/de/itvsh/kop/user/UserResourceMapperTest.java b/user-manager/src/test/java/de/itvsh/kop/user/UserResourceMapperTest.java
similarity index 100%
rename from src/test/java/de/itvsh/kop/user/UserResourceMapperTest.java
rename to user-manager/src/test/java/de/itvsh/kop/user/UserResourceMapperTest.java
diff --git a/src/test/java/de/itvsh/kop/user/UserResourceStub.java b/user-manager/src/test/java/de/itvsh/kop/user/UserResourceStub.java
similarity index 100%
rename from src/test/java/de/itvsh/kop/user/UserResourceStub.java
rename to user-manager/src/test/java/de/itvsh/kop/user/UserResourceStub.java
diff --git a/src/test/java/de/itvsh/kop/user/UserResourceTestFactory.java b/user-manager/src/test/java/de/itvsh/kop/user/UserResourceTestFactory.java
similarity index 100%
rename from src/test/java/de/itvsh/kop/user/UserResourceTestFactory.java
rename to user-manager/src/test/java/de/itvsh/kop/user/UserResourceTestFactory.java
diff --git a/src/test/java/de/itvsh/kop/user/UserServiceTest.java b/user-manager/src/test/java/de/itvsh/kop/user/UserServiceTest.java
similarity index 100%
rename from src/test/java/de/itvsh/kop/user/UserServiceTest.java
rename to user-manager/src/test/java/de/itvsh/kop/user/UserServiceTest.java
diff --git a/src/test/java/de/itvsh/kop/user/UserTestFactory.java b/user-manager/src/test/java/de/itvsh/kop/user/UserTestFactory.java
similarity index 100%
rename from src/test/java/de/itvsh/kop/user/UserTestFactory.java
rename to user-manager/src/test/java/de/itvsh/kop/user/UserTestFactory.java
diff --git a/src/test/java/de/itvsh/kop/user/keycloak/KeycloakApiServiceITCase.java b/user-manager/src/test/java/de/itvsh/kop/user/keycloak/KeycloakApiServiceITCase.java
similarity index 100%
rename from src/test/java/de/itvsh/kop/user/keycloak/KeycloakApiServiceITCase.java
rename to user-manager/src/test/java/de/itvsh/kop/user/keycloak/KeycloakApiServiceITCase.java
diff --git a/src/test/java/de/itvsh/kop/user/keycloak/KeycloakApiServiceTest.java b/user-manager/src/test/java/de/itvsh/kop/user/keycloak/KeycloakApiServiceTest.java
similarity index 100%
rename from src/test/java/de/itvsh/kop/user/keycloak/KeycloakApiServiceTest.java
rename to user-manager/src/test/java/de/itvsh/kop/user/keycloak/KeycloakApiServiceTest.java
diff --git a/src/test/java/de/itvsh/kop/user/keycloak/KeycloakProviderITCase.java b/user-manager/src/test/java/de/itvsh/kop/user/keycloak/KeycloakProviderITCase.java
similarity index 100%
rename from src/test/java/de/itvsh/kop/user/keycloak/KeycloakProviderITCase.java
rename to user-manager/src/test/java/de/itvsh/kop/user/keycloak/KeycloakProviderITCase.java
diff --git a/src/test/java/de/itvsh/kop/user/keycloak/KeycloakTestProfile.java b/user-manager/src/test/java/de/itvsh/kop/user/keycloak/KeycloakTestProfile.java
similarity index 100%
rename from src/test/java/de/itvsh/kop/user/keycloak/KeycloakTestProfile.java
rename to user-manager/src/test/java/de/itvsh/kop/user/keycloak/KeycloakTestProfile.java
diff --git a/src/test/java/de/itvsh/kop/user/keycloak/KeycloakUserRemoteServiceITCase.java b/user-manager/src/test/java/de/itvsh/kop/user/keycloak/KeycloakUserRemoteServiceITCase.java
similarity index 100%
rename from src/test/java/de/itvsh/kop/user/keycloak/KeycloakUserRemoteServiceITCase.java
rename to user-manager/src/test/java/de/itvsh/kop/user/keycloak/KeycloakUserRemoteServiceITCase.java
diff --git a/src/test/java/de/itvsh/kop/user/keycloak/KeycloakUserRemoteServiceTest.java b/user-manager/src/test/java/de/itvsh/kop/user/keycloak/KeycloakUserRemoteServiceTest.java
similarity index 100%
rename from src/test/java/de/itvsh/kop/user/keycloak/KeycloakUserRemoteServiceTest.java
rename to user-manager/src/test/java/de/itvsh/kop/user/keycloak/KeycloakUserRemoteServiceTest.java
diff --git a/src/test/java/de/itvsh/kop/user/sync/LockRepositoryTest.java b/user-manager/src/test/java/de/itvsh/kop/user/sync/LockRepositoryTest.java
similarity index 100%
rename from src/test/java/de/itvsh/kop/user/sync/LockRepositoryTest.java
rename to user-manager/src/test/java/de/itvsh/kop/user/sync/LockRepositoryTest.java
diff --git a/src/test/java/de/itvsh/kop/user/sync/LockServiceTest.java b/user-manager/src/test/java/de/itvsh/kop/user/sync/LockServiceTest.java
similarity index 100%
rename from src/test/java/de/itvsh/kop/user/sync/LockServiceTest.java
rename to user-manager/src/test/java/de/itvsh/kop/user/sync/LockServiceTest.java
diff --git a/src/test/java/de/itvsh/kop/user/sync/LockTestFactory.java b/user-manager/src/test/java/de/itvsh/kop/user/sync/LockTestFactory.java
similarity index 100%
rename from src/test/java/de/itvsh/kop/user/sync/LockTestFactory.java
rename to user-manager/src/test/java/de/itvsh/kop/user/sync/LockTestFactory.java
diff --git a/src/test/java/de/itvsh/kop/user/sync/SyncSchedulerTest.java b/user-manager/src/test/java/de/itvsh/kop/user/sync/SyncSchedulerTest.java
similarity index 100%
rename from src/test/java/de/itvsh/kop/user/sync/SyncSchedulerTest.java
rename to user-manager/src/test/java/de/itvsh/kop/user/sync/SyncSchedulerTest.java
diff --git a/src/test/java/de/itvsh/kop/user/sync/SyncServiceITCase.java b/user-manager/src/test/java/de/itvsh/kop/user/sync/SyncServiceITCase.java
similarity index 100%
rename from src/test/java/de/itvsh/kop/user/sync/SyncServiceITCase.java
rename to user-manager/src/test/java/de/itvsh/kop/user/sync/SyncServiceITCase.java
diff --git a/src/test/java/de/itvsh/kop/user/sync/SyncServiceTest.java b/user-manager/src/test/java/de/itvsh/kop/user/sync/SyncServiceTest.java
similarity index 100%
rename from src/test/java/de/itvsh/kop/user/sync/SyncServiceTest.java
rename to user-manager/src/test/java/de/itvsh/kop/user/sync/SyncServiceTest.java
diff --git a/src/test/resources/META-INF/keycloak/dev-realm.json b/user-manager/src/test/resources/META-INF/keycloak/dev-realm.json
similarity index 100%
rename from src/test/resources/META-INF/keycloak/dev-realm.json
rename to user-manager/src/test/resources/META-INF/keycloak/dev-realm.json
diff --git a/src/test/resources/META-INF/services/org.junit.jupiter.api.extension.Extension b/user-manager/src/test/resources/META-INF/services/org.junit.jupiter.api.extension.Extension
similarity index 100%
rename from src/test/resources/META-INF/services/org.junit.jupiter.api.extension.Extension
rename to user-manager/src/test/resources/META-INF/services/org.junit.jupiter.api.extension.Extension