diff --git a/goofy-server/src/main/java/de/itvsh/goofy/wiedervorlage/WiedervorlageMapper.java b/goofy-server/src/main/java/de/itvsh/goofy/wiedervorlage/WiedervorlageMapper.java
index b6a215406aabdb447543a2077acb39616b59f0cf..3dd222c011ec78ab460a2911d869fc364cc09ca6 100644
--- a/goofy-server/src/main/java/de/itvsh/goofy/wiedervorlage/WiedervorlageMapper.java
+++ b/goofy-server/src/main/java/de/itvsh/goofy/wiedervorlage/WiedervorlageMapper.java
@@ -11,18 +11,23 @@ import org.mapstruct.CollectionMappingStrategy;
 import org.mapstruct.Mapper;
 import org.mapstruct.NullValueCheckStrategy;
 import org.mapstruct.ReportingPolicy;
+import org.springframework.beans.factory.annotation.Autowired;
 
 import de.itvsh.goofy.common.binaryfile.FileId;
 import de.itvsh.goofy.common.binaryfile.FileIdMapper;
+import de.itvsh.kop.pluto.common.grpc.GrpcObjectMapper;
+import de.itvsh.ozg.pluto.vorgangAttachedItem.GrpcVorgangAttachedItem;
 
 @Mapper(uses = { FileIdMapper.class }, unmappedTargetPolicy = ReportingPolicy.WARN, //
 		unmappedSourcePolicy = ReportingPolicy.WARN, //
 		nullValueCheckStrategy = NullValueCheckStrategy.ALWAYS, //
 		collectionMappingStrategy = CollectionMappingStrategy.ADDER_PREFERRED)
-public interface WiedervorlageMapper {
+abstract class WiedervorlageMapper {
+
+	@Autowired
+	private GrpcObjectMapper grpcObjectMapper;
 
 	static final String ID = "id";
-	static final String VERSION = "version";
 	static final String DONE = "done";
 	static final String CREATED_BY = "createdBy";
 	static final String CREATED_BY_NAME = "createdByName";
@@ -32,10 +37,14 @@ public interface WiedervorlageMapper {
 	static final String FRIST = "frist";
 	static final String ATTACHMENTS = "attachments";
 
-	default Wiedervorlage fromItemMap(Map<String, Object> itemMap) {
+	public Wiedervorlage fromItem(GrpcVorgangAttachedItem item) {
+		return fromItemMap(grpcObjectMapper.mapFromGrpc(item.getItem()), item.getVersion());
+	}
+
+	Wiedervorlage fromItemMap(Map<String, Object> itemMap, long version) {
 		return Wiedervorlage.builder()
 				.id((String) itemMap.get(ID))
-				.version((long) itemMap.get(VERSION))
+				.version(version)
 				.done(Boolean.valueOf((String) itemMap.get(DONE)))
 				.createdBy((String) itemMap.get(CREATED_BY))
 				.createdAt(ZonedDateTime.parse((String) itemMap.get(CREATED_AT)))
diff --git a/goofy-server/src/main/java/de/itvsh/goofy/wiedervorlage/WiedervorlageRemoteService.java b/goofy-server/src/main/java/de/itvsh/goofy/wiedervorlage/WiedervorlageRemoteService.java
index b39b3f0d9ef9efe82cb1f3a43d0fa15d84ab2a4c..73bc379fdacc8d16bd19750017c5ed90c35abae8 100644
--- a/goofy-server/src/main/java/de/itvsh/goofy/wiedervorlage/WiedervorlageRemoteService.java
+++ b/goofy-server/src/main/java/de/itvsh/goofy/wiedervorlage/WiedervorlageRemoteService.java
@@ -10,7 +10,6 @@ import org.springframework.context.ApplicationContext;
 import org.springframework.stereotype.Service;
 
 import de.itvsh.goofy.GoofyServerApplication;
-import de.itvsh.kop.pluto.common.grpc.GrpcObjectMapper;
 import de.itvsh.ozg.pluto.grpc.clientAttribute.ClientAttributeServiceGrpc.ClientAttributeServiceBlockingStub;
 import de.itvsh.ozg.pluto.grpc.clientAttribute.GrpcAccessPermission;
 import de.itvsh.ozg.pluto.grpc.clientAttribute.GrpcClientAttribute;
@@ -37,16 +36,12 @@ public class WiedervorlageRemoteService {
 	@Autowired
 	private WiedervorlageMapper mapper;
 	@Autowired
-	private GrpcObjectMapper grpcObjectMapper;
-	@Autowired
 	private ApplicationContext context;
 
 	public Stream<Wiedervorlage> findByVorgangId(String vorgangId) {
 		var response = vorgangAttachedItemServiceStub.find(buildFindRequest(vorgangId));
 
-		return response.getVorgangAttachedItemsList().stream()
-				.map(item -> grpcObjectMapper.mapFromGrpc(item.getItem()))
-				.map(mapper::fromItemMap);
+		return response.getVorgangAttachedItemsList().stream().map(mapper::fromItem);
 	}
 
 	GrpcFindVorgangAttachedItemRequest buildFindRequest(String vorgangId) {
@@ -58,8 +53,8 @@ public class WiedervorlageRemoteService {
 
 	public Wiedervorlage getById(String wiedervorlageId) {
 		var response = vorgangAttachedItemServiceStub.getById(GrpcVorgangAttachedItemRequest.newBuilder().setId(wiedervorlageId).build());
-		var wiedervorlage = mapper.fromItemMap(grpcObjectMapper.mapFromGrpc(response.getVorgangAttachedItem().getItem()));
-		return wiedervorlage.toBuilder().vorgangId(response.getVorgangAttachedItem().getVorgangId()).build();
+
+		return mapper.fromItem(response.getVorgangAttachedItem()).toBuilder().vorgangId(response.getVorgangAttachedItem().getVorgangId()).build();
 	}
 
 	public void updateNextFrist(String vorgangId, Optional<LocalDate> nextFrist) {
diff --git a/goofy-server/src/test/java/de/itvsh/goofy/vorgang/GrpcVorgangAttachedItemTestFactory.java b/goofy-server/src/test/java/de/itvsh/goofy/vorgang/GrpcVorgangAttachedItemTestFactory.java
index 78b56c924b1bd1f4991f47d5bfc40cb3c5b0704a..216ba59a1db199deb47cbdf31d9f6b8189c50ce7 100644
--- a/goofy-server/src/test/java/de/itvsh/goofy/vorgang/GrpcVorgangAttachedItemTestFactory.java
+++ b/goofy-server/src/test/java/de/itvsh/goofy/vorgang/GrpcVorgangAttachedItemTestFactory.java
@@ -15,6 +15,7 @@ public class GrpcVorgangAttachedItemTestFactory {
 	public final static String ITEM_NAME = LoremIpsum.getInstance().getWords(1);
 	public final static String ITEM_KEY = LoremIpsum.getInstance().getWords(1);
 	public final static String ITEM_VALUE = LoremIpsum.getInstance().getWords(1);
+	public final static long VERSION = 73;
 
 	public static final GrpcObject ITEM = GrpcObject.newBuilder()
 			.addProperty(GrpcProperty.newBuilder()
@@ -33,6 +34,7 @@ public class GrpcVorgangAttachedItemTestFactory {
 				.setClient(CLIENT)
 				.setVorgangId(VorgangHeaderTestFactory.ID)
 				.setItemName(ITEM_NAME)
-				.setItem(ITEM);
+				.setItem(ITEM)
+				.setVersion(VERSION);
 	}
 }
\ No newline at end of file
diff --git a/goofy-server/src/test/java/de/itvsh/goofy/wiedervorlage/WiedervorlageMapperTest.java b/goofy-server/src/test/java/de/itvsh/goofy/wiedervorlage/WiedervorlageMapperTest.java
index acf6c3b94b3a6c9920f657617792411c7ddf2db6..78ffae49fa4b0e2a3fd37cd2932c69cf16dde805 100644
--- a/goofy-server/src/test/java/de/itvsh/goofy/wiedervorlage/WiedervorlageMapperTest.java
+++ b/goofy-server/src/test/java/de/itvsh/goofy/wiedervorlage/WiedervorlageMapperTest.java
@@ -1,26 +1,63 @@
 package de.itvsh.goofy.wiedervorlage;
 
+import static org.mockito.ArgumentMatchers.*;
+import static org.mockito.Mockito.*;
+
 import java.util.HashMap;
 import java.util.List;
 
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.DisplayName;
 import org.junit.jupiter.api.Nested;
 import org.junit.jupiter.api.Test;
 import org.mapstruct.factory.Mappers;
 import org.mockito.InjectMocks;
+import org.mockito.Mock;
 import org.mockito.Spy;
 
 import static org.assertj.core.api.Assertions.*;
 
 import de.itvsh.goofy.common.binaryfile.BinaryFileTestFactory;
 import de.itvsh.goofy.common.binaryfile.FileIdMapper;
+import de.itvsh.goofy.vorgang.GrpcVorgangAttachedItemTestFactory;
+import de.itvsh.kop.pluto.common.grpc.GrpcObjectMapper;
+import de.itvsh.ozg.pluto.common.GrpcObject;
 
 class WiedervorlageMapperTest {
 
+	@Spy
 	@InjectMocks
 	private WiedervorlageMapper mapper = Mappers.getMapper(WiedervorlageMapper.class);
 	@Spy
 	private FileIdMapper fileIdMapper = Mappers.getMapper(FileIdMapper.class);
+	@Mock
+	private GrpcObjectMapper grpcObjectMapper;
+
+	@DisplayName("Map from item")
+	@Nested
+	class TestFromItem {
+
+		@BeforeEach
+		void mockMapper() {
+			when(grpcObjectMapper.mapFromGrpc(any())).thenReturn(WiedervorlageTestFactory.createAsMap());
+		}
+
+		@Test
+		void shouldCallGrpcObjectMapper() {
+			mapper.fromItem(GrpcVorgangAttachedItemTestFactory.create());
+
+			verify(grpcObjectMapper).mapFromGrpc(any(GrpcObject.class));
+		}
+
+		@Test
+		void shouldCallMapperFromItemMap() {
+			mapper.fromItem(GrpcVorgangAttachedItemTestFactory.create());
+
+			verify(mapper).fromItemMap(WiedervorlageTestFactory.createAsMap(), GrpcVorgangAttachedItemTestFactory.VERSION);
+		}
+	}
 
+	@DisplayName("Map from item map")
 	@Nested
 	class TestFromItemMap {
 
@@ -89,7 +126,7 @@ class WiedervorlageMapperTest {
 				wiedervorlageWithoutAttachments.putAll(WiedervorlageTestFactory.createAsMap());
 				wiedervorlageWithoutAttachments.remove(WiedervorlageMapper.ATTACHMENTS);
 
-				var wiedervorlage = mapper.fromItemMap(wiedervorlageWithoutAttachments);
+				var wiedervorlage = mapper.fromItemMap(wiedervorlageWithoutAttachments, WiedervorlageTestFactory.VERSION);
 
 				assertThat(wiedervorlage.getAttachments()).isEmpty();
 			}
@@ -103,7 +140,7 @@ class WiedervorlageMapperTest {
 
 			@Test
 			void shouldMapAttachmentList() {
-				var wiedervorlage = mapper.fromItemMap(createWiedervorlageAsMapWithMultipleAttachments());
+				var wiedervorlage = mapper.fromItemMap(createWiedervorlageAsMapWithMultipleAttachments(), WiedervorlageTestFactory.VERSION);
 
 				assertThat(wiedervorlage.getAttachments()).hasSize(2);
 				assertThat(wiedervorlage.getAttachments().get(0)).isEqualTo(BinaryFileTestFactory.FILE_ID);
@@ -119,7 +156,7 @@ class WiedervorlageMapperTest {
 		}
 
 		private Wiedervorlage map() {
-			return mapper.fromItemMap(WiedervorlageTestFactory.createAsMap());
+			return mapper.fromItemMap(WiedervorlageTestFactory.createAsMap(), WiedervorlageTestFactory.VERSION);
 		}
 	}
 }
\ No newline at end of file
diff --git a/goofy-server/src/test/java/de/itvsh/goofy/wiedervorlage/WiedervorlageRemoteServiceTest.java b/goofy-server/src/test/java/de/itvsh/goofy/wiedervorlage/WiedervorlageRemoteServiceTest.java
index ab6761aaee84a45d2ca86ffdf0051715abb25ea4..307fa72a02e549754a8dac1940e5bb4f38c5bd45 100644
--- a/goofy-server/src/test/java/de/itvsh/goofy/wiedervorlage/WiedervorlageRemoteServiceTest.java
+++ b/goofy-server/src/test/java/de/itvsh/goofy/wiedervorlage/WiedervorlageRemoteServiceTest.java
@@ -1,6 +1,5 @@
 package de.itvsh.goofy.wiedervorlage;
 
-import static org.assertj.core.api.Assertions.*;
 import static org.mockito.ArgumentMatchers.*;
 import static org.mockito.Mockito.*;
 
@@ -20,10 +19,11 @@ import org.mockito.Mock;
 import org.mockito.Spy;
 import org.springframework.context.ApplicationContext;
 
+import static org.assertj.core.api.Assertions.*;
+
 import de.itvsh.goofy.ApplicationTestFactory;
 import de.itvsh.goofy.vorgang.GrpcVorgangAttachedItemTestFactory;
 import de.itvsh.goofy.vorgang.VorgangHeaderTestFactory;
-import de.itvsh.kop.pluto.common.grpc.GrpcObjectMapper;
 import de.itvsh.ozg.pluto.grpc.clientAttribute.ClientAttributeServiceGrpc.ClientAttributeServiceBlockingStub;
 import de.itvsh.ozg.pluto.grpc.clientAttribute.GrpcAccessPermission;
 import de.itvsh.ozg.pluto.grpc.clientAttribute.GrpcDeleteClientAttributeRequest;
@@ -47,8 +47,6 @@ class WiedervorlageRemoteServiceTest {
 	@Mock
 	private WiedervorlageMapper mapper;
 	@Mock
-	private GrpcObjectMapper grpcObjectMapper;
-	@Mock
 	private ApplicationContext applicationContext;
 
 	@Nested
@@ -78,21 +76,14 @@ class WiedervorlageRemoteServiceTest {
 
 				@BeforeEach
 				void mockGrpcMapper() {
-					when(grpcObjectMapper.mapFromGrpc(any())).thenReturn(WiedervorlageTestFactory.createAsMap());
-				}
-
-				@Test
-				void shouldCallForGrpcObject() {
-					callFindById();
-
-					verify(grpcObjectMapper).mapFromGrpc(GrpcVorgangAttachedItemTestFactory.ITEM);
+					when(mapper.fromItem(any())).thenReturn(WiedervorlageTestFactory.create());
 				}
 
 				@Test
 				void shouldCallForWiedervorlage() {
 					callFindById();
 
-					verify(mapper).fromItemMap(WiedervorlageTestFactory.createAsMap());
+					verify(mapper).fromItem(GrpcVorgangAttachedItemTestFactory.create());
 				}
 
 				private void callFindById() {
@@ -141,8 +132,7 @@ class WiedervorlageRemoteServiceTest {
 		@BeforeEach
 		void initMocks() {
 			when(vorgangAttachedItemServiceStub.getById(any())).thenReturn(response);
-			when(grpcObjectMapper.mapFromGrpc(any())).thenReturn(WiedervorlageTestFactory.createAsMap());
-			when(mapper.fromItemMap(any())).thenReturn(WiedervorlageTestFactory.create());
+			when(mapper.fromItem(any())).thenReturn(WiedervorlageTestFactory.create());
 		}
 
 		@Test
@@ -152,18 +142,11 @@ class WiedervorlageRemoteServiceTest {
 			verify(vorgangAttachedItemServiceStub).getById(request);
 		}
 
-		@Test
-		void shouldCallGrpcObjectMapper() {
-			service.getById(WiedervorlageTestFactory.ID);
-
-			verify(grpcObjectMapper).mapFromGrpc(GrpcVorgangAttachedItemTestFactory.ITEM);
-		}
-
 		@Test
 		void shouldCallWiedervorlageMapper() {
 			service.getById(WiedervorlageTestFactory.ID);
 
-			verify(mapper).fromItemMap(WiedervorlageTestFactory.createAsMap());
+			verify(mapper).fromItem(GrpcVorgangAttachedItemTestFactory.create());
 		}
 
 		@Test
diff --git a/goofy-server/src/test/java/de/itvsh/goofy/wiedervorlage/WiedervorlageTestFactory.java b/goofy-server/src/test/java/de/itvsh/goofy/wiedervorlage/WiedervorlageTestFactory.java
index 4c67667e57232b33b1ea612bcc1b7efec21125fe..60a2d19554191e09fbab178d699cec4e078a2cfd 100644
--- a/goofy-server/src/test/java/de/itvsh/goofy/wiedervorlage/WiedervorlageTestFactory.java
+++ b/goofy-server/src/test/java/de/itvsh/goofy/wiedervorlage/WiedervorlageTestFactory.java
@@ -46,7 +46,6 @@ public class WiedervorlageTestFactory {
 	public static Map<String, Object> createAsMap() {
 		return Map.of(
 				WiedervorlageMapper.ID, ID,
-				WiedervorlageMapper.VERSION, VERSION,
 				WiedervorlageMapper.DONE, String.valueOf(DONE),
 				WiedervorlageMapper.CREATED_BY, CREATED_BY,
 				WiedervorlageMapper.CREATED_BY_NAME, CREATED_BY_NAME,