diff --git a/bescheid-manager/pom.xml b/bescheid-manager/pom.xml
index 1763ef5a5b8d907f8e77179727621823e9176cf3..7ec0199f426aca07fe75f0c8b95e3746168927d2 100644
--- a/bescheid-manager/pom.xml
+++ b/bescheid-manager/pom.xml
@@ -33,12 +33,12 @@
 			<artifactId>pluto-interface</artifactId>
 			<version>${pluto.version}</version>
 		</dependency>
-		
+
 		<dependency>
 			<groupId>de.itvsh.kop.common</groupId>
 			<artifactId>kop-common-lib</artifactId>
 		</dependency>
-		
+
 		<dependency>
 			<groupId>org.springframework.boot</groupId>
 			<artifactId>spring-boot-starter-freemarker</artifactId>
@@ -47,11 +47,11 @@
 			<groupId>net.devh</groupId>
 			<artifactId>grpc-client-spring-boot-starter</artifactId>
 		</dependency>
-			<dependency>
+		<dependency>
 			<groupId>org.springframework.security</groupId>
 			<artifactId>spring-security-core</artifactId>
 		</dependency>
-		
+
 		<dependency>
 			<groupId>org.mapstruct</groupId>
 			<artifactId>mapstruct</artifactId>
diff --git a/bescheid-manager/src/main/java/de/ozgcloud/bescheid/Bescheid.java b/bescheid-manager/src/main/java/de/ozgcloud/bescheid/Bescheid.java
index 6e1207d0ec3d17322995e31e88038004bb207891..05b9a03b015e15d92fcbdb2cbeb02ee200810f40 100644
--- a/bescheid-manager/src/main/java/de/ozgcloud/bescheid/Bescheid.java
+++ b/bescheid-manager/src/main/java/de/ozgcloud/bescheid/Bescheid.java
@@ -8,7 +8,7 @@ import lombok.Builder;
 import lombok.Getter;
 import lombok.With;
 
-@Builder
+@Builder(toBuilder = true)
 @Getter
 public class Bescheid {
 
@@ -21,7 +21,6 @@ public class Bescheid {
 	private File bescheidFile;
 	@With
 	private FileId bescheidFileId;
-
 	private String contentType;
 	private long size;
 
diff --git a/bescheid-manager/src/main/java/de/ozgcloud/bescheid/BescheidCreatedEvent.java b/bescheid-manager/src/main/java/de/ozgcloud/bescheid/BescheidCreatedEvent.java
new file mode 100644
index 0000000000000000000000000000000000000000..ca55f1ebd574ad5787b544b23e99765be66e3505
--- /dev/null
+++ b/bescheid-manager/src/main/java/de/ozgcloud/bescheid/BescheidCreatedEvent.java
@@ -0,0 +1,11 @@
+package de.ozgcloud.bescheid;
+
+import de.itvsh.ozg.pluto.command.Command;
+import de.itvsh.ozg.pluto.command.CommandExecutedEvent;
+
+class BescheidCreatedEvent extends CommandExecutedEvent {
+
+	public BescheidCreatedEvent(Command command) {
+		super(command.getId());
+	}
+}
diff --git a/bescheid-manager/src/main/java/de/ozgcloud/bescheid/BescheidEventListener.java b/bescheid-manager/src/main/java/de/ozgcloud/bescheid/BescheidEventListener.java
index 4e6d574a0b9e3375f834a62eb155112ceeb5db31..c29d9ae5b73acc76109eed3c1e96c74bdb6149a0 100644
--- a/bescheid-manager/src/main/java/de/ozgcloud/bescheid/BescheidEventListener.java
+++ b/bescheid-manager/src/main/java/de/ozgcloud/bescheid/BescheidEventListener.java
@@ -58,6 +58,7 @@ class BescheidEventListener {
 		try {
 			prevContext = userService.startSecurityContext(command);
 			doCreateBescheidBiz(command);
+			eventPublisher.publishEvent(new BescheidCreatedEvent(command));
 		} catch (Exception e) {
 			LOG.error("Error on executing Create Bescheid Command. Command failed.", e);
 			eventPublisher.publishEvent(new CommandFailedEvent(command.getId(), buildErrorMessage(e)));
@@ -79,7 +80,7 @@ class BescheidEventListener {
 		var eventBody = command.getBodyObject();
 		var builder = BescheidRequest.builder();
 
-		Optional.ofNullable(eventBody.get(VORGANG_ID_BODYKEY)).map(String.class::cast).map(VorgangId::from).ifPresent(builder::vorgangId);
+		builder.vorgangId(VorgangId.from(command.getVorgangId()));
 		Optional.ofNullable(eventBody.get(BESCHEID_VOM_BODYKEY)).map(LocalDate.class::cast).ifPresent(builder::bescheidVom);
 		Optional.ofNullable(eventBody.get(GENEHMIGT_BODYKEY)).map(Boolean.class::cast).ifPresent(builder::genehmigt);
 		builder.createFor(UserId.from(command.getCreatedBy()));
diff --git a/bescheid-manager/src/main/java/de/ozgcloud/bescheid/BescheidService.java b/bescheid-manager/src/main/java/de/ozgcloud/bescheid/BescheidService.java
index b7e5768f8ae210e6c463292c88be3558590e3367..2a3916a25feedf023de3568ba60ea5caeba26d2a 100644
--- a/bescheid-manager/src/main/java/de/ozgcloud/bescheid/BescheidService.java
+++ b/bescheid-manager/src/main/java/de/ozgcloud/bescheid/BescheidService.java
@@ -16,7 +16,9 @@ class BescheidService {
 	public Bescheid createBescheid(BescheidRequest request) {
 		var vorgang = vorgangService.getById(request.getVorgangId());
 
-		return remoteService.create(request, vorgang);
+		var bescheid = remoteService.create(request, vorgang);
+
+		return bescheid.toBuilder().vorgangId(request.getVorgangId()).build();
 	}
 
 }
diff --git a/bescheid-manager/src/main/java/de/ozgcloud/bescheid/binaryfile/BinaryFileRemoteService.java b/bescheid-manager/src/main/java/de/ozgcloud/bescheid/binaryfile/BinaryFileRemoteService.java
index f743ddebf8f7f02f40eb31d1562aa10342448b27..c96f4d66007f3c594799ba007cd5ec4aefb4d76a 100644
--- a/bescheid-manager/src/main/java/de/ozgcloud/bescheid/binaryfile/BinaryFileRemoteService.java
+++ b/bescheid-manager/src/main/java/de/ozgcloud/bescheid/binaryfile/BinaryFileRemoteService.java
@@ -25,6 +25,7 @@ import de.itvsh.ozg.pluto.grpc.command.GrpcCallContext;
 import de.ozgcloud.bescheid.Bescheid;
 import io.grpc.stub.CallStreamObserver;
 import io.grpc.stub.StreamObserver;
+import lombok.NonNull;
 import net.devh.boot.grpc.client.inject.GrpcClient;
 
 @Service
@@ -36,7 +37,7 @@ class BinaryFileRemoteService {
 	@GrpcClient("vorgang-manager")
 	private BinaryFileServiceStub binaryFileRemoteStub;
 
-	FileId uploadBescheidFile(Bescheid bescheid) {
+	FileId uploadBescheidFile(@NonNull Bescheid bescheid) {
 		try (var in = openFile(bescheid.getBescheidFile())) {
 			var resultFuture = GrpcFileUploadUtils.createSender(this::buildChunkRequest, in,
 					this::buildCallStreamObserver)
diff --git a/bescheid-manager/src/main/java/de/ozgcloud/bescheid/common/callcontext/CurrentUserService.java b/bescheid-manager/src/main/java/de/ozgcloud/bescheid/common/callcontext/CurrentUserService.java
index ee9ce7937acca0afb9d0c863c877137294e26935..ee5f3c71d2044b3ea579c3135744888329aa8b24 100644
--- a/bescheid-manager/src/main/java/de/ozgcloud/bescheid/common/callcontext/CurrentUserService.java
+++ b/bescheid-manager/src/main/java/de/ozgcloud/bescheid/common/callcontext/CurrentUserService.java
@@ -37,7 +37,7 @@ import org.springframework.stereotype.Service;
 
 import de.itvsh.ozg.pluto.command.Command;
 
-@Service
+@Service("bescheid_currentUserService")
 public class CurrentUserService {
 
 	@Autowired
diff --git a/bescheid-manager/src/main/java/de/ozgcloud/bescheid/dummy/DummyBescheidRemoteService.java b/bescheid-manager/src/main/java/de/ozgcloud/bescheid/dummy/DummyBescheidRemoteService.java
index bf689b4f672e86d057079629fee1145c543e5411..47eddc77608d320f300b7cbdf42ed2876f3ba3c4 100644
--- a/bescheid-manager/src/main/java/de/ozgcloud/bescheid/dummy/DummyBescheidRemoteService.java
+++ b/bescheid-manager/src/main/java/de/ozgcloud/bescheid/dummy/DummyBescheidRemoteService.java
@@ -22,6 +22,7 @@ class DummyBescheidRemoteService implements BescheidRemoteService {
 
 		return Bescheid.builder()
 				.bescheidFile(file)
+				.bescheidFileName(DUMMY_BESCHEID_FILE_NAME)
 				.contentType(DUMMY_BESCHEID_CONTENT_TYPE)
 				.size(file.length())
 				.createdBy(request.getCreateFor())
diff --git a/bescheid-manager/src/main/java/de/ozgcloud/bescheid/vorgang/VorgangMapper.java b/bescheid-manager/src/main/java/de/ozgcloud/bescheid/vorgang/BescheidVorgangMapper.java
similarity index 97%
rename from bescheid-manager/src/main/java/de/ozgcloud/bescheid/vorgang/VorgangMapper.java
rename to bescheid-manager/src/main/java/de/ozgcloud/bescheid/vorgang/BescheidVorgangMapper.java
index 27c14d88bf0ef92d01823338b460a567f180f150..ba666524faeeabb19cfa5d3e4e3ae97b68866b9e 100644
--- a/bescheid-manager/src/main/java/de/ozgcloud/bescheid/vorgang/VorgangMapper.java
+++ b/bescheid-manager/src/main/java/de/ozgcloud/bescheid/vorgang/BescheidVorgangMapper.java
@@ -15,7 +15,7 @@ import de.itvsh.ozg.pluto.vorgang.GrpcVorgangWithEingang;
 
 @Mapper(unmappedTargetPolicy = ReportingPolicy.ERROR, //
 		uses = FormDataEntryMapper.class)
-interface VorgangMapper {
+interface BescheidVorgangMapper {
 
 	@Mapping(target = "vorgangNummer", source = "nummer")
 	Vorgang mapVorgang(GrpcVorgangWithEingang vorgang);
diff --git a/bescheid-manager/src/main/java/de/ozgcloud/bescheid/vorgang/VorgangRemoteService.java b/bescheid-manager/src/main/java/de/ozgcloud/bescheid/vorgang/VorgangRemoteService.java
index 7a861345664f23f14bf21c42f5ee4cacefccb27a..4868a8b7f7e3e9a7ce8f6705089bcc398c9db02a 100644
--- a/bescheid-manager/src/main/java/de/ozgcloud/bescheid/vorgang/VorgangRemoteService.java
+++ b/bescheid-manager/src/main/java/de/ozgcloud/bescheid/vorgang/VorgangRemoteService.java
@@ -8,13 +8,13 @@ import de.itvsh.ozg.pluto.vorgang.VorgangServiceGrpc.VorgangServiceBlockingStub;
 import lombok.NonNull;
 import net.devh.boot.grpc.client.inject.GrpcClient;
 
-@Service
+@Service("bescheid_VorgangRemoteService")
 class VorgangRemoteService {
 
-	@GrpcClient("pluto")
+	@GrpcClient("vorgang-manager")
 	private VorgangServiceBlockingStub vorgangServiceStub;
 	@Autowired
-	private VorgangMapper mapper;
+	private BescheidVorgangMapper mapper;
 
 	public Vorgang getById(@NonNull VorgangId vorgangId) {
 		var request = GrpcFindVorgangWithEingangRequest.newBuilder().setId(vorgangId.toString()).build();
diff --git a/bescheid-manager/src/main/java/de/ozgcloud/bescheid/vorgang/VorgangService.java b/bescheid-manager/src/main/java/de/ozgcloud/bescheid/vorgang/VorgangService.java
index 0138aaa7b8cd438281a9ed627f70c04207a43f74..c479421c36775b9a98db6dd5cf84106faafa68f3 100644
--- a/bescheid-manager/src/main/java/de/ozgcloud/bescheid/vorgang/VorgangService.java
+++ b/bescheid-manager/src/main/java/de/ozgcloud/bescheid/vorgang/VorgangService.java
@@ -3,13 +3,15 @@ package de.ozgcloud.bescheid.vorgang;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
-@Service
+import lombok.NonNull;
+
+@Service("bescheid_VorgangService")
 public class VorgangService {
 
 	@Autowired
 	public VorgangRemoteService remoteService;
 
-	public Vorgang getById(VorgangId id) {
+	public Vorgang getById(@NonNull VorgangId id) {
 		return remoteService.getById(id);
 	}
 }
diff --git a/bescheid-manager/src/test/java/de/ozgcloud/bescheid/vorgang/VorgangMapperTest.java b/bescheid-manager/src/test/java/de/ozgcloud/bescheid/vorgang/BescheidVorgangMapperTest.java
similarity index 88%
rename from bescheid-manager/src/test/java/de/ozgcloud/bescheid/vorgang/VorgangMapperTest.java
rename to bescheid-manager/src/test/java/de/ozgcloud/bescheid/vorgang/BescheidVorgangMapperTest.java
index 69ee79e2b5fdf79296f15f1ef8214f422105d864..d430ba2760da66241a263864f147a6325366a699 100644
--- a/bescheid-manager/src/test/java/de/ozgcloud/bescheid/vorgang/VorgangMapperTest.java
+++ b/bescheid-manager/src/test/java/de/ozgcloud/bescheid/vorgang/BescheidVorgangMapperTest.java
@@ -6,10 +6,10 @@ import org.junit.jupiter.api.Nested;
 import org.junit.jupiter.api.Test;
 import org.mockito.InjectMocks;
 
-class VorgangMapperTest {
+class BescheidVorgangMapperTest {
 
 	@InjectMocks
-	private VorgangMapperImpl mapper;
+	private BescheidVorgangMapperImpl mapper;
 
 	@Nested
 	class TestMapVorgang {
diff --git a/bescheid-manager/src/test/java/de/ozgcloud/bescheid/vorgang/VorgangRemoteServiceTest.java b/bescheid-manager/src/test/java/de/ozgcloud/bescheid/vorgang/VorgangRemoteServiceTest.java
index 99a7dadc627dcc8da12e1f7948ba50f09217fa22..2d8c3bd28f79834a89fedbfcd4dce21af2453b7c 100644
--- a/bescheid-manager/src/test/java/de/ozgcloud/bescheid/vorgang/VorgangRemoteServiceTest.java
+++ b/bescheid-manager/src/test/java/de/ozgcloud/bescheid/vorgang/VorgangRemoteServiceTest.java
@@ -25,7 +25,7 @@ class VorgangRemoteServiceTest {
 	@Mock
 	private VorgangServiceBlockingStub serviceStub;
 	@Mock
-	private VorgangMapper mapper;
+	private BescheidVorgangMapper mapper;
 
 	@Nested
 	class TestGetById {
diff --git a/pluto-server/pom.xml b/pluto-server/pom.xml
index 50eed855adeab17abb304543612d36cd30be73ca..ac765c8457ea9758cd8a288d348ac079a38f89f9 100644
--- a/pluto-server/pom.xml
+++ b/pluto-server/pom.xml
@@ -24,14 +24,16 @@
     unter der Lizenz sind dem Lizenztext zu entnehmen.
 
 -->
-<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">
+<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.common</groupId>
 		<artifactId>kop-common-parent</artifactId>
 		<version>1.8.0-SNAPSHOT</version>
-		<relativePath/>
+		<relativePath />
 	</parent>
 
 	<groupId>de.itvsh.ozg.pluto</groupId>
@@ -84,18 +86,25 @@
 			<version>${project.version}</version>
 			<scope>runtime</scope>
 		</dependency>
-		
+		<dependency>
+			<groupId>de.ozgcloud.bescheid</groupId>
+			<artifactId>bescheid-manager</artifactId>
+			<version>1.0.0-SNAPSHOT</version>
+			<scope>runtime</scope>
+		</dependency>
+
 		<dependency>
 			<groupId>de.itvsh.kop.zufi</groupId>
 			<artifactId>kop-zufi-api</artifactId>
 			<version>${kop.zufi.api.version}</version>
 		</dependency>
-		
+
 		<dependency>
 			<groupId>de.itvsh.kop.user</groupId>
 			<artifactId>user-manager-interface</artifactId>
 			<version>${user-manager-interface.version}</version>
-			<!-- TODO Nur proto sources verwenden um quarkus Abhaenigkeiten zu vermeiden. Ebenso im notification-manager -->
+			<!-- TODO Nur proto sources verwenden um quarkus Abhaenigkeiten zu
+			vermeiden. Ebenso im notification-manager -->
 			<exclusions>
 				<exclusion>
 					<groupId>io.grpc</groupId>
diff --git a/pluto-server/src/main/java/de/itvsh/ozg/pluto/PlutoServerApplication.java b/pluto-server/src/main/java/de/itvsh/ozg/pluto/PlutoServerApplication.java
index ae857dbf0737d117bcd75085b811cb0958ac25bf..cfd467fea5943fc6bc0d09d0b824b89c94879d09 100644
--- a/pluto-server/src/main/java/de/itvsh/ozg/pluto/PlutoServerApplication.java
+++ b/pluto-server/src/main/java/de/itvsh/ozg/pluto/PlutoServerApplication.java
@@ -42,7 +42,7 @@ import org.springframework.security.task.DelegatingSecurityContextAsyncTaskExecu
 
 import io.mongock.runner.springboot.EnableMongock;
 
-@SpringBootApplication(scanBasePackages = "de.itvsh.*")
+@SpringBootApplication(scanBasePackages = { "de.itvsh.*", "de.ozgcloud" })
 @EnableAsync
 @EnableScheduling
 @EnableAspectJAutoProxy(proxyTargetClass = true)
diff --git a/pluto-server/src/main/resources/application.yml b/pluto-server/src/main/resources/application.yml
index add4cf1f364042b9697e1fc3f99d73cbc98fdfd5..108278d3d3bc2d8c1392c721202d877689309e39 100644
--- a/pluto-server/src/main/resources/application.yml
+++ b/pluto-server/src/main/resources/application.yml
@@ -24,11 +24,17 @@ grpc:
     pluto:
       address: self:self
       negotiationType: PLAINTEXT
+    vorgang-manager:
+      address: self:self
+      negotiationType: PLAINTEXT
     user-manager:
       negotiationType: TLS  
     email:
       address: self:self
       negotiationType: PLAINTEXT
+    nachrichten-manager:
+      address: self:self
+      negotiationType: PLAINTEXT
 
 pluto:
   redirect: