diff --git a/alfa-service/src/main/java/de/ozgcloud/alfa/historie/FixedVorgangStatusFinder.java b/alfa-service/src/main/java/de/ozgcloud/alfa/historie/FixedVorgangStatusFinder.java
deleted file mode 100644
index 84697de3450c82fc6568790d2cd4ed0e9ae28cf7..0000000000000000000000000000000000000000
--- a/alfa-service/src/main/java/de/ozgcloud/alfa/historie/FixedVorgangStatusFinder.java
+++ /dev/null
@@ -1,16 +0,0 @@
-package de.ozgcloud.alfa.historie;
-
-import java.util.Optional;
-
-import lombok.RequiredArgsConstructor;
-
-@RequiredArgsConstructor
-class FixedVorgangStatusFinder implements VorgangStatusFinder {
-
-	private final String vorgangStatus;
-
-	@Override
-	public Optional<String> findVorgangStatus(CommandWithPrevious commandWithPrevious) {
-		return Optional.of(vorgangStatus);
-	}
-}
diff --git a/alfa-service/src/main/java/de/ozgcloud/alfa/historie/PreviousCommandChangedToStatusFinder.java b/alfa-service/src/main/java/de/ozgcloud/alfa/historie/PreviousCommandChangedToStatusFinder.java
deleted file mode 100644
index 37d384cde676444a7d3ff9831c2ee32072f782da..0000000000000000000000000000000000000000
--- a/alfa-service/src/main/java/de/ozgcloud/alfa/historie/PreviousCommandChangedToStatusFinder.java
+++ /dev/null
@@ -1,15 +0,0 @@
-package de.ozgcloud.alfa.historie;
-
-import java.util.Optional;
-
-class PreviousCommandChangedToStatusFinder implements VorgangStatusFinder {
-	@Override
-	public Optional<String> findVorgangStatus(CommandWithPrevious commandWithPrevious) {
-		return commandWithPrevious.previous().flatMap(this::getChangedToStatus);
-	}
-
-	private Optional<String> getChangedToStatus(CommandWithPrevious commandWithPrevious) {
-		var statusChangeInfo = StatusChangeInfo.getStatusChangeInfoFor(commandWithPrevious);
-		return statusChangeInfo.getChangedToStatus(commandWithPrevious);
-	}
-}
diff --git a/alfa-service/src/main/java/de/ozgcloud/alfa/historie/StatusChangeHistoryBuilder.java b/alfa-service/src/main/java/de/ozgcloud/alfa/historie/StatusChangeHistoryBuilder.java
index c9fc4e2c10aff62768e73bbbbed669840fb32639..8109044ae578c425ef01c44138d46fcb2947fb39 100644
--- a/alfa-service/src/main/java/de/ozgcloud/alfa/historie/StatusChangeHistoryBuilder.java
+++ b/alfa-service/src/main/java/de/ozgcloud/alfa/historie/StatusChangeHistoryBuilder.java
@@ -1,16 +1,40 @@
 package de.ozgcloud.alfa.historie;
 
+import java.util.Map;
+import java.util.Set;
 import java.util.stream.Stream;
 
 import de.ozgcloud.alfa.common.command.Command;
-import de.ozgcloud.alfa.vorgang.Vorgang;
-import de.ozgcloud.common.errorhandling.TechnicalException;
+import de.ozgcloud.alfa.common.command.CommandOrder;
+import de.ozgcloud.alfa.vorgang.Vorgang.VorgangStatus;
 import lombok.AccessLevel;
 import lombok.NoArgsConstructor;
 
 @NoArgsConstructor(access = AccessLevel.PRIVATE)
 public class StatusChangeHistoryBuilder extends ChangeHistoryBuilder<StatusChangeHistoryBuilder> {
 
+	static final String GELOESCHT_NAME = "Gelöscht";
+	static final Map<VorgangStatus, String> VORGANG_STATUS_TO_NAME = Map.of(
+			VorgangStatus.NEU, "Neu",
+			VorgangStatus.ANGENOMMEN, "Angenommen",
+			VorgangStatus.VERWORFEN, "Verworfen",
+			VorgangStatus.IN_BEARBEITUNG, "In Bearbeitung",
+			VorgangStatus.BESCHIEDEN, "Beschieden",
+			VorgangStatus.ABGESCHLOSSEN, "Abgeschlossen",
+			VorgangStatus.WEITERGELEITET, "Weitergeleitet",
+			VorgangStatus.ZU_LOESCHEN, "Zu Löschen"
+	);
+	static final Set<CommandOrder> STATUS_CHANGE_COMMAND_ORDER = Set.of(
+			CommandOrder.VORGANG_ANNEHMEN,
+			CommandOrder.VORGANG_VERWERFEN,
+			CommandOrder.VORGANG_ZURUECKHOLEN,
+			CommandOrder.VORGANG_BEARBEITEN,
+			CommandOrder.VORGANG_BESCHEIDEN,
+			CommandOrder.VORGANG_ABSCHLIESSEN,
+			CommandOrder.VORGANG_ZUM_LOESCHEN_MARKIEREN,
+			CommandOrder.VORGANG_LOESCHEN,
+			CommandOrder.VORGANG_ZURUECKSTELLEN);
+
 	public static StatusChangeHistoryBuilder builder() {
 		return new StatusChangeHistoryBuilder();
 	}
@@ -21,24 +45,36 @@ public class StatusChangeHistoryBuilder extends ChangeHistoryBuilder<StatusChang
 	}
 
 	boolean isStatusChangeCommand(Command command) {
-		return StatusChangeInfo.isStatusChangeOrder(command.getOrder());
+		return STATUS_CHANGE_COMMAND_ORDER.contains(command.getOrder());
 	}
 
 	@Override
 	CommandWithChangeValues toCommandWithChangeValues(CommandWithPrevious commandWithPrevious) {
-		var statusChangeInfo = StatusChangeInfo.getStatusChangeInfoFor(commandWithPrevious);
-		return new CommandWithChangeValues(
-				commandWithPrevious.command(),
-				getStatusBeforeChange(commandWithPrevious, statusChangeInfo),
-				getStatusAfterChange(commandWithPrevious, statusChangeInfo));
+		return new CommandWithChangeValues(commandWithPrevious.command(),
+				getStatusBeforeChange(commandWithPrevious),
+				getStatusAfterChange(commandWithPrevious));
+	}
+
+	String getStatusBeforeChange(CommandWithPrevious commandWithPrevious) {
+		return commandWithPrevious.previous().map(CommandWithPrevious::command).map(this::getStatus)
+				.orElse(VORGANG_STATUS_TO_NAME.get(VorgangStatus.NEU));
 	}
 
-	String getStatusBeforeChange(CommandWithPrevious commandWithPrevious, StatusChangeInfo statusChangeInfo) {
-		return statusChangeInfo.getChangedFromStatus(commandWithPrevious).orElse(Vorgang.VorgangStatus.NEU.name());
+	String getStatusAfterChange(CommandWithPrevious commandWithPrevious) {
+		return getStatus(commandWithPrevious.command());
 	}
 
-	String getStatusAfterChange(CommandWithPrevious commandWithPrevious, StatusChangeInfo statusChangeInfo) {
-		return statusChangeInfo.getChangedToStatus(commandWithPrevious)
-				.orElseThrow(() -> new TechnicalException("Unknown status after change for command " + commandWithPrevious.command().getId()));
+	String getStatus(Command command) {
+		return switch (command.getOrder()) {
+			case VORGANG_ANNEHMEN, VORGANG_ZURUECKSTELLEN -> VORGANG_STATUS_TO_NAME.get(VorgangStatus.ANGENOMMEN);
+			case VORGANG_VERWERFEN -> VORGANG_STATUS_TO_NAME.get(VorgangStatus.VERWORFEN);
+			case VORGANG_ZURUECKHOLEN -> VORGANG_STATUS_TO_NAME.get(VorgangStatus.NEU);
+			case VORGANG_BEARBEITEN, VORGANG_WIEDEREROEFFNEN -> VORGANG_STATUS_TO_NAME.get(VorgangStatus.IN_BEARBEITUNG);
+			case VORGANG_BESCHEIDEN -> VORGANG_STATUS_TO_NAME.get(VorgangStatus.BESCHIEDEN);
+			case VORGANG_ABSCHLIESSEN -> VORGANG_STATUS_TO_NAME.get(VorgangStatus.ABGESCHLOSSEN);
+			case VORGANG_ZUM_LOESCHEN_MARKIEREN -> VORGANG_STATUS_TO_NAME.get(VorgangStatus.ZU_LOESCHEN);
+			case VORGANG_LOESCHEN -> GELOESCHT_NAME;
+			default -> throw new IllegalArgumentException("Unexpected or unknown command order " + command.getOrder());
+		};
 	}
 }
diff --git a/alfa-service/src/main/java/de/ozgcloud/alfa/historie/StatusChangeInfo.java b/alfa-service/src/main/java/de/ozgcloud/alfa/historie/StatusChangeInfo.java
deleted file mode 100644
index 3f72835df7df85c7b18a77c381c2e01ef118752a..0000000000000000000000000000000000000000
--- a/alfa-service/src/main/java/de/ozgcloud/alfa/historie/StatusChangeInfo.java
+++ /dev/null
@@ -1,73 +0,0 @@
-package de.ozgcloud.alfa.historie;
-
-import java.util.HashMap;
-import java.util.Map;
-import java.util.Optional;
-
-import de.ozgcloud.alfa.common.command.CommandOrder;
-import de.ozgcloud.alfa.vorgang.Vorgang;
-import lombok.AccessLevel;
-import lombok.RequiredArgsConstructor;
-
-@RequiredArgsConstructor(access = AccessLevel.PACKAGE)
-class StatusChangeInfo {
-
-	private final VorgangStatusFinder changedFromFinder;
-	private final VorgangStatusFinder changedToFinder;
-
-	public static StatusChangeInfo getStatusChangeInfoFor(CommandWithPrevious commandWithPrevious) {
-		return STATUS_CHANGE_ORDERS.get(commandWithPrevious.command().getOrder());
-	}
-
-	public Optional<String> getChangedFromStatus(CommandWithPrevious commandWithPrevious) {
-		return changedFromFinder.findVorgangStatus(commandWithPrevious);
-	}
-
-	public Optional<String> getChangedToStatus(CommandWithPrevious commandWithPrevious) {
-		return changedToFinder.findVorgangStatus(commandWithPrevious);
-	}
-
-	public static boolean isStatusChangeOrder(CommandOrder commandOrder) {
-		return STATUS_CHANGE_ORDERS.containsKey(commandOrder);
-	}
-
-	private static final Map<CommandOrder, StatusChangeInfo> STATUS_CHANGE_ORDERS = new HashMap<>();
-
-	static {
-		addStatusChangeInfo(CommandOrder.VORGANG_ANNEHMEN,
-				new PreviousCommandChangedToStatusFinder(),
-				new FixedVorgangStatusFinder(Vorgang.VorgangStatus.ANGENOMMEN.name()));
-		addStatusChangeInfo(CommandOrder.VORGANG_VERWERFEN,
-				new PreviousCommandChangedToStatusFinder(),
-				new FixedVorgangStatusFinder(Vorgang.VorgangStatus.VERWORFEN.name()));
-		addStatusChangeInfo(CommandOrder.VORGANG_ZURUECKHOLEN,
-				new PreviousCommandChangedToStatusFinder(),
-				new FixedVorgangStatusFinder(Vorgang.VorgangStatus.NEU.name()));
-		addStatusChangeInfo(CommandOrder.VORGANG_BEARBEITEN,
-				new PreviousCommandChangedToStatusFinder(),
-				new FixedVorgangStatusFinder(Vorgang.VorgangStatus.IN_BEARBEITUNG.name()));
-		addStatusChangeInfo(CommandOrder.VORGANG_ZURUECKSTELLEN,
-				new PreviousCommandChangedToStatusFinder(),
-				new FixedVorgangStatusFinder(Vorgang.VorgangStatus.ANGENOMMEN.name()));
-		addStatusChangeInfo(CommandOrder.VORGANG_BESCHEIDEN,
-				new PreviousCommandChangedToStatusFinder(),
-				new FixedVorgangStatusFinder(Vorgang.VorgangStatus.BESCHIEDEN.name()));
-		addStatusChangeInfo(CommandOrder.VORGANG_WIEDEREROEFFNEN,
-				new PreviousCommandChangedToStatusFinder(),
-				new FixedVorgangStatusFinder(Vorgang.VorgangStatus.IN_BEARBEITUNG.name()));
-		addStatusChangeInfo(CommandOrder.VORGANG_ABSCHLIESSEN,
-				new PreviousCommandChangedToStatusFinder(),
-				new FixedVorgangStatusFinder(Vorgang.VorgangStatus.ABGESCHLOSSEN.name()));
-		addStatusChangeInfo(CommandOrder.VORGANG_ZUM_LOESCHEN_MARKIEREN,
-				new PreviousCommandChangedToStatusFinder(),
-				new FixedVorgangStatusFinder(Vorgang.VorgangStatus.ZU_LOESCHEN.name()));
-		addStatusChangeInfo(CommandOrder.VORGANG_LOESCHEN,
-				new PreviousCommandChangedToStatusFinder(),
-				new FixedVorgangStatusFinder("GELOESCHT"));
-	}
-
-	private static void addStatusChangeInfo(CommandOrder commandOrder, VorgangStatusFinder changedFromFinder,
-			VorgangStatusFinder changedToFinder) {
-		STATUS_CHANGE_ORDERS.put(commandOrder, new StatusChangeInfo(changedFromFinder, changedToFinder));
-	}
-}
diff --git a/alfa-service/src/main/java/de/ozgcloud/alfa/historie/VorgangStatusFinder.java b/alfa-service/src/main/java/de/ozgcloud/alfa/historie/VorgangStatusFinder.java
deleted file mode 100644
index e64afe777780eb144bf205e2b4a344cb2b0afdf1..0000000000000000000000000000000000000000
--- a/alfa-service/src/main/java/de/ozgcloud/alfa/historie/VorgangStatusFinder.java
+++ /dev/null
@@ -1,8 +0,0 @@
-package de.ozgcloud.alfa.historie;
-
-import java.util.Optional;
-
-interface VorgangStatusFinder {
-
-	Optional<String> findVorgangStatus(CommandWithPrevious commandWithPrevious);
-}
diff --git a/alfa-service/src/test/java/de/ozgcloud/alfa/historie/FixedVorgangStatusFinderTest.java b/alfa-service/src/test/java/de/ozgcloud/alfa/historie/FixedVorgangStatusFinderTest.java
deleted file mode 100644
index 04ff13ad46e4397a3719c0f01a52d4caf2e038b9..0000000000000000000000000000000000000000
--- a/alfa-service/src/test/java/de/ozgcloud/alfa/historie/FixedVorgangStatusFinderTest.java
+++ /dev/null
@@ -1,21 +0,0 @@
-package de.ozgcloud.alfa.historie;
-
-import static org.assertj.core.api.Assertions.*;
-import static org.mockito.Mockito.*;
-
-import org.junit.jupiter.api.Test;
-
-import de.ozgcloud.alfa.vorgang.Vorgang;
-
-public class FixedVorgangStatusFinderTest {
-
-	@Test
-	void shouldReturnVorgangStatus() {
-		var status = Vorgang.VorgangStatus.IN_BEARBEITUNG.name();
-		var statusFinder = new FixedVorgangStatusFinder(status);
-
-		var returnedStatus = statusFinder.findVorgangStatus(mock(CommandWithPrevious.class));
-
-		assertThat(returnedStatus).isPresent().get().isEqualTo(status);
-	}
-}
diff --git a/alfa-service/src/test/java/de/ozgcloud/alfa/historie/PreviousCommandBasedStatusFinderTest.java b/alfa-service/src/test/java/de/ozgcloud/alfa/historie/PreviousCommandBasedStatusFinderTest.java
deleted file mode 100644
index 0fc2bf973260868133e873270acb701e255dbf49..0000000000000000000000000000000000000000
--- a/alfa-service/src/test/java/de/ozgcloud/alfa/historie/PreviousCommandBasedStatusFinderTest.java
+++ /dev/null
@@ -1,41 +0,0 @@
-package de.ozgcloud.alfa.historie;
-
-import static org.mockito.Mockito.*;
-
-import java.util.Optional;
-
-import org.junit.jupiter.api.AfterEach;
-import org.junit.jupiter.api.BeforeEach;
-import org.mockito.Mock;
-import org.mockito.MockedStatic;
-
-import de.ozgcloud.alfa.common.command.CommandTestFactory;
-
-public abstract class PreviousCommandBasedStatusFinderTest {
-
-	MockedStatic<StatusChangeInfo> staticStatusChangeInfo;
-	@Mock
-	StatusChangeInfo statusChangeInfo;
-	CommandWithPrevious previousCommand;
-	CommandWithPrevious command;
-
-	@BeforeEach
-	void init() {
-		staticStatusChangeInfo = mockStatic(StatusChangeInfo.class);
-		initPreviousCommand();
-		initStatusChangeInfoOfPreviousCommand();
-	}
-
-	@AfterEach
-	void cleanup() {
-		staticStatusChangeInfo.close();
-	}
-
-	private void initPreviousCommand() {
-		previousCommand = new CommandWithPrevious(CommandTestFactory.create(), Optional.empty());
-	}
-
-	private void initStatusChangeInfoOfPreviousCommand() {
-		staticStatusChangeInfo.when(() -> StatusChangeInfo.getStatusChangeInfoFor(previousCommand)).thenReturn(statusChangeInfo);
-	}
-}
diff --git a/alfa-service/src/test/java/de/ozgcloud/alfa/historie/PreviousCommandChangedToStatusFinderTest.java b/alfa-service/src/test/java/de/ozgcloud/alfa/historie/PreviousCommandChangedToStatusFinderTest.java
deleted file mode 100644
index c6c075138cdbd217e1a4b93ecf4471605fec79d0..0000000000000000000000000000000000000000
--- a/alfa-service/src/test/java/de/ozgcloud/alfa/historie/PreviousCommandChangedToStatusFinderTest.java
+++ /dev/null
@@ -1,33 +0,0 @@
-package de.ozgcloud.alfa.historie;
-
-import static org.assertj.core.api.Assertions.*;
-import static org.mockito.Mockito.*;
-
-import java.util.Optional;
-
-import org.junit.jupiter.api.Test;
-
-import de.ozgcloud.alfa.common.command.CommandTestFactory;
-
-public class PreviousCommandChangedToStatusFinderTest extends PreviousCommandBasedStatusFinderTest {
-
-	@Test
-	void shouldReturnChangedToStatusFromPreviousCommand() {
-		var expectedVorgangStatus = "EXPECTED_VORGANG_STATUS";
-		when(statusChangeInfo.getChangedToStatus(previousCommand)).thenReturn(Optional.of(expectedVorgangStatus));
-		command = new CommandWithPrevious(CommandTestFactory.create(), Optional.of(previousCommand));
-
-		var foundStatus = new PreviousCommandChangedToStatusFinder().findVorgangStatus(command);
-
-		assertThat(foundStatus).isPresent().get().isEqualTo(expectedVorgangStatus);
-	}
-
-	@Test
-	void shouldReturnEmptyIfThereIsNoPreviousCommand() {
-		command = new CommandWithPrevious(CommandTestFactory.create(), Optional.empty());
-
-		var foundStatus = new PreviousCommandChangedToStatusFinder().findVorgangStatus(command);
-
-		assertThat(foundStatus).isEmpty();
-	}
-}
diff --git a/alfa-service/src/test/java/de/ozgcloud/alfa/historie/StatusChangeHistoryBuilderTest.java b/alfa-service/src/test/java/de/ozgcloud/alfa/historie/StatusChangeHistoryBuilderTest.java
index a6ff5b298774d01d7e435d9db5b0f122ebc49a3b..d29f4d2b7d5aec54469268bc304b8bea16a87a6f 100644
--- a/alfa-service/src/test/java/de/ozgcloud/alfa/historie/StatusChangeHistoryBuilderTest.java
+++ b/alfa-service/src/test/java/de/ozgcloud/alfa/historie/StatusChangeHistoryBuilderTest.java
@@ -9,20 +9,20 @@ import java.util.List;
 import java.util.Optional;
 import java.util.UUID;
 
-import org.junit.jupiter.api.AfterEach;
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Nested;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.params.ParameterizedTest;
-import org.junit.jupiter.params.provider.ValueSource;
-import org.mockito.Mock;
-import org.mockito.MockedStatic;
+import org.junit.jupiter.params.provider.EnumSource;
+import org.junit.jupiter.params.provider.EnumSource.Mode;
 import org.mockito.Spy;
 
 import com.thedeanda.lorem.LoremIpsum;
 
 import de.ozgcloud.alfa.common.command.Command;
-import de.ozgcloud.alfa.vorgang.Vorgang;
+import de.ozgcloud.alfa.common.command.CommandOrder;
+import de.ozgcloud.alfa.common.command.CommandTestFactory;
+import de.ozgcloud.alfa.vorgang.Vorgang.VorgangStatus;
 import de.ozgcloud.common.errorhandling.TechnicalException;
 
 public class StatusChangeHistoryBuilderTest {
@@ -66,33 +66,22 @@ public class StatusChangeHistoryBuilderTest {
 	@Nested
 	class TestIsStatusChangeCommand {
 
-		private MockedStatic<StatusChangeInfo> statusChangeInfo;
-
-		@BeforeEach
-		void init() {
-			statusChangeInfo = mockStatic(StatusChangeInfo.class);
-		}
-
-		@AfterEach
-		void cleanup() {
-			statusChangeInfo.close();
-		}
-
-		@Test
-		void shouldDelegateToStatusChangeInfo() {
-			builder.isStatusChangeCommand(command0105);
+		@EnumSource(mode = Mode.INCLUDE, names = { "VORGANG_ANNEHMEN", "VORGANG_VERWERFEN", "VORGANG_ZURUECKHOLEN", "VORGANG_BEARBEITEN",
+				"VORGANG_BESCHEIDEN", "VORGANG_ABSCHLIESSEN", "VORGANG_ZUM_LOESCHEN_MARKIEREN", "VORGANG_LOESCHEN", "VORGANG_ZURUECKSTELLEN" })
+		@ParameterizedTest
+		void shouldReturnTrue(CommandOrder order) {
+			var isStatusChangeCommand = builder.isStatusChangeCommand(CommandTestFactory.createBuilder().order(order).build());
 
-			statusChangeInfo.verify(() -> StatusChangeInfo.isStatusChangeOrder(command0105.getOrder()));
+			assertThat(isStatusChangeCommand).isTrue();
 		}
 
+		@EnumSource(mode = Mode.EXCLUDE, names = { "VORGANG_ANNEHMEN", "VORGANG_VERWERFEN", "VORGANG_ZURUECKHOLEN", "VORGANG_BEARBEITEN",
+				"VORGANG_BESCHEIDEN", "VORGANG_ABSCHLIESSEN", "VORGANG_ZUM_LOESCHEN_MARKIEREN", "VORGANG_LOESCHEN", "VORGANG_ZURUECKSTELLEN" })
 		@ParameterizedTest
-		@ValueSource(booleans = { false, true })
-		void shouldReturnValueFromStatusChangeInfo(boolean expectedValue) {
-			statusChangeInfo.when(() -> StatusChangeInfo.isStatusChangeOrder(command0105.getOrder())).thenReturn(expectedValue);
+		void shouldReturnFalse(CommandOrder order) {
+			var isStatusChangeCommand = builder.isStatusChangeCommand(CommandTestFactory.createBuilder().order(order).build());
 
-			var result = builder.isStatusChangeCommand(command0105);
-
-			assertThat(result).isEqualTo(expectedValue);
+			assertThat(isStatusChangeCommand).isTrue();
 		}
 	}
 
@@ -102,21 +91,10 @@ public class StatusChangeHistoryBuilderTest {
 		private static final String EXPECTED_STATUS_BEFORE_CHANGE = LoremIpsum.getInstance().getWords(2);
 		private static final String EXPECTED_STATUS_AFTER_CHANGE = LoremIpsum.getInstance().getWords(2);
 
-		private MockedStatic<StatusChangeInfo> staticStatusChangeInfo;
-		@Mock
-		private StatusChangeInfo statusChangeInfo;
-
 		@BeforeEach
 		void init() {
-			staticStatusChangeInfo = mockStatic(StatusChangeInfo.class);
-			staticStatusChangeInfo.when(() -> StatusChangeInfo.getStatusChangeInfoFor(command0106WithPrevious)).thenReturn(statusChangeInfo);
-			doReturn(EXPECTED_STATUS_BEFORE_CHANGE).when(builder).getStatusBeforeChange(command0106WithPrevious, statusChangeInfo);
-			doReturn(EXPECTED_STATUS_AFTER_CHANGE).when(builder).getStatusAfterChange(command0106WithPrevious, statusChangeInfo);
-		}
-
-		@AfterEach
-		void cleanup() {
-			staticStatusChangeInfo.close();
+			doReturn(EXPECTED_STATUS_BEFORE_CHANGE).when(builder).getStatusBeforeChange(command0106WithPrevious);
+			doReturn(EXPECTED_STATUS_AFTER_CHANGE).when(builder).getStatusAfterChange(command0106WithPrevious);
 		}
 
 		@Test
@@ -148,28 +126,27 @@ public class StatusChangeHistoryBuilderTest {
 	@Nested
 	class TestGetStatusBeforeChange {
 
-		private final CommandWithPrevious commandWithPrevious = new CommandWithPrevious(command0105, Optional.empty());
-
-		@Mock
-		private StatusChangeInfo statusChangeInfo;
+		private final Command command = CommandTestFactory.create();
+		private final Command previousCommand = CommandTestFactory.create();
+		private final CommandWithPrevious commandWithPrevious = new CommandWithPrevious(
+				command,
+				Optional.of(new CommandWithPrevious(previousCommand, Optional.empty())));
 
 		@Test
-		void shouldReturnChangedFromStatus() {
-			var expectedStatus = LoremIpsum.getInstance().getWords(2);
-			when(statusChangeInfo.getChangedFromStatus(commandWithPrevious)).thenReturn(Optional.of(expectedStatus));
+		void shouldReturnStatusBeforeChange() {
+			var status = "Status";
+			doReturn(status).when(builder).getStatus(previousCommand);
 
-			var status = builder.getStatusBeforeChange(commandWithPrevious, statusChangeInfo);
+			var statusBeforeChange = builder.getStatusBeforeChange(commandWithPrevious);
 
-			assertThat(status).isEqualTo(expectedStatus);
+			assertThat(statusBeforeChange).isEqualTo(status);
 		}
 
 		@Test
 		void shouldReturnDefaultValue() {
-			when(statusChangeInfo.getChangedFromStatus(commandWithPrevious)).thenReturn(Optional.empty());
-
-			var status = builder.getStatusBeforeChange(commandWithPrevious, statusChangeInfo);
+			var status = builder.getStatusBeforeChange(commandWithPrevious);
 
-			assertThat(status).isEqualTo(Vorgang.VorgangStatus.NEU.name());
+			assertThat(status).isEqualTo(StatusChangeHistoryBuilder.VORGANG_STATUS_TO_NAME.get(VorgangStatus.NEU));
 		}
 	}
 
@@ -178,25 +155,18 @@ public class StatusChangeHistoryBuilderTest {
 
 		private final CommandWithPrevious commandWithPrevious = new CommandWithPrevious(command0105, Optional.empty());
 
-		@Mock
-		private StatusChangeInfo statusChangeInfo;
-
 		@Test
 		void shouldReturnChangedFromStatus() {
 			var expectedStatus = LoremIpsum.getInstance().getWords(2);
-			when(statusChangeInfo.getChangedToStatus(commandWithPrevious)).thenReturn(Optional.of(expectedStatus));
 
-			var status = builder.getStatusAfterChange(commandWithPrevious, statusChangeInfo);
+			var status = builder.getStatusAfterChange(commandWithPrevious);
 
 			assertThat(status).isEqualTo(expectedStatus);
 		}
 
 		@Test
 		void shouldThrowExceptionIfStatusIsEmpty() {
-			when(statusChangeInfo.getChangedToStatus(commandWithPrevious)).thenReturn(Optional.empty());
-
-			assertThatExceptionOfType(TechnicalException.class).isThrownBy(
-							() -> builder.getStatusAfterChange(commandWithPrevious, statusChangeInfo))
+			assertThatExceptionOfType(TechnicalException.class).isThrownBy(() -> builder.getStatusAfterChange(commandWithPrevious))
 					.withMessageStartingWith("Unknown status after change for command " + command0105.getId());
 		}
 	}
diff --git a/alfa-service/src/test/java/de/ozgcloud/alfa/historie/StatusChangeInfoTest.java b/alfa-service/src/test/java/de/ozgcloud/alfa/historie/StatusChangeInfoTest.java
deleted file mode 100644
index 61adb7cb1868b7630dddab2bc8f2cee98e8b93f5..0000000000000000000000000000000000000000
--- a/alfa-service/src/test/java/de/ozgcloud/alfa/historie/StatusChangeInfoTest.java
+++ /dev/null
@@ -1,29 +0,0 @@
-package de.ozgcloud.alfa.historie;
-
-import static org.assertj.core.api.Assertions.*;
-
-import org.junit.jupiter.api.Nested;
-import org.junit.jupiter.api.Test;
-
-import de.ozgcloud.alfa.common.command.CommandOrder;
-
-public class StatusChangeInfoTest {
-
-	@Nested
-	class TestIsStatusChangeOrder {
-
-		@Test
-		void shouldReturnTrueForOrderCorrespondingToStatusChange() {
-			var result = StatusChangeInfo.isStatusChangeOrder(CommandOrder.VORGANG_BESCHEIDEN);
-
-			assertThat(result).isTrue();
-		}
-
-		@Test
-		void shouldReturnFalseIfOrderIsNotConnectedToStatusChange() {
-			var result = StatusChangeInfo.isStatusChangeOrder(CommandOrder.ASSIGN_USER);
-
-			assertThat(result).isFalse();
-		}
-	}
-}