diff --git a/alfa-service/src/test/java/de/ozgcloud/alfa/historie/VorgangChangeHistoryServiceITCase.java b/alfa-service/src/test/java/de/ozgcloud/alfa/historie/VorgangChangeHistoryServiceITCase.java
index ca9c633f680ca50ad139f3a345da636e7ebe5492..b2de1ac3d9ebda72acd97e3a1615206cee8466fb 100644
--- a/alfa-service/src/test/java/de/ozgcloud/alfa/historie/VorgangChangeHistoryServiceITCase.java
+++ b/alfa-service/src/test/java/de/ozgcloud/alfa/historie/VorgangChangeHistoryServiceITCase.java
@@ -8,6 +8,7 @@ import java.time.ZonedDateTime;
 import java.util.List;
 import java.util.Map;
 
+import org.junit.jupiter.api.Nested;
 import org.junit.jupiter.api.Test;
 import org.mockito.InjectMocks;
 import org.mockito.Mock;
@@ -64,84 +65,138 @@ public class VorgangChangeHistoryServiceITCase {
 	}
 
 	@Test
-	void shouldSetBeforeAndAfterValuesInStatusChangeHistory_untilAbgeschlossen() {
-		givenHistorieServiceReturnsCommands(createStatusChangeCommandsUntilAbgeschlossen());
+	void shouldReturnNonEmptyHistories() {
+		givenHistorieServiceReturnsCommands(createMixedCommands());
+		givenUserServiceReturnsUser1Profile();
 
-		var history = service.createVorgangChangeHistory(vorgangWithEingang).getStatusChangeHistory();
+		var history = service.createVorgangChangeHistory(vorgangWithEingang);
 
-		assertThat(history).hasSize(6);
-		checkBeforeAndAfterValues(history.get(0), VorgangStatus.NEU.name(), VorgangStatus.ANGENOMMEN.name());
-		checkBeforeAndAfterValues(history.get(1), VorgangStatus.ANGENOMMEN.name(), VorgangStatus.IN_BEARBEITUNG.name());
-		checkBeforeAndAfterValues(history.get(2), VorgangStatus.IN_BEARBEITUNG.name(), VorgangStatus.BESCHIEDEN.name());
-		checkBeforeAndAfterValues(history.get(3), VorgangStatus.BESCHIEDEN.name(), VorgangStatus.ABGESCHLOSSEN.name());
-		checkBeforeAndAfterValues(history.get(4), VorgangStatus.ABGESCHLOSSEN.name(), VorgangStatus.ZU_LOESCHEN.name());
-		checkBeforeAndAfterValues(history.get(5), VorgangStatus.ZU_LOESCHEN.name(), VorgangStatus.ABGESCHLOSSEN.name());
+		assertThat(history.getStatusChangeHistory()).hasSize(1);
+		assertThat(history.getAktenzeichenChangeHistory()).hasSize(1);
+		assertThat(history.getAssignedUserChangeHistory()).hasSize(1);
 	}
 
 	@Test
-	void shouldSetBeforeAndAfterValuesInStatusChangeHistory_untilVerworfen() {
-		givenHistorieServiceReturnsCommands(createStatusChangeCommandsUntilVerworfen());
+	void shouldSetCreatedByName() {
+		givenHistorieServiceReturnsCommands(List.of(new CommandFactory().sc(CommandOrder.VORGANG_ANNEHMEN)));
 
 		var history = service.createVorgangChangeHistory(vorgangWithEingang).getStatusChangeHistory();
 
-		assertThat(history).hasSize(3);
-		checkBeforeAndAfterValues(history.get(0), VorgangStatus.NEU.name(), VorgangStatus.VERWORFEN.name());
-		checkBeforeAndAfterValues(history.get(1), VorgangStatus.VERWORFEN.name(), VorgangStatus.ZU_LOESCHEN.name());
-		checkBeforeAndAfterValues(history.get(2), VorgangStatus.ZU_LOESCHEN.name(), VorgangStatus.VERWORFEN.name());
+		assertThat(history.get(0).getCreatedByName()).isEqualTo(userFullNameAndOrgaIDText(USER_1_FULL_NAME));
 	}
 
 	@Test
-	void shouldSetBeforeAndAfterValuesInStatusChangeHistory_untilZurueckholen() {
-		givenHistorieServiceReturnsCommands(createStatusChangeCommandsUntilZurueckholen());
+	void shouldSetFinishedAt() {
+		var command = new CommandFactory().sc(CommandOrder.VORGANG_ANNEHMEN);
+		givenHistorieServiceReturnsCommands(List.of(command));
 
 		var history = service.createVorgangChangeHistory(vorgangWithEingang).getStatusChangeHistory();
 
-		assertThat(history).hasSize(2);
-		checkBeforeAndAfterValues(history.get(0), VorgangStatus.NEU.name(), VorgangStatus.VERWORFEN.name());
-		checkBeforeAndAfterValues(history.get(1), VorgangStatus.VERWORFEN.name(), VorgangStatus.NEU.name());
+		assertThat(history.get(0).getFinishedAt()).isNotNull().isEqualTo(command.getFinishedAt());
 	}
 
-	@Test
-	void shouldSetBeforeAndAfterValuesInAktenzeichenChangeHistory() {
-		givenHistorieServiceReturnsCommands(createAktenzeichenChangeCommands());
+	@Nested
+	class TestStatusChangeHistory {
+		@Test
+		void shouldSetBeforeAndAfterValues_untilAbgeschlossen() {
+			givenHistorieServiceReturnsCommands(createStatusChangeCommandsUntilAbgeschlossen());
+
+			var history = service.createVorgangChangeHistory(vorgangWithEingang).getStatusChangeHistory();
+
+			assertThat(history).hasSize(6);
+			checkBeforeAndAfterValues(history.get(0), VorgangStatus.NEU.name(), VorgangStatus.ANGENOMMEN.name());
+			checkBeforeAndAfterValues(history.get(1), VorgangStatus.ANGENOMMEN.name(), VorgangStatus.IN_BEARBEITUNG.name());
+			checkBeforeAndAfterValues(history.get(2), VorgangStatus.IN_BEARBEITUNG.name(), VorgangStatus.BESCHIEDEN.name());
+			checkBeforeAndAfterValues(history.get(3), VorgangStatus.BESCHIEDEN.name(), VorgangStatus.ABGESCHLOSSEN.name());
+			checkBeforeAndAfterValues(history.get(4), VorgangStatus.ABGESCHLOSSEN.name(), VorgangStatus.ZU_LOESCHEN.name());
+			checkBeforeAndAfterValues(history.get(5), VorgangStatus.ZU_LOESCHEN.name(), VorgangStatus.ABGESCHLOSSEN.name());
+		}
 
-		var history = service.createVorgangChangeHistory(vorgangWithEingang).getAktenzeichenChangeHistory();
+		@Test
+		void shouldSetBeforeAndAfterValues_untilVerworfen() {
+			givenHistorieServiceReturnsCommands(createStatusChangeCommandsUntilVerworfen());
 
-		assertThat(history).hasSize(3);
-		checkBeforeAndAfterValues(history.get(0), "", AKTENZEICHEN_1);
-		checkBeforeAndAfterValues(history.get(1), AKTENZEICHEN_1, AKTENZEICHEN_2);
-		checkBeforeAndAfterValues(history.get(2), AKTENZEICHEN_2, "");
-	}
+			var history = service.createVorgangChangeHistory(vorgangWithEingang).getStatusChangeHistory();
 
-	@Test
-	void shouldSetBeforeAndAfterValuesInAssignedUserChangeHistory() {
-		givenHistorieServiceReturnsCommands(createUserChangeCommands());
-		givenUserServiceReturnsUserProfiles();
+			assertThat(history).hasSize(3);
+			checkBeforeAndAfterValues(history.get(0), VorgangStatus.NEU.name(), VorgangStatus.VERWORFEN.name());
+			checkBeforeAndAfterValues(history.get(1), VorgangStatus.VERWORFEN.name(), VorgangStatus.ZU_LOESCHEN.name());
+			checkBeforeAndAfterValues(history.get(2), VorgangStatus.ZU_LOESCHEN.name(), VorgangStatus.VERWORFEN.name());
+		}
+
+		@Test
+		void shouldSetBeforeAndAfterValues_untilZurueckholen() {
+			givenHistorieServiceReturnsCommands(createStatusChangeCommandsUntilZurueckholen());
 
-		var history = service.createVorgangChangeHistory(vorgangWithEingang).getAssignedUserChangeHistory();
+			var history = service.createVorgangChangeHistory(vorgangWithEingang).getStatusChangeHistory();
 
-		assertThat(history).hasSize(2);
-		checkBeforeAndAfterValues(history.get(0), "", userFullNameAndOrgaIDText(USER_1_FULL_NAME));
-		checkBeforeAndAfterValues(history.get(1), userFullNameAndOrgaIDText(USER_1_FULL_NAME), userFullNameAndOrgaIDText(USER_2_FULL_NAME));
+			assertThat(history).hasSize(2);
+			checkBeforeAndAfterValues(history.get(0), VorgangStatus.NEU.name(), VorgangStatus.VERWORFEN.name());
+			checkBeforeAndAfterValues(history.get(1), VorgangStatus.VERWORFEN.name(), VorgangStatus.NEU.name());
+		}
+
+		@Test
+		void shouldSetOrder() {
+			var command = new CommandFactory().sc(CommandOrder.VORGANG_ANNEHMEN);
+			givenHistorieServiceReturnsCommands(List.of(command));
+
+			var history = service.createVorgangChangeHistory(vorgangWithEingang).getStatusChangeHistory();
+
+			assertThat(history.get(0).getOrder()).isNotNull().isEqualTo(CommandOrder.VORGANG_ANNEHMEN);
+		}
 	}
 
-	@Test
-	void shouldSetCreatedByNameInVorgangChange() {
-		givenHistorieServiceReturnsCommands(List.of(new CommandFactory().sc(CommandOrder.VORGANG_ANNEHMEN)));
+	@Nested
+	class TestAktenzeichenChangeHistory {
 
-		var history = service.createVorgangChangeHistory(vorgangWithEingang).getStatusChangeHistory();
+		@Test
+		void shouldSetBeforeAndAfterValues() {
+			givenHistorieServiceReturnsCommands(createAktenzeichenChangeCommands());
 
-		assertThat(history.get(0).getCreatedByName()).isEqualTo(userFullNameAndOrgaIDText(USER_1_FULL_NAME));
+			var history = service.createVorgangChangeHistory(vorgangWithEingang).getAktenzeichenChangeHistory();
+
+			assertThat(history).hasSize(3);
+			checkBeforeAndAfterValues(history.get(0), "", AKTENZEICHEN_1);
+			checkBeforeAndAfterValues(history.get(1), AKTENZEICHEN_1, AKTENZEICHEN_2);
+			checkBeforeAndAfterValues(history.get(2), AKTENZEICHEN_2, "");
+		}
+
+		@Test
+		void shouldSetOrder() {
+			var command = new CommandFactory().ac(AKTENZEICHEN_1);
+			givenHistorieServiceReturnsCommands(List.of(command));
+
+			var history = service.createVorgangChangeHistory(vorgangWithEingang).getAktenzeichenChangeHistory();
+
+			assertThat(history.get(0).getOrder()).isNotNull().isEqualTo(CommandOrder.SET_AKTENZEICHEN);
+		}
 	}
 
-	@Test
-	void shouldSetFinishedAtInVorgangChange() {
-		var command = new CommandFactory().sc(CommandOrder.VORGANG_ANNEHMEN);
-		givenHistorieServiceReturnsCommands(List.of(command));
+	@Nested
+	class TestAssignedUserChangeHistory {
 
-		var history = service.createVorgangChangeHistory(vorgangWithEingang).getStatusChangeHistory();
+		@Test
+		void shouldSetBeforeAndAfterValues() {
+			givenHistorieServiceReturnsCommands(createUserChangeCommands());
+			givenUserServiceReturnsUserProfiles();
 
-		assertThat(history.get(0).getFinishedAt()).isNotNull().isEqualTo(command.getFinishedAt());
+			var history = service.createVorgangChangeHistory(vorgangWithEingang).getAssignedUserChangeHistory();
+
+			assertThat(history).hasSize(2);
+			checkBeforeAndAfterValues(history.get(0), "", userFullNameAndOrgaIDText(USER_1_FULL_NAME));
+			checkBeforeAndAfterValues(history.get(1), userFullNameAndOrgaIDText(USER_1_FULL_NAME), userFullNameAndOrgaIDText(USER_2_FULL_NAME));
+		}
+
+		@Test
+		void shouldSetOrder() {
+			var command = new CommandFactory().uc(USER_1_ID.toString());
+			givenHistorieServiceReturnsCommands(List.of(command));
+			givenUserServiceReturnsUser1Profile();
+
+			var history = service.createVorgangChangeHistory(vorgangWithEingang).getAssignedUserChangeHistory();
+
+			assertThat(history.get(0).getOrder()).isNotNull().isEqualTo(CommandOrder.ASSIGN_USER);
+		}
 	}
 
 	private void checkBeforeAndAfterValues(VorgangChange vorgangChange, String expectedBefore, String expectedAfter) {
@@ -154,7 +209,15 @@ public class VorgangChangeHistoryServiceITCase {
 	}
 
 	private void givenUserServiceReturnsUserProfiles() {
+		givenUserServiceReturnsUser1Profile();
+		givenUserServiceReturnsUser2Profile();
+	}
+
+	private void givenUserServiceReturnsUser1Profile() {
 		when(userService.getById(USER_1_ID)).thenReturn(userProfile(USER_1_FIRST_NAME, USER_1_LAST_NAME));
+	}
+
+	private void givenUserServiceReturnsUser2Profile() {
 		when(userService.getById(USER_2_ID)).thenReturn(userProfile(USER_2_FIRST_NAME, USER_2_LAST_NAME));
 	}
 
@@ -214,6 +277,15 @@ public class VorgangChangeHistoryServiceITCase {
 		);
 	}
 
+	private List<Command> createMixedCommands() {
+		var f = new CommandFactory();
+		return List.of(
+				f.sc(CommandOrder.VORGANG_ANNEHMEN),
+				f.ac(AKTENZEICHEN_1),
+				f.uc(USER_1_ID.toString())
+		);
+	}
+
 	private static class CommandFactory {
 
 		private ZonedDateTime dateTime = ZonedDateTime.now(ZoneId.of("UTC"));