diff --git a/goofy-server/pom.xml b/goofy-server/pom.xml
index 7ff1a14aaee0e525c35a2bb8e9c5c74f98fc862d..7313f258ef0803ee3ae1735ae058a9b396738a54 100644
--- a/goofy-server/pom.xml
+++ b/goofy-server/pom.xml
@@ -73,6 +73,10 @@
 			<artifactId>junit-jupiter-params</artifactId>
 			<scope>test</scope>
 		</dependency>
+		<dependency>
+			<groupId>com.thedeanda</groupId>
+			<artifactId>lorem</artifactId>
+		</dependency>
 	</dependencies>
 
 	<build>
diff --git a/goofy-server/src/main/java/de/itvsh/goofy/RootController.java b/goofy-server/src/main/java/de/itvsh/goofy/RootController.java
index a7a5c7b756b5d2cfb643fd6c3119e72c37e87a84..9ddcce81c00976e8f6fff9cb34953b56e8d60f28 100644
--- a/goofy-server/src/main/java/de/itvsh/goofy/RootController.java
+++ b/goofy-server/src/main/java/de/itvsh/goofy/RootController.java
@@ -31,7 +31,7 @@ public class RootController {
 	public EntityModel<RootResource> getRootResource(HttpServletRequest request) {
 		return ResourceBuilder.fromEntity(new RootResource())//
 				.addLink(linkTo(RootController.class).withSelfRel()) //
-				.addLink(linkTo(methodOn(VorgangController.class).getAllByPage(1)).withRel(REL_VORGAENGE))//
+				.addLink(linkTo(methodOn(VorgangController.class).getAllByPage(0)).withRel(REL_VORGAENGE))//
 				.buildResource();
 	}
 
diff --git a/goofy-server/src/main/java/de/itvsh/goofy/vorgang/VorgangController.java b/goofy-server/src/main/java/de/itvsh/goofy/vorgang/VorgangController.java
index f3fcd6312a65997c5edf806bae6a7c1a7be049c9..06b940a2e0e54caf9638065d4e580dd6b934ef1b 100644
--- a/goofy-server/src/main/java/de/itvsh/goofy/vorgang/VorgangController.java
+++ b/goofy-server/src/main/java/de/itvsh/goofy/vorgang/VorgangController.java
@@ -14,6 +14,8 @@ import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.bind.annotation.RestController;
 
+import com.thedeanda.lorem.LoremIpsum;
+
 @RestController
 @RequestMapping("api/vorgangs")
 @ExposesResourceFor(Vorgang.class)
@@ -27,8 +29,11 @@ public class VorgangController {
 	@PostConstruct
 	private void initDummyList() {
 		for (int i = 0; i < 1000; i++) {
-			vorgangList.add(Vorgang.builder().name("Vorgang Nr. " + (i + 1)).status("Offen")
-					.initialDate(LocalDateTime.now()).build());
+			vorgangList.add(Vorgang.builder()//
+					.name(String.valueOf(i) + ": " + LoremIpsum.getInstance().getWords(10))//
+					.status("VorgangStatus")//
+					.initialDate(LocalDateTime.now())//
+					.build());
 		}
 	}
 
diff --git a/goofy-server/src/main/java/de/itvsh/goofy/vorgang/VorgangResourceAssembler.java b/goofy-server/src/main/java/de/itvsh/goofy/vorgang/VorgangResourceAssembler.java
index 5d425bb7bae30a445d94e03f36fe855dc5d996c8..fc5858de4a1578c311719d2553c2cc87eebbbebc 100644
--- a/goofy-server/src/main/java/de/itvsh/goofy/vorgang/VorgangResourceAssembler.java
+++ b/goofy-server/src/main/java/de/itvsh/goofy/vorgang/VorgangResourceAssembler.java
@@ -16,8 +16,10 @@ import org.springframework.hateoas.server.RepresentationModelAssembler;
 import org.springframework.stereotype.Component;
 
 import de.itvsh.goofy.common.ResourceBuilder;
+import lombok.AccessLevel;
+import lombok.AllArgsConstructor;
 import lombok.Builder;
-import lombok.Builder.Default;
+import lombok.Getter;
 
 @Component
 public class VorgangResourceAssembler implements RepresentationModelAssembler<Vorgang, EntityModel<Vorgang>> {
@@ -25,8 +27,6 @@ public class VorgangResourceAssembler implements RepresentationModelAssembler<Vo
 	private final String REL_NEXT = "next";
 	private final String REL_PREVIOUS = "previous";
 
-	int sizePerPage = 20;
-
 	@Autowired
 	private EntityLinks entityLinks;
 
@@ -43,26 +43,21 @@ public class VorgangResourceAssembler implements RepresentationModelAssembler<Vo
 	}
 
 	public CollectionModel<EntityModel<Vorgang>> toPagedCollectionModel(LinkedList<Vorgang> entities, int page) {
-		int start = page == 1 ? page : page + sizePerPage;
-		int end = start + sizePerPage;
-
-		List<Vorgang> subList = entities.subList(start - 1, end - 1);
-		CollectionModel<EntityModel<Vorgang>> entityModelCollection = CollectionModel
-				.of(subList.stream().map(this::toModel).collect(Collectors.toList()));
-
-		addPaginationLinks(entityModelCollection, CollectionEntityModelPage.builder()//
+		CollectionEntityPageModel model = CollectionEntityPageModel.builder()//
+				.sizePerPage(50)//
 				.entityList(entities)//
-				.numberOfCurrentPage(page)//
-				.build());
+				.currentPage(page)//
+				.build();
 
-		return entityModelCollection;
+		return getPagedCollection(model);
 	}
 
+	@Getter
+	@AllArgsConstructor(access = AccessLevel.PRIVATE)
 	@Builder(toBuilder = true)
-	private static class CollectionEntityModelPage {
-		@Default
-		int sizePerPage = 22;
-		int numberOfCurrentPage;
+	private static class CollectionEntityPageModel {
+		int sizePerPage;
+		int currentPage;
 		LinkedList<Vorgang> entityList;
 
 		private long getTotalPages() {
@@ -70,27 +65,73 @@ public class VorgangResourceAssembler implements RepresentationModelAssembler<Vo
 		}
 
 		private boolean hasNext() {
-			return numberOfCurrentPage < getTotalPages() ? true : false;
+			return currentPage < getTotalPages() ? true : false;
 		}
 
 		private boolean hasPrevious() {
-			return numberOfCurrentPage > 1;
+			return currentPage > 1;
+		}
+	}
+
+	private CollectionModel<EntityModel<Vorgang>> getPagedCollection(CollectionEntityPageModel model) {
+		int startIndex = getStartIndex(model);
+		int endIndex = getEndIndex(model, startIndex);
+
+		CollectionModel<EntityModel<Vorgang>> entityModelCollection = CollectionModel
+				.of(getSubList(model, startIndex, endIndex).stream()//
+						.map(this::toModel)//
+						.collect(Collectors.toList()));
+
+		addPaginationLinks(entityModelCollection, model);
+
+		return entityModelCollection;
+	}
+
+	private int getStartIndex(CollectionEntityPageModel model) {
+		int startIndex = 0;
+		if (model.getCurrentPage() == 1) {
+			startIndex = model.getCurrentPage() + model.getSizePerPage() - 1;
+		}
+		if (model.getCurrentPage() > 1) {
+			startIndex = model.currentPage * model.getSizePerPage() - 1;
+		}
+		return startIndex;
+	}
+
+	private int getEndIndex(CollectionEntityPageModel model, int startIndex) {
+		int endIndex = model.sizePerPage;
+		if (model.getCurrentPage() == 1) {
+			endIndex = startIndex + model.getSizePerPage() - 1;
+		}
+		if (model.getCurrentPage() > 1) {
+			endIndex = startIndex + model.getSizePerPage() - 1;
+		}
+		return endIndex;
+	}
+
+	private List<Vorgang> getSubList(CollectionEntityPageModel model, int startIndex, int endIndex) {
+		List<Vorgang> subList = null;
+		if (endIndex < model.entityList.size()) {
+			subList = model.entityList.subList(startIndex, endIndex);
+		} else {
+			subList = model.entityList.subList(startIndex, model.entityList.size());
 		}
+		return subList;
 	}
 
 	private CollectionModel<EntityModel<Vorgang>> addPaginationLinks(
-			CollectionModel<EntityModel<Vorgang>> modelCollection, CollectionEntityModelPage entityModelPage) {
+			CollectionModel<EntityModel<Vorgang>> modelCollection, CollectionEntityPageModel entityModelPage) {
 		VorgangController linkBuilder = methodOn(VorgangController.class);
 
-		modelCollection.add(linkTo(linkBuilder.getAllByPage(entityModelPage.numberOfCurrentPage)).withSelfRel());
+		modelCollection.add(linkTo(linkBuilder.getAllByPage(entityModelPage.currentPage)).withSelfRel());
 
 		if (entityModelPage.hasNext()) {
 			modelCollection.add(//
-					linkTo(linkBuilder.getAllByPage(entityModelPage.numberOfCurrentPage + 1)).withRel(REL_NEXT));
+					linkTo(linkBuilder.getAllByPage(entityModelPage.currentPage + 1)).withRel(REL_NEXT));
 		}
 		if (entityModelPage.hasPrevious()) {
 			modelCollection.add(//
-					linkTo(linkBuilder.getAllByPage(entityModelPage.numberOfCurrentPage - 1)).withRel(REL_PREVIOUS));
+					linkTo(linkBuilder.getAllByPage(entityModelPage.currentPage - 1)).withRel(REL_PREVIOUS));
 		}
 		return modelCollection;
 	}
diff --git a/goofy-server/src/test/java/de/itvsh/goofy/vorgang/VorgangTestFactory.java b/goofy-server/src/test/java/de/itvsh/goofy/vorgang/VorgangTestFactory.java
new file mode 100644
index 0000000000000000000000000000000000000000..d1f18dbda58bdfc2542b58c8b783e4a5d0d063ac
--- /dev/null
+++ b/goofy-server/src/test/java/de/itvsh/goofy/vorgang/VorgangTestFactory.java
@@ -0,0 +1,26 @@
+package de.itvsh.goofy.vorgang;
+
+import java.time.LocalDateTime;
+import java.util.UUID;
+
+import com.thedeanda.lorem.LoremIpsum;
+
+public class VorgangTestFactory {
+
+	private static final String ID = UUID.randomUUID().toString();
+	private static String NAME = LoremIpsum.getInstance().getWords(10);
+	private static String STATUS = "VorgangsStatus";
+	private static LocalDateTime INITIAL_DATE = LocalDateTime.now();
+
+	public static Vorgang create() {
+		return createBuilder().build();
+	}
+
+	public static Vorgang.VorgangBuilder createBuilder() {
+		return Vorgang.builder()//
+				.id(ID)//
+				.name(NAME)//
+				.status(STATUS)//
+				.initialDate(INITIAL_DATE);
+	}
+}
\ No newline at end of file
diff --git a/pom.xml b/pom.xml
index 09fa00e33bb296c2e88cdb577dcde3473c937063..aa1f6c3d86b19f30dfb51f1d037b116b7be58dc8 100644
--- a/pom.xml
+++ b/pom.xml
@@ -20,6 +20,7 @@
 		<java.version>15</java.version>
 
 		<spring.boot.version>2.4.0</spring.boot.version>
+		<lorem.version>2.1</lorem.version>
 
 		<!-- plugins -->
 		<maven-jar-plugin.version>3.2.0</maven-jar-plugin.version>
@@ -39,6 +40,12 @@
 				<type>pom</type>
 				<scope>import</scope>
 			</dependency>
+			<dependency>
+				<groupId>com.thedeanda</groupId>
+				<artifactId>lorem</artifactId>
+				<version>${lorem.version}</version>
+				<!-- <scope>test</scope> -->
+			</dependency>
 
 		</dependencies>
 	</dependencyManagement>