diff --git a/common/pom.xml b/common/pom.xml
index fe39eb21fdccc5cb17cb6567cc96ddfd7a4ec69d..2b0bbb335ee4cab0e6de287d86e1a7cb19595f48 100644
--- a/common/pom.xml
+++ b/common/pom.xml
@@ -41,6 +41,13 @@
 				</exclusion>
 			</exclusions>
 		</dependency>
+
+		<!-- Runtime -->
+		<dependency>
+			<groupId>io.micrometer</groupId>
+			<artifactId>micrometer-registry-prometheus</artifactId>
+			<scope>runtime</scope>
+		</dependency>
 	</dependencies>
 
 	<build>
diff --git a/common/src/main/java/de/itvsh/kop/eingangsadapter/Application.java b/common/src/main/java/de/itvsh/kop/eingangsadapter/Application.java
index fa9cdee38a5dbecc5627ce3a3368da7825faa589..a716cfc9623de6a05811cb66859cef5c7889e280 100644
--- a/common/src/main/java/de/itvsh/kop/eingangsadapter/Application.java
+++ b/common/src/main/java/de/itvsh/kop/eingangsadapter/Application.java
@@ -4,7 +4,7 @@ import org.springframework.boot.SpringApplication;
 import org.springframework.boot.autoconfigure.SpringBootApplication;
 import org.springframework.scheduling.annotation.EnableScheduling;
 
-@SpringBootApplication
+@SpringBootApplication(scanBasePackages = "de.itvsh.kop")
 @EnableScheduling
 public class Application {
 
diff --git a/common/src/test/java/de/itvsh/kop/eingangsadapter/IFAdapterApplicationTest.java b/common/src/test/java/de/itvsh/kop/eingangsadapter/EingangAdapterApplicationTest.java
similarity index 86%
rename from common/src/test/java/de/itvsh/kop/eingangsadapter/IFAdapterApplicationTest.java
rename to common/src/test/java/de/itvsh/kop/eingangsadapter/EingangAdapterApplicationTest.java
index 0f486ed2f7a1285f21e281859ae1c470161ba150..82df9270b6fe9e9551a69812e277a5d704fc726f 100644
--- a/common/src/test/java/de/itvsh/kop/eingangsadapter/IFAdapterApplicationTest.java
+++ b/common/src/test/java/de/itvsh/kop/eingangsadapter/EingangAdapterApplicationTest.java
@@ -4,7 +4,7 @@ import org.junit.jupiter.api.Test;
 import org.springframework.boot.test.context.SpringBootTest;
 
 @SpringBootTest
-class IFAdapterApplicationTest {
+class EingangAdapterApplicationTest {
 
 	@Test
 	void contextLoads() { // NOSONAR nothing to check - it it starts it is fine
diff --git a/formsolutions-adapter/pom.xml b/formsolutions-adapter/pom.xml
new file mode 100644
index 0000000000000000000000000000000000000000..c8943531afa3f38ee92bd21e9c6c17e24c99642d
--- /dev/null
+++ b/formsolutions-adapter/pom.xml
@@ -0,0 +1,116 @@
+<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">
+	<modelVersion>4.0.0</modelVersion>
+
+	<parent>
+		<groupId>de.itvsh.kop.eingangsadapter</groupId>
+		<artifactId>parent</artifactId>
+		<version>0.13.0-SNAPSHOT</version>
+	</parent>
+
+	<artifactId>formsolutions-adapter</artifactId>
+	<name>Eingangs Adapter - FormSolutions</name>
+	<packaging>jar</packaging>
+
+	<dependencies>
+		<!-- own projects -->
+		<dependency>
+			<groupId>de.itvsh.kop.eingangsadapter</groupId>
+			<artifactId>common</artifactId>
+		</dependency>
+		<dependency>
+			<groupId>de.itvsh.kop.eingangsadapter</groupId>
+			<artifactId>router</artifactId>
+		</dependency>
+
+		<!-- Spring -->
+		<dependency>
+			<groupId>org.springframework.boot</groupId>
+			<artifactId>spring-boot-starter-web-services</artifactId>
+		</dependency>
+		<dependency>
+			<groupId>org.springframework.boot</groupId>
+			<artifactId>spring-boot-starter-actuator</artifactId>
+		</dependency>
+
+		<!-- tag::springws[] -->
+		<dependency>
+			<groupId>wsdl4j</groupId>
+			<artifactId>wsdl4j</artifactId>
+		</dependency>
+
+		<dependency>
+			<groupId>org.apache.ws.xmlschema</groupId>
+			<artifactId>xmlschema-core</artifactId>
+		</dependency>
+		<dependency>
+			<groupId>org.glassfish.jaxb</groupId>
+			<artifactId>jaxb-runtime</artifactId>
+		</dependency>
+		<!-- end::springws[] -->
+
+		<!-- Dev -->
+		<dependency>
+			<groupId>org.springframework.boot</groupId>
+			<artifactId>spring-boot-configuration-processor</artifactId>
+			<optional>true</optional>
+		</dependency>
+		<dependency>
+			<groupId>org.projectlombok</groupId>
+			<artifactId>lombok</artifactId>
+		</dependency>
+
+		<!-- Test -->
+		<dependency>
+			<groupId>de.itvsh.kop.eingangsadapter</groupId>
+			<artifactId>common</artifactId>
+			<type>test-jar</type>
+			<scope>test</scope>
+		</dependency>
+		<dependency>
+			<groupId>org.springframework.boot</groupId>
+			<artifactId>spring-boot-starter-test</artifactId>
+			<scope>test</scope>
+			<exclusions>
+				<exclusion>
+					<groupId>org.junit.vintage</groupId>
+					<artifactId>junit-vintage-engine</artifactId>
+				</exclusion>
+			</exclusions>
+		</dependency>
+	</dependencies>
+
+	<build>
+		<finalName>${project.artifactId}</finalName>
+		<plugins>
+			<!-- tag::xsd[] -->
+			<plugin>
+				<groupId>org.codehaus.mojo</groupId>
+				<artifactId>jaxb2-maven-plugin</artifactId>
+				<configuration>
+					<sources>
+						<source>${project.basedir}/src/main/resources/formsolutions/formdata.xsd</source>
+					</sources>
+				</configuration>
+			</plugin>
+			<!-- end::xsd[] -->
+			
+			<plugin>
+				<groupId>org.apache.maven.plugins</groupId>
+				<artifactId>maven-compiler-plugin</artifactId>
+			</plugin>
+
+			<plugin>
+				<groupId>pl.project13.maven</groupId>
+				<artifactId>git-commit-id-plugin</artifactId>
+			</plugin>
+
+			<plugin>
+				<groupId>org.springframework.boot</groupId>
+				<artifactId>spring-boot-maven-plugin</artifactId>
+			</plugin>
+		</plugins>
+	</build>
+
+</project>
\ No newline at end of file
diff --git a/intelliform-adapter/src/main/java/de/itvsh/kop/eingangsadapter/formsolutions/FormSolutionsMapper.java b/formsolutions-adapter/src/main/java/de/itvsh/kop/eingangsadapter/formsolutions/FormSolutionsMapper.java
similarity index 100%
rename from intelliform-adapter/src/main/java/de/itvsh/kop/eingangsadapter/formsolutions/FormSolutionsMapper.java
rename to formsolutions-adapter/src/main/java/de/itvsh/kop/eingangsadapter/formsolutions/FormSolutionsMapper.java
diff --git a/intelliform-adapter/src/main/java/de/itvsh/kop/eingangsadapter/formsolutions/SendFormEndpoint.java b/formsolutions-adapter/src/main/java/de/itvsh/kop/eingangsadapter/formsolutions/SendFormEndpoint.java
similarity index 95%
rename from intelliform-adapter/src/main/java/de/itvsh/kop/eingangsadapter/formsolutions/SendFormEndpoint.java
rename to formsolutions-adapter/src/main/java/de/itvsh/kop/eingangsadapter/formsolutions/SendFormEndpoint.java
index 3931edfca45334d2d430517be5e5b78a18082b7a..3666fbe00d9c5375707c1998256b7585bf8833e6 100644
--- a/intelliform-adapter/src/main/java/de/itvsh/kop/eingangsadapter/formsolutions/SendFormEndpoint.java
+++ b/formsolutions-adapter/src/main/java/de/itvsh/kop/eingangsadapter/formsolutions/SendFormEndpoint.java
@@ -6,8 +6,8 @@ import org.springframework.ws.server.endpoint.annotation.PayloadRoot;
 import org.springframework.ws.server.endpoint.annotation.RequestPayload;
 import org.springframework.ws.server.endpoint.annotation.ResponsePayload;
 
-import de.itvsh.kop.eingangsadapter.VorgangService;
 import de.itvsh.kop.eingangsadapter.common.formdata.FormData;
+import de.itvsh.kop.eingangsadapter.router.VorgangService;
 import de.ozg_sh.forms.formsolutions.SendFormRequest;
 import de.ozg_sh.forms.formsolutions.SendFormResponse;
 import lombok.extern.log4j.Log4j2;
diff --git a/formsolutions-adapter/src/main/java/de/itvsh/kop/eingangsadapter/formsolutions/WebServiceConfiguration.java b/formsolutions-adapter/src/main/java/de/itvsh/kop/eingangsadapter/formsolutions/WebServiceConfiguration.java
new file mode 100644
index 0000000000000000000000000000000000000000..68373389d13c29acf267903fb7ccc126ddc851e1
--- /dev/null
+++ b/formsolutions-adapter/src/main/java/de/itvsh/kop/eingangsadapter/formsolutions/WebServiceConfiguration.java
@@ -0,0 +1,39 @@
+package de.itvsh.kop.eingangsadapter.formsolutions;
+
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.core.io.ClassPathResource;
+import org.springframework.ws.config.annotation.EnableWs;
+import org.springframework.ws.config.annotation.WsConfigurerAdapter;
+import org.springframework.ws.wsdl.wsdl11.DefaultWsdl11Definition;
+import org.springframework.xml.xsd.SimpleXsdSchema;
+import org.springframework.xml.xsd.XsdSchema;
+import org.springframework.xml.xsd.XsdSchemaCollection;
+import org.springframework.xml.xsd.commons.CommonsXsdSchemaCollection;
+
+@EnableWs
+@Configuration
+class WebServiceConfiguration extends WsConfigurerAdapter {
+
+	@Bean(name = "formsolutions_formDatas")
+	public DefaultWsdl11Definition defaultWsdl11Definition(XsdSchema formDataSchema) {
+		DefaultWsdl11Definition wsdl11Definition = new DefaultWsdl11Definition();
+		wsdl11Definition.setPortTypeName("FormDatasPort");
+		wsdl11Definition.setLocationUri("/ws");
+		wsdl11Definition.setTargetNamespace("http://forms.ozg-sh.de/formsolutions");
+		wsdl11Definition.setSchema(formDataSchema);
+		return wsdl11Definition;
+	}
+
+	@Bean
+	public XsdSchemaCollection formDataSchemata() {
+		CommonsXsdSchemaCollection xsds = new CommonsXsdSchemaCollection(new ClassPathResource("formsolutions/formdata.xsd"));
+		xsds.setInline(false);
+		return xsds;
+	}
+
+	@Bean
+	public XsdSchema formDataSchema() {
+		return new SimpleXsdSchema(new ClassPathResource("formsolutions/formdata.xsd"));
+	}
+}
diff --git a/intelliform-adapter/src/main/resources/formsolutions/formdata.xsd b/formsolutions-adapter/src/main/resources/formsolutions/formdata.xsd
similarity index 100%
rename from intelliform-adapter/src/main/resources/formsolutions/formdata.xsd
rename to formsolutions-adapter/src/main/resources/formsolutions/formdata.xsd
diff --git a/formsolutions-adapter/src/test/java/de/itvsh/kop/eingangsadapter/FormsolutionsAdapterApplicationTest.java b/formsolutions-adapter/src/test/java/de/itvsh/kop/eingangsadapter/FormsolutionsAdapterApplicationTest.java
new file mode 100644
index 0000000000000000000000000000000000000000..c4267081cd5181f80dc73baaa1e6fbb0cb3bb104
--- /dev/null
+++ b/formsolutions-adapter/src/test/java/de/itvsh/kop/eingangsadapter/FormsolutionsAdapterApplicationTest.java
@@ -0,0 +1,12 @@
+package de.itvsh.kop.eingangsadapter;
+
+import org.junit.jupiter.api.Test;
+import org.springframework.boot.test.context.SpringBootTest;
+
+@SpringBootTest(classes = Application.class)
+class FormsolutionsAdapterApplicationTest {
+
+	@Test
+	void contextLoads() { // NOSONAR nothing to check - it it starts it is fine
+	}
+}
diff --git a/formsolutions-adapter/src/test/resources/META-INF/services/org.junit.jupiter.api.extension.Extension b/formsolutions-adapter/src/test/resources/META-INF/services/org.junit.jupiter.api.extension.Extension
new file mode 100644
index 0000000000000000000000000000000000000000..79b126e6cdb86bec1f4f08c205de8961bde1934a
--- /dev/null
+++ b/formsolutions-adapter/src/test/resources/META-INF/services/org.junit.jupiter.api.extension.Extension
@@ -0,0 +1 @@
+org.mockito.junit.jupiter.MockitoExtension
\ No newline at end of file
diff --git a/formsolutions-adapter/src/test/resources/application.yml b/formsolutions-adapter/src/test/resources/application.yml
new file mode 100644
index 0000000000000000000000000000000000000000..aeae634592db80d608f753c4df0e9e1f13fd3b90
--- /dev/null
+++ b/formsolutions-adapter/src/test/resources/application.yml
@@ -0,0 +1,14 @@
+logging:
+  level:
+    ROOT: ERROR
+    
+grpc:
+  client:
+    pluto-nf:
+      address: static://127.0.0.1:9090
+      negotiationType: PLAINTEXT
+    
+kop:
+  adapter:
+    routingStrategy: SINGLE
+    targetPlutoName: nf
\ No newline at end of file
diff --git a/formsolutions-adapter/src/test/resources/junit-platform.properties b/formsolutions-adapter/src/test/resources/junit-platform.properties
new file mode 100644
index 0000000000000000000000000000000000000000..1cebb76d5a58ac034b2627d12411d82d1e85821e
--- /dev/null
+++ b/formsolutions-adapter/src/test/resources/junit-platform.properties
@@ -0,0 +1 @@
+junit.jupiter.extensions.autodetection.enabled = true
\ No newline at end of file
diff --git a/intelliform-adapter/pom.xml b/intelliform-adapter/pom.xml
index 3194cd98520457266f71e4e5b9edbbbaa7365752..37a4bf6b6bf1a615e3f35a3914e908d81a982435 100644
--- a/intelliform-adapter/pom.xml
+++ b/intelliform-adapter/pom.xml
@@ -12,9 +12,9 @@
 	</parent>
 
 	<artifactId>intelliform-adapter</artifactId>
-	<name>intelliform-adapter</name>
+	<name>Eingangs Adapter - intelliform</name>
 	<description>IntelliForm-Adapter </description>
-	
+
 	<properties>
 		<spring-boot.build-image.imageName>docker.ozg-sh.de/intelliform-adapter:build-latest</spring-boot.build-image.imageName>
 	</properties>
@@ -26,6 +26,11 @@
 			<groupId>de.itvsh.kop.eingangsadapter</groupId>
 			<artifactId>common</artifactId>
 		</dependency>
+		<dependency>
+			<groupId>de.itvsh.kop.eingangsadapter</groupId>
+			<artifactId>router</artifactId>
+		</dependency>
+
 
 		<!-- spring -->
 		<dependency>
@@ -33,11 +38,6 @@
 			<artifactId>spring-boot-starter-web-services</artifactId>
 		</dependency>
 
-		<dependency>
-			<groupId>net.devh</groupId>
-			<artifactId>grpc-client-spring-boot-starter</artifactId>
-		</dependency>
-
 		<dependency>
 			<groupId>org.springframework.boot</groupId>
 			<artifactId>spring-boot-starter-actuator</artifactId>
@@ -49,13 +49,6 @@
 		</dependency>
 
 
-		<!-- own projects -->
-		<dependency>
-			<groupId>de.itvsh.ozg.pluto</groupId>
-			<artifactId>pluto-interface</artifactId>
-		</dependency>
-
-
 		<!-- tools -->
 		<!-- commons -->
 		<dependency>
@@ -78,6 +71,11 @@
 			<artifactId>spring-boot-devtools</artifactId>
 			<scope>runtime</scope>
 		</dependency>
+		<dependency>
+			<groupId>org.springframework.boot</groupId>
+			<artifactId>spring-boot-configuration-processor</artifactId>
+			<optional>true</optional>
+		</dependency>
 
 		<!-- Logging/Monitoring -->
 		<dependency>
@@ -85,12 +83,6 @@
 			<artifactId>logstash-logback-encoder</artifactId>
 		</dependency>
 
-		<dependency>
-			<groupId>io.micrometer</groupId>
-			<artifactId>micrometer-registry-prometheus</artifactId>
-			<scope>runtime</scope>
-		</dependency>
-
 		<!-- tag::springws[] -->
 		<dependency>
 			<groupId>wsdl4j</groupId>
@@ -144,16 +136,13 @@
 			<artifactId>assertj-core</artifactId>
 			<scope>test</scope>
 		</dependency>
+
 		<dependency>
 			<groupId>org.springframework.ws</groupId>
 			<artifactId>spring-ws-test</artifactId>
 			<scope>test</scope>
 		</dependency>
-		<dependency>
-			<groupId>org.springframework.boot</groupId>
-			<artifactId>spring-boot-configuration-processor</artifactId>
-			<optional>true</optional>
-		</dependency>
+
 
 		<dependency>
 			<groupId>de.itvsh.kop.eingangsadapter</groupId>
@@ -182,18 +171,6 @@
 				<artifactId>spring-boot-maven-plugin</artifactId>
 			</plugin>
 
-			<!-- tag::xsd[] -->
-			<plugin>
-				<groupId>org.codehaus.mojo</groupId>
-				<artifactId>jaxb2-maven-plugin</artifactId>
-				<configuration>
-					<sources>
-						<source>${project.basedir}/src/main/resources/formsolutions/formdata.xsd</source>
-					</sources>
-				</configuration>
-			</plugin>
-			<!-- end::xsd[] -->
-
 			<!-- tag::wsdl[] -->
 			<plugin>
 				<groupId>org.jvnet.jaxb2.maven2</groupId>
diff --git a/intelliform-adapter/src/main/java/de/itvsh/kop/eingangsadapter/WebServiceConfiguration.java b/intelliform-adapter/src/main/java/de/itvsh/kop/eingangsadapter/WebServiceConfiguration.java
index 54c1ce269caa28b4e700f040c5261efd515c1f44..8aca65dfca45ea80b16e4ccbe9902955612f71c8 100644
--- a/intelliform-adapter/src/main/java/de/itvsh/kop/eingangsadapter/WebServiceConfiguration.java
+++ b/intelliform-adapter/src/main/java/de/itvsh/kop/eingangsadapter/WebServiceConfiguration.java
@@ -11,8 +11,6 @@ import org.springframework.ws.transport.http.MessageDispatcherServlet;
 import org.springframework.ws.wsdl.wsdl11.DefaultWsdl11Definition;
 import org.springframework.xml.xsd.SimpleXsdSchema;
 import org.springframework.xml.xsd.XsdSchema;
-import org.springframework.xml.xsd.XsdSchemaCollection;
-import org.springframework.xml.xsd.commons.CommonsXsdSchemaCollection;
 
 @EnableWs
 @Configuration
@@ -26,28 +24,6 @@ public class WebServiceConfiguration extends WsConfigurerAdapter {
 		return new ServletRegistrationBean<>(servlet, "/ws/*");
 	}
 
-	@Bean(name = "formsolutions_formDatas")
-	public DefaultWsdl11Definition defaultWsdl11Definition() {
-		DefaultWsdl11Definition wsdl11Definition = new DefaultWsdl11Definition();
-		wsdl11Definition.setPortTypeName("FormDatasPort");
-		wsdl11Definition.setLocationUri("/ws");
-		wsdl11Definition.setTargetNamespace("http://forms.ozg-sh.de/formsolutions");
-		wsdl11Definition.setSchema(formDataSchema());
-		return wsdl11Definition;
-	}
-
-	@Bean
-	public XsdSchemaCollection formDataSchemata() {
-		CommonsXsdSchemaCollection xsds = new CommonsXsdSchemaCollection(new ClassPathResource("formsolutions/formdata.xsd"));
-		xsds.setInline(false);
-		return xsds;
-	}
-
-	@Bean
-	public XsdSchema formDataSchema() {
-		return new SimpleXsdSchema(new ClassPathResource("formsolutions/formdata.xsd"));
-	}
-
 	@Bean(name = "intelliform_formDatas")
 	public DefaultWsdl11Definition defaultWsdl11Definition(XsdSchema applicationServiceSchema) {
 		DefaultWsdl11Definition wsdl11Definition = new DefaultWsdl11Definition();
diff --git a/intelliform-adapter/src/main/java/de/itvsh/kop/eingangsadapter/intelliform/FileReaderScheduler.java b/intelliform-adapter/src/main/java/de/itvsh/kop/eingangsadapter/intelliform/FileReaderScheduler.java
index 3a79210b1022d03918653d0349bebb742431a608..b3d6ff11db1b14c56140a7a043146a3747e45c32 100644
--- a/intelliform-adapter/src/main/java/de/itvsh/kop/eingangsadapter/intelliform/FileReaderScheduler.java
+++ b/intelliform-adapter/src/main/java/de/itvsh/kop/eingangsadapter/intelliform/FileReaderScheduler.java
@@ -25,9 +25,9 @@ import org.springframework.scheduling.annotation.Scheduled;
 import org.springframework.stereotype.Service;
 import org.springframework.util.FileSystemUtils;
 
-import de.itvsh.kop.eingangsadapter.VorgangService;
 import de.itvsh.kop.eingangsadapter.common.errorhandling.TechnicalException;
 import de.itvsh.kop.eingangsadapter.common.formdata.FormData;
+import de.itvsh.kop.eingangsadapter.router.VorgangService;
 import lombok.extern.log4j.Log4j2;
 
 @Service
diff --git a/intelliform-adapter/src/main/java/de/itvsh/kop/eingangsadapter/intelliform/FormDataEndpoint.java b/intelliform-adapter/src/main/java/de/itvsh/kop/eingangsadapter/intelliform/FormDataEndpoint.java
index bc395a3027e7112433f4a6208edcc3e9e68102f4..6afe33448dca7e5a30b67234827cf128096c2278 100644
--- a/intelliform-adapter/src/main/java/de/itvsh/kop/eingangsadapter/intelliform/FormDataEndpoint.java
+++ b/intelliform-adapter/src/main/java/de/itvsh/kop/eingangsadapter/intelliform/FormDataEndpoint.java
@@ -14,8 +14,8 @@ import org.springframework.ws.server.endpoint.annotation.RequestPayload;
 import org.springframework.ws.server.endpoint.annotation.ResponsePayload;
 import org.xml.sax.SAXException;
 
-import de.itvsh.kop.eingangsadapter.VorgangService;
 import de.itvsh.kop.eingangsadapter.common.formdata.FormData;
+import de.itvsh.kop.eingangsadapter.router.VorgangService;
 import lombok.extern.log4j.Log4j2;
 
 @Endpoint
diff --git a/intelliform-adapter/src/test/java/de/itvsh/kop/eingangsadapter/intelliform/FormDataEndpointITCase.java b/intelliform-adapter/src/test/java/de/itvsh/kop/eingangsadapter/intelliform/FormDataEndpointITCase.java
index 7b915bd3eeef25b7173618a6bbd2e648c5ee6c13..5a542d73863f3dcfaa6d53e72c0f74fb46d0cecb 100644
--- a/intelliform-adapter/src/test/java/de/itvsh/kop/eingangsadapter/intelliform/FormDataEndpointITCase.java
+++ b/intelliform-adapter/src/test/java/de/itvsh/kop/eingangsadapter/intelliform/FormDataEndpointITCase.java
@@ -25,7 +25,7 @@ import org.springframework.ws.test.server.RequestCreators;
 import org.springframework.ws.test.server.ResponseMatchers;
 import org.xml.sax.SAXException;
 
-import de.itvsh.kop.eingangsadapter.VorgangRemoteService;
+import de.itvsh.kop.eingangsadapter.router.VorgangRemoteService;
 import de.itvsh.ozg.pluto.vorgang.GrpcEingang;
 import de.itvsh.ozg.pluto.vorgang.GrpcIncomingFile;
 import de.itvsh.ozg.pluto.vorgang.GrpcIncomingFileGroup;
diff --git a/intelliform-adapter/src/test/java/de/itvsh/kop/eingangsadapter/intelliform/FormDataEndpointTest.java b/intelliform-adapter/src/test/java/de/itvsh/kop/eingangsadapter/intelliform/FormDataEndpointTest.java
index 69c34df793488550b51b82c35219f445c6cd8577..fece3992b00f49b36aad3a292f1b6418221ca9be 100644
--- a/intelliform-adapter/src/test/java/de/itvsh/kop/eingangsadapter/intelliform/FormDataEndpointTest.java
+++ b/intelliform-adapter/src/test/java/de/itvsh/kop/eingangsadapter/intelliform/FormDataEndpointTest.java
@@ -18,8 +18,8 @@ import org.mockito.InjectMocks;
 import org.mockito.Mock;
 import org.xml.sax.SAXException;
 
-import de.itvsh.kop.eingangsadapter.VorgangService;
 import de.itvsh.kop.eingangsadapter.common.formdata.FormDataTestFactory;
+import de.itvsh.kop.eingangsadapter.router.VorgangService;
 
 class FormDataEndpointTest {
 
diff --git a/pom.xml b/pom.xml
index 53e624fc7f9c7150ad6bf944c7f97217b1b40c2d..1c2cc6097615762eba60c3b03a453370fb192065 100644
--- a/pom.xml
+++ b/pom.xml
@@ -16,10 +16,11 @@
 		<relativePath /> <!-- lookup parent from repository -->
 	</parent>
 
-
 	<modules>
-		<module>intelliform-adapter</module>
 		<module>common</module>
+		<module>formsolutions-adapter</module>
+		<module>intelliform-adapter</module>
+		<module>router</module>
 	</modules>
 
 	<properties>
@@ -51,6 +52,11 @@
 				<artifactId>common</artifactId>
 				<version>${project.version}</version>
 			</dependency>
+			<dependency>
+				<groupId>de.itvsh.kop.eingangsadapter</groupId>
+				<artifactId>router</artifactId>
+				<version>${project.version}</version>
+			</dependency>
 			<dependency>
 				<groupId>de.itvsh.ozg.pluto</groupId>
 				<artifactId>pluto-interface</artifactId>
diff --git a/router/pom.xml b/router/pom.xml
new file mode 100644
index 0000000000000000000000000000000000000000..29d684472d888f9a26079e271e81cfb889522c1c
--- /dev/null
+++ b/router/pom.xml
@@ -0,0 +1,57 @@
+<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">
+	<modelVersion>4.0.0</modelVersion>
+	<parent>
+		<groupId>de.itvsh.kop.eingangsadapter</groupId>
+		<artifactId>parent</artifactId>
+		<version>0.13.0-SNAPSHOT</version>
+	</parent>
+
+	<artifactId>router</artifactId>
+	<name>Eingangs Adapter - Router</name>
+
+	<dependencies>
+		<!-- own Projects -->
+		<dependency>
+			<groupId>de.itvsh.kop.eingangsadapter</groupId>
+			<artifactId>common</artifactId>
+		</dependency>
+		<dependency>
+			<groupId>de.itvsh.ozg.pluto</groupId>
+			<artifactId>pluto-interface</artifactId>
+		</dependency>
+
+		<!-- spring -->
+		<dependency>
+			<groupId>net.devh</groupId>
+			<artifactId>grpc-client-spring-boot-starter</artifactId>
+		</dependency>
+
+		<!-- Test -->
+		<dependency>
+			<groupId>org.springframework.boot</groupId>
+			<artifactId>spring-boot-starter-test</artifactId>
+			<scope>test</scope>
+			<exclusions>
+				<exclusion>
+					<groupId>org.junit.vintage</groupId>
+					<artifactId>junit-vintage-engine</artifactId>
+				</exclusion>
+			</exclusions>
+		</dependency>
+		<dependency>
+			<groupId>de.itvsh.kop.eingangsadapter</groupId>
+			<artifactId>common</artifactId>
+			<type>test-jar</type>
+			<scope>test</scope>
+		</dependency>
+
+
+		<!-- Dev -->
+		<dependency>
+			<groupId>org.projectlombok</groupId>
+			<artifactId>lombok</artifactId>
+		</dependency>
+	</dependencies>
+</project>
\ No newline at end of file
diff --git a/intelliform-adapter/src/main/java/de/itvsh/kop/eingangsadapter/GrpcClientsProperties.java b/router/src/main/java/de/itvsh/kop/eingangsadapter/router/GrpcClientsProperties.java
similarity index 91%
rename from intelliform-adapter/src/main/java/de/itvsh/kop/eingangsadapter/GrpcClientsProperties.java
rename to router/src/main/java/de/itvsh/kop/eingangsadapter/router/GrpcClientsProperties.java
index bd18bc1f1ddf10f2000dbd11e8860ca6908b54d0..2a3b5f262ffff6a91c70530fe9087d2a7b9d14fc 100644
--- a/intelliform-adapter/src/main/java/de/itvsh/kop/eingangsadapter/GrpcClientsProperties.java
+++ b/router/src/main/java/de/itvsh/kop/eingangsadapter/router/GrpcClientsProperties.java
@@ -1,4 +1,4 @@
-package de.itvsh.kop.eingangsadapter;
+package de.itvsh.kop.eingangsadapter.router;
 
 import java.util.Map;
 
diff --git a/intelliform-adapter/src/main/java/de/itvsh/kop/eingangsadapter/GrpcEingangMapper.java b/router/src/main/java/de/itvsh/kop/eingangsadapter/router/GrpcEingangMapper.java
similarity index 97%
rename from intelliform-adapter/src/main/java/de/itvsh/kop/eingangsadapter/GrpcEingangMapper.java
rename to router/src/main/java/de/itvsh/kop/eingangsadapter/router/GrpcEingangMapper.java
index 5dfe863f569a38b39378626f28537c6dcb821048..6392ee27dbef05dfebb07385ddd70af537d0b13f 100644
--- a/intelliform-adapter/src/main/java/de/itvsh/kop/eingangsadapter/GrpcEingangMapper.java
+++ b/router/src/main/java/de/itvsh/kop/eingangsadapter/router/GrpcEingangMapper.java
@@ -1,4 +1,4 @@
-package de.itvsh.kop.eingangsadapter;
+package de.itvsh.kop.eingangsadapter.router;
 
 import java.util.UUID;
 
diff --git a/intelliform-adapter/src/main/java/de/itvsh/kop/eingangsadapter/GrpcFormDataMapper.java b/router/src/main/java/de/itvsh/kop/eingangsadapter/router/GrpcFormDataMapper.java
similarity index 98%
rename from intelliform-adapter/src/main/java/de/itvsh/kop/eingangsadapter/GrpcFormDataMapper.java
rename to router/src/main/java/de/itvsh/kop/eingangsadapter/router/GrpcFormDataMapper.java
index 96df3f24f9d1cb3c03c3421fe506737790398a4e..8ba41ad35fddff3dbbc7f22292cb09dcfe9852ac 100644
--- a/intelliform-adapter/src/main/java/de/itvsh/kop/eingangsadapter/GrpcFormDataMapper.java
+++ b/router/src/main/java/de/itvsh/kop/eingangsadapter/router/GrpcFormDataMapper.java
@@ -1,4 +1,4 @@
-package de.itvsh.kop.eingangsadapter;
+package de.itvsh.kop.eingangsadapter.router;
 
 import java.util.List;
 import java.util.Map;
diff --git a/intelliform-adapter/src/main/java/de/itvsh/kop/eingangsadapter/PlutoListProperties.java b/router/src/main/java/de/itvsh/kop/eingangsadapter/router/PlutoListProperties.java
similarity index 96%
rename from intelliform-adapter/src/main/java/de/itvsh/kop/eingangsadapter/PlutoListProperties.java
rename to router/src/main/java/de/itvsh/kop/eingangsadapter/router/PlutoListProperties.java
index b001913f1433e662b69ad1703fa95971d7f79216..bfad6fcb22a85772bc89d783fe5479834933d00b 100644
--- a/intelliform-adapter/src/main/java/de/itvsh/kop/eingangsadapter/PlutoListProperties.java
+++ b/router/src/main/java/de/itvsh/kop/eingangsadapter/router/PlutoListProperties.java
@@ -1,4 +1,4 @@
-package de.itvsh.kop.eingangsadapter;
+package de.itvsh.kop.eingangsadapter.router;
 
 import java.lang.annotation.Documented;
 import java.lang.annotation.ElementType;
@@ -23,7 +23,7 @@ import org.springframework.boot.context.properties.ConfigurationProperties;
 import org.springframework.context.annotation.Configuration;
 import org.springframework.validation.annotation.Validated;
 
-import de.itvsh.kop.eingangsadapter.PlutoListProperties.PlutoListPropertiesConstraint;
+import de.itvsh.kop.eingangsadapter.router.PlutoListProperties.PlutoListPropertiesConstraint;
 import lombok.AllArgsConstructor;
 import lombok.Getter;
 import lombok.Setter;
diff --git a/intelliform-adapter/src/main/java/de/itvsh/kop/eingangsadapter/PlutoServerResolver.java b/router/src/main/java/de/itvsh/kop/eingangsadapter/router/PlutoServerResolver.java
similarity index 89%
rename from intelliform-adapter/src/main/java/de/itvsh/kop/eingangsadapter/PlutoServerResolver.java
rename to router/src/main/java/de/itvsh/kop/eingangsadapter/router/PlutoServerResolver.java
index 0511c9aa3b4d08aa1781f4b2209a6dec4a40c3da..8c11a9b7439bd454129aaff6265959bbb64fe0ef 100644
--- a/intelliform-adapter/src/main/java/de/itvsh/kop/eingangsadapter/PlutoServerResolver.java
+++ b/router/src/main/java/de/itvsh/kop/eingangsadapter/router/PlutoServerResolver.java
@@ -1,4 +1,4 @@
-package de.itvsh.kop.eingangsadapter;
+package de.itvsh.kop.eingangsadapter.router;
 
 import java.util.Collection;
 import java.util.Collections;
@@ -10,8 +10,10 @@ import javax.validation.Valid;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 
-import de.itvsh.kop.eingangsadapter.PlutoListProperties.FallbackStrategy;
-import de.itvsh.kop.eingangsadapter.PlutoListProperties.RoutingStrategy;
+import de.itvsh.kop.eingangsadapter.router.PlutoListProperties.FallbackStrategy;
+import de.itvsh.kop.eingangsadapter.router.PlutoListProperties.RoutingStrategy;
+import de.itvsh.kop.eingangsadapter.router.errorhandling.AdapterConfigurationException;
+import de.itvsh.kop.eingangsadapter.router.errorhandling.UnkownOrganisationseinheitException;
 import de.itvsh.ozg.pluto.vorgang.VorgangServiceGrpc.VorgangServiceBlockingStub;
 import io.grpc.Channel;
 import io.grpc.stub.AbstractStub;
diff --git a/intelliform-adapter/src/main/java/de/itvsh/kop/eingangsadapter/VorgangRemoteService.java b/router/src/main/java/de/itvsh/kop/eingangsadapter/router/VorgangRemoteService.java
similarity index 95%
rename from intelliform-adapter/src/main/java/de/itvsh/kop/eingangsadapter/VorgangRemoteService.java
rename to router/src/main/java/de/itvsh/kop/eingangsadapter/router/VorgangRemoteService.java
index ce49bcfd213321c63c970434326f4440df51e94e..4daa6ba9c494d5277828b8b4e6744d7d6d987cfe 100644
--- a/intelliform-adapter/src/main/java/de/itvsh/kop/eingangsadapter/VorgangRemoteService.java
+++ b/router/src/main/java/de/itvsh/kop/eingangsadapter/router/VorgangRemoteService.java
@@ -1,4 +1,4 @@
-package de.itvsh.kop.eingangsadapter;
+package de.itvsh.kop.eingangsadapter.router;
 
 import java.util.Optional;
 
diff --git a/intelliform-adapter/src/main/java/de/itvsh/kop/eingangsadapter/VorgangService.java b/router/src/main/java/de/itvsh/kop/eingangsadapter/router/VorgangService.java
similarity index 94%
rename from intelliform-adapter/src/main/java/de/itvsh/kop/eingangsadapter/VorgangService.java
rename to router/src/main/java/de/itvsh/kop/eingangsadapter/router/VorgangService.java
index 49518c7284f49e109a291ac02455f5e63c88b1cd..c1e6ec80fe6a86b91005fd6e1e20f2c50931fbd6 100644
--- a/intelliform-adapter/src/main/java/de/itvsh/kop/eingangsadapter/VorgangService.java
+++ b/router/src/main/java/de/itvsh/kop/eingangsadapter/router/VorgangService.java
@@ -1,4 +1,4 @@
-package de.itvsh.kop.eingangsadapter;
+package de.itvsh.kop.eingangsadapter.router;
 
 import java.util.Optional;
 
diff --git a/intelliform-adapter/src/main/java/de/itvsh/kop/eingangsadapter/AdapterConfigurationException.java b/router/src/main/java/de/itvsh/kop/eingangsadapter/router/errorhandling/AdapterConfigurationException.java
similarity index 56%
rename from intelliform-adapter/src/main/java/de/itvsh/kop/eingangsadapter/AdapterConfigurationException.java
rename to router/src/main/java/de/itvsh/kop/eingangsadapter/router/errorhandling/AdapterConfigurationException.java
index eca13ae7b8186256f20a03e6c9e9c4322778afb8..3a5a0ae72a775ceb02b5874684012f12ecdaece6 100644
--- a/intelliform-adapter/src/main/java/de/itvsh/kop/eingangsadapter/AdapterConfigurationException.java
+++ b/router/src/main/java/de/itvsh/kop/eingangsadapter/router/errorhandling/AdapterConfigurationException.java
@@ -1,10 +1,10 @@
-package de.itvsh.kop.eingangsadapter;
+package de.itvsh.kop.eingangsadapter.router.errorhandling;
 
 public class AdapterConfigurationException extends RuntimeException {
 
 	private static final long serialVersionUID = 1L;
 
-	AdapterConfigurationException(String msg) {
+	public AdapterConfigurationException(String msg) {
 		super(msg);
 	}
 }
diff --git a/intelliform-adapter/src/main/java/de/itvsh/kop/eingangsadapter/UnkownOrganisationseinheitException.java b/router/src/main/java/de/itvsh/kop/eingangsadapter/router/errorhandling/UnkownOrganisationseinheitException.java
similarity index 66%
rename from intelliform-adapter/src/main/java/de/itvsh/kop/eingangsadapter/UnkownOrganisationseinheitException.java
rename to router/src/main/java/de/itvsh/kop/eingangsadapter/router/errorhandling/UnkownOrganisationseinheitException.java
index fa0e1b65bca95a5cad5882f15ac590ff0955c24e..b73f47a2ccf6fd9db7846812ab3afe53956da33e 100644
--- a/intelliform-adapter/src/main/java/de/itvsh/kop/eingangsadapter/UnkownOrganisationseinheitException.java
+++ b/router/src/main/java/de/itvsh/kop/eingangsadapter/router/errorhandling/UnkownOrganisationseinheitException.java
@@ -1,10 +1,10 @@
-package de.itvsh.kop.eingangsadapter;
+package de.itvsh.kop.eingangsadapter.router.errorhandling;
 
 public class UnkownOrganisationseinheitException extends RuntimeException {
 
 	private static final long serialVersionUID = 1L;
 
-	UnkownOrganisationseinheitException() {
+	public UnkownOrganisationseinheitException() {
 		super("Unkown or missing Organisationseinheit found. Request is Denied.");
 	}
 
diff --git a/intelliform-adapter/src/test/java/de/itvsh/kop/eingangsadapter/GrpcEingangMapperITCase.java b/router/src/test/java/de/itvsh/kop/eingangsadapter/router/GrpcEingangMapperITCase.java
similarity index 97%
rename from intelliform-adapter/src/test/java/de/itvsh/kop/eingangsadapter/GrpcEingangMapperITCase.java
rename to router/src/test/java/de/itvsh/kop/eingangsadapter/router/GrpcEingangMapperITCase.java
index c33c2fa53cca3d72e7275c28705b79ed39d5ac7c..c5e34cf68b8371d81930011df5bd9d95c3a61864 100644
--- a/intelliform-adapter/src/test/java/de/itvsh/kop/eingangsadapter/GrpcEingangMapperITCase.java
+++ b/router/src/test/java/de/itvsh/kop/eingangsadapter/router/GrpcEingangMapperITCase.java
@@ -1,4 +1,4 @@
-package de.itvsh.kop.eingangsadapter;
+package de.itvsh.kop.eingangsadapter.router;
 
 import static org.assertj.core.api.Assertions.*;
 
@@ -13,12 +13,12 @@ import org.mapstruct.factory.Mappers;
 import org.mockito.InjectMocks;
 import org.mockito.Spy;
 
-import de.itvsh.kop.eingangsadapter.GrpcEingangMapper;
-import de.itvsh.kop.eingangsadapter.GrpcFormDataMapper;
 import de.itvsh.kop.eingangsadapter.common.formdata.AntragstellerTestFactory;
 import de.itvsh.kop.eingangsadapter.common.formdata.FormDataTestFactory;
 import de.itvsh.kop.eingangsadapter.common.formdata.IncomingFileTestFactory;
 import de.itvsh.kop.eingangsadapter.common.formdata.ZustaendigsStelleTestFactory;
+import de.itvsh.kop.eingangsadapter.router.GrpcEingangMapper;
+import de.itvsh.kop.eingangsadapter.router.GrpcFormDataMapper;
 import de.itvsh.ozg.pluto.vorgang.GrpcEingang;
 import de.itvsh.ozg.pluto.vorgang.GrpcIncomingFile;
 
diff --git a/intelliform-adapter/src/test/java/de/itvsh/kop/eingangsadapter/GrpcEingangMapperTest.java b/router/src/test/java/de/itvsh/kop/eingangsadapter/router/GrpcEingangMapperTest.java
similarity index 97%
rename from intelliform-adapter/src/test/java/de/itvsh/kop/eingangsadapter/GrpcEingangMapperTest.java
rename to router/src/test/java/de/itvsh/kop/eingangsadapter/router/GrpcEingangMapperTest.java
index edf2a7e280f5b1dc6b4380d77f06edad2849f41b..8bb651bc5a1ffcf2e46727af43ddc38d1a68376a 100644
--- a/intelliform-adapter/src/test/java/de/itvsh/kop/eingangsadapter/GrpcEingangMapperTest.java
+++ b/router/src/test/java/de/itvsh/kop/eingangsadapter/router/GrpcEingangMapperTest.java
@@ -1,4 +1,4 @@
-package de.itvsh.kop.eingangsadapter;
+package de.itvsh.kop.eingangsadapter.router;
 
 import static org.assertj.core.api.Assertions.*;
 import static org.mockito.ArgumentMatchers.*;
@@ -12,12 +12,12 @@ import org.mapstruct.factory.Mappers;
 import org.mockito.InjectMocks;
 import org.mockito.Mock;
 
-import de.itvsh.kop.eingangsadapter.GrpcEingangMapper;
-import de.itvsh.kop.eingangsadapter.GrpcFormDataMapper;
 import de.itvsh.kop.eingangsadapter.common.formdata.AntragstellerTestFactory;
 import de.itvsh.kop.eingangsadapter.common.formdata.FormDataTestFactory;
 import de.itvsh.kop.eingangsadapter.common.formdata.IncomingFileTestFactory;
 import de.itvsh.kop.eingangsadapter.common.formdata.ZustaendigsStelleTestFactory;
+import de.itvsh.kop.eingangsadapter.router.GrpcEingangMapper;
+import de.itvsh.kop.eingangsadapter.router.GrpcFormDataMapper;
 import de.itvsh.ozg.pluto.vorgang.GrpcEingang;
 import de.itvsh.ozg.pluto.vorgang.GrpcFormData;
 import de.itvsh.ozg.pluto.vorgang.GrpcIncomingFile;
diff --git a/intelliform-adapter/src/test/java/de/itvsh/kop/eingangsadapter/GrpcFormDataMapperTest.java b/router/src/test/java/de/itvsh/kop/eingangsadapter/router/GrpcFormDataMapperTest.java
similarity index 98%
rename from intelliform-adapter/src/test/java/de/itvsh/kop/eingangsadapter/GrpcFormDataMapperTest.java
rename to router/src/test/java/de/itvsh/kop/eingangsadapter/router/GrpcFormDataMapperTest.java
index 9f170d929709a6ce1b5b051c870696edbcb9fb5f..10ce1356c649172d266c7c80350f091250ec21a1 100644
--- a/intelliform-adapter/src/test/java/de/itvsh/kop/eingangsadapter/GrpcFormDataMapperTest.java
+++ b/router/src/test/java/de/itvsh/kop/eingangsadapter/router/GrpcFormDataMapperTest.java
@@ -1,4 +1,4 @@
-package de.itvsh.kop.eingangsadapter;
+package de.itvsh.kop.eingangsadapter.router;
 
 import static org.assertj.core.api.Assertions.*;
 import static org.mockito.ArgumentMatchers.*;
@@ -15,7 +15,7 @@ import org.mapstruct.factory.Mappers;
 import org.mockito.InjectMocks;
 import org.mockito.Mock;
 
-import de.itvsh.kop.eingangsadapter.GrpcFormDataMapper;
+import de.itvsh.kop.eingangsadapter.router.GrpcFormDataMapper;
 import de.itvsh.ozg.pluto.vorgang.GrpcFormData;
 import de.itvsh.ozg.pluto.vorgang.GrpcFormField;
 import de.itvsh.ozg.pluto.vorgang.GrpcSubForm;
diff --git a/intelliform-adapter/src/test/java/de/itvsh/kop/eingangsadapter/GrpcFormFieldTestFactory.java b/router/src/test/java/de/itvsh/kop/eingangsadapter/router/GrpcFormFieldTestFactory.java
similarity index 90%
rename from intelliform-adapter/src/test/java/de/itvsh/kop/eingangsadapter/GrpcFormFieldTestFactory.java
rename to router/src/test/java/de/itvsh/kop/eingangsadapter/router/GrpcFormFieldTestFactory.java
index 80523b5ac1453b27e23d7bb0c7196407c6910a5f..325aca5ca99590aac1a6a5533905e45d10a84170 100644
--- a/intelliform-adapter/src/test/java/de/itvsh/kop/eingangsadapter/GrpcFormFieldTestFactory.java
+++ b/router/src/test/java/de/itvsh/kop/eingangsadapter/router/GrpcFormFieldTestFactory.java
@@ -1,4 +1,4 @@
-package de.itvsh.kop.eingangsadapter;
+package de.itvsh.kop.eingangsadapter.router;
 
 import de.itvsh.ozg.pluto.vorgang.GrpcFormField;
 
diff --git a/intelliform-adapter/src/test/java/de/itvsh/kop/eingangsadapter/PlutoListPropertiesTest.java b/router/src/test/java/de/itvsh/kop/eingangsadapter/router/PlutoListPropertiesTest.java
similarity index 93%
rename from intelliform-adapter/src/test/java/de/itvsh/kop/eingangsadapter/PlutoListPropertiesTest.java
rename to router/src/test/java/de/itvsh/kop/eingangsadapter/router/PlutoListPropertiesTest.java
index 31aeb657b7eaa052a034a93b1b58e34bb431b7f0..018b69ab7ab28e617c159b123f3297202e8dede0 100644
--- a/intelliform-adapter/src/test/java/de/itvsh/kop/eingangsadapter/PlutoListPropertiesTest.java
+++ b/router/src/test/java/de/itvsh/kop/eingangsadapter/router/PlutoListPropertiesTest.java
@@ -1,4 +1,4 @@
-package de.itvsh.kop.eingangsadapter;
+package de.itvsh.kop.eingangsadapter.router;
 
 import static org.assertj.core.api.Assertions.*;
 
@@ -13,8 +13,8 @@ import javax.validation.ValidatorFactory;
 import org.junit.jupiter.api.Nested;
 import org.junit.jupiter.api.Test;
 
-import de.itvsh.kop.eingangsadapter.PlutoListProperties;
-import de.itvsh.kop.eingangsadapter.GrpcClientsProperties.ClientProperty;
+import de.itvsh.kop.eingangsadapter.router.PlutoListProperties;
+import de.itvsh.kop.eingangsadapter.router.GrpcClientsProperties.ClientProperty;
 
 class PlutoListPropertiesTest {
 
diff --git a/intelliform-adapter/src/test/java/de/itvsh/kop/eingangsadapter/PlutoListPropertiesTestFactory.java b/router/src/test/java/de/itvsh/kop/eingangsadapter/router/PlutoListPropertiesTestFactory.java
similarity index 79%
rename from intelliform-adapter/src/test/java/de/itvsh/kop/eingangsadapter/PlutoListPropertiesTestFactory.java
rename to router/src/test/java/de/itvsh/kop/eingangsadapter/router/PlutoListPropertiesTestFactory.java
index 141518ef94605c08785c3e05aaeaba1175f8a6ab..1e22871364f7876ae4afecc1ecbdf5037b95dbde 100644
--- a/intelliform-adapter/src/test/java/de/itvsh/kop/eingangsadapter/PlutoListPropertiesTestFactory.java
+++ b/router/src/test/java/de/itvsh/kop/eingangsadapter/router/PlutoListPropertiesTestFactory.java
@@ -1,13 +1,13 @@
-package de.itvsh.kop.eingangsadapter;
+package de.itvsh.kop.eingangsadapter.router;
 
 import java.util.Map;
 import java.util.Optional;
 
-import de.itvsh.kop.eingangsadapter.GrpcClientsProperties;
-import de.itvsh.kop.eingangsadapter.PlutoListProperties;
-import de.itvsh.kop.eingangsadapter.GrpcClientsProperties.ClientProperty;
-import de.itvsh.kop.eingangsadapter.PlutoListProperties.FallbackStrategy;
-import de.itvsh.kop.eingangsadapter.PlutoListProperties.RoutingStrategy;
+import de.itvsh.kop.eingangsadapter.router.GrpcClientsProperties;
+import de.itvsh.kop.eingangsadapter.router.PlutoListProperties;
+import de.itvsh.kop.eingangsadapter.router.GrpcClientsProperties.ClientProperty;
+import de.itvsh.kop.eingangsadapter.router.PlutoListProperties.FallbackStrategy;
+import de.itvsh.kop.eingangsadapter.router.PlutoListProperties.RoutingStrategy;
 
 class PlutoListPropertiesTestFactory {
 
diff --git a/intelliform-adapter/src/test/java/de/itvsh/kop/eingangsadapter/PlutoServerResolverITCase.java b/router/src/test/java/de/itvsh/kop/eingangsadapter/router/PlutoServerResolverITCase.java
similarity index 86%
rename from intelliform-adapter/src/test/java/de/itvsh/kop/eingangsadapter/PlutoServerResolverITCase.java
rename to router/src/test/java/de/itvsh/kop/eingangsadapter/router/PlutoServerResolverITCase.java
index aa24d2d9350ca82ceea4fab842a4574f98d6e9b7..480b2e95a81d2b9413ce4a8a5eadb4adf31bcf2d 100644
--- a/intelliform-adapter/src/test/java/de/itvsh/kop/eingangsadapter/PlutoServerResolverITCase.java
+++ b/router/src/test/java/de/itvsh/kop/eingangsadapter/router/PlutoServerResolverITCase.java
@@ -1,4 +1,4 @@
-package de.itvsh.kop.eingangsadapter;
+package de.itvsh.kop.eingangsadapter.router;
 
 import static org.assertj.core.api.Assertions.*;
 
@@ -8,7 +8,7 @@ import org.junit.jupiter.api.Test;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.test.context.SpringBootTest;
 
-import de.itvsh.kop.eingangsadapter.PlutoServerResolver;
+import de.itvsh.kop.eingangsadapter.router.PlutoServerResolver;
 import de.itvsh.ozg.pluto.vorgang.VorgangServiceGrpc.VorgangServiceBlockingStub;
 
 @SpringBootTest
diff --git a/intelliform-adapter/src/test/java/de/itvsh/kop/eingangsadapter/PlutoServerResolverTest.java b/router/src/test/java/de/itvsh/kop/eingangsadapter/router/PlutoServerResolverTest.java
similarity index 94%
rename from intelliform-adapter/src/test/java/de/itvsh/kop/eingangsadapter/PlutoServerResolverTest.java
rename to router/src/test/java/de/itvsh/kop/eingangsadapter/router/PlutoServerResolverTest.java
index d82aa5dd43906f8aa9dbe6b886f0d50ff8863edb..534f4ea5e0dafc3d1f211252c45926176cd6449a 100644
--- a/intelliform-adapter/src/test/java/de/itvsh/kop/eingangsadapter/PlutoServerResolverTest.java
+++ b/router/src/test/java/de/itvsh/kop/eingangsadapter/router/PlutoServerResolverTest.java
@@ -1,4 +1,4 @@
-package de.itvsh.kop.eingangsadapter;
+package de.itvsh.kop.eingangsadapter.router;
 
 import static org.assertj.core.api.Assertions.*;
 import static org.junit.jupiter.api.Assertions.*;
@@ -17,10 +17,8 @@ import org.mockito.Mock;
 import org.mockito.Spy;
 import org.springframework.test.util.ReflectionTestUtils;
 
-import de.itvsh.kop.eingangsadapter.AdapterConfigurationException;
-import de.itvsh.kop.eingangsadapter.PlutoListProperties;
-import de.itvsh.kop.eingangsadapter.PlutoServerResolver;
-import de.itvsh.kop.eingangsadapter.UnkownOrganisationseinheitException;
+import de.itvsh.kop.eingangsadapter.router.errorhandling.AdapterConfigurationException;
+import de.itvsh.kop.eingangsadapter.router.errorhandling.UnkownOrganisationseinheitException;
 import io.grpc.Channel;
 import io.grpc.stub.AbstractStub;
 import net.devh.boot.grpc.client.channelfactory.GrpcChannelFactory;
diff --git a/intelliform-adapter/src/test/java/de/itvsh/kop/eingangsadapter/VorgangServiceTest.java b/router/src/test/java/de/itvsh/kop/eingangsadapter/router/VorgangServiceTest.java
similarity index 87%
rename from intelliform-adapter/src/test/java/de/itvsh/kop/eingangsadapter/VorgangServiceTest.java
rename to router/src/test/java/de/itvsh/kop/eingangsadapter/router/VorgangServiceTest.java
index 1073ef4382d1735376d302e39c36be176fef42d7..2379a0a4b3241301bbc67f4c9ef05cd98967eaaf 100644
--- a/intelliform-adapter/src/test/java/de/itvsh/kop/eingangsadapter/VorgangServiceTest.java
+++ b/router/src/test/java/de/itvsh/kop/eingangsadapter/router/VorgangServiceTest.java
@@ -1,4 +1,4 @@
-package de.itvsh.kop.eingangsadapter;
+package de.itvsh.kop.eingangsadapter.router;
 
 import static org.mockito.ArgumentMatchers.*;
 import static org.mockito.Mockito.*;
@@ -12,12 +12,12 @@ import org.junit.jupiter.api.Test;
 import org.mockito.InjectMocks;
 import org.mockito.Mock;
 
-import de.itvsh.kop.eingangsadapter.GrpcEingangMapper;
-import de.itvsh.kop.eingangsadapter.VorgangRemoteService;
-import de.itvsh.kop.eingangsadapter.VorgangService;
 import de.itvsh.kop.eingangsadapter.common.formdata.FormData;
 import de.itvsh.kop.eingangsadapter.common.formdata.FormDataTestFactory;
 import de.itvsh.kop.eingangsadapter.common.formdata.ZustaendigsStelleTestFactory;
+import de.itvsh.kop.eingangsadapter.router.GrpcEingangMapper;
+import de.itvsh.kop.eingangsadapter.router.VorgangRemoteService;
+import de.itvsh.kop.eingangsadapter.router.VorgangService;
 import de.itvsh.ozg.pluto.vorgang.GrpcEingang;
 
 class VorgangServiceTest {
diff --git a/router/src/test/resources/META-INF/services/org.junit.jupiter.api.extension.Extension b/router/src/test/resources/META-INF/services/org.junit.jupiter.api.extension.Extension
new file mode 100644
index 0000000000000000000000000000000000000000..79b126e6cdb86bec1f4f08c205de8961bde1934a
--- /dev/null
+++ b/router/src/test/resources/META-INF/services/org.junit.jupiter.api.extension.Extension
@@ -0,0 +1 @@
+org.mockito.junit.jupiter.MockitoExtension
\ No newline at end of file
diff --git a/router/src/test/resources/junit-platform.properties b/router/src/test/resources/junit-platform.properties
new file mode 100644
index 0000000000000000000000000000000000000000..1cebb76d5a58ac034b2627d12411d82d1e85821e
--- /dev/null
+++ b/router/src/test/resources/junit-platform.properties
@@ -0,0 +1 @@
+junit.jupiter.extensions.autodetection.enabled = true
\ No newline at end of file