diff --git a/theodolite/src/main/kotlin/theodolite/execution/operator/TheodoliteController.kt b/theodolite/src/main/kotlin/theodolite/execution/operator/TheodoliteController.kt
index e5fbf578bc46af6bca5b4f545cdbc62ec58e21fa..a6a429a32d4234ec02ff94e9f4e8f8774aa634e2 100644
--- a/theodolite/src/main/kotlin/theodolite/execution/operator/TheodoliteController.kt
+++ b/theodolite/src/main/kotlin/theodolite/execution/operator/TheodoliteController.kt
@@ -8,7 +8,7 @@ import theodolite.benchmark.KubernetesBenchmark
 import theodolite.execution.TheodoliteExecutor
 import theodolite.model.crd.*
 import theodolite.patcher.ConfigOverrideModifier
-import theodolite.util.ExecutionComparator
+import theodolite.util.ExecutionStateComparator
 import java.lang.Thread.sleep
 
 private val logger = KotlinLogging.logger {}
@@ -133,7 +133,7 @@ class TheodoliteController(
      * @return the next execution or null
      */
     private fun getNextExecution(): BenchmarkExecution? {
-        val comparator = ExecutionComparator().compareByState(States.RESTART)
+        val comparator = ExecutionStateComparator(States.RESTART)
         val availableBenchmarkNames = getBenchmarks()
             .map { it.name }
 
diff --git a/theodolite/src/main/kotlin/theodolite/util/ExecutionComparator.kt b/theodolite/src/main/kotlin/theodolite/util/ExecutionStateComparator.kt
similarity index 52%
rename from theodolite/src/main/kotlin/theodolite/util/ExecutionComparator.kt
rename to theodolite/src/main/kotlin/theodolite/util/ExecutionStateComparator.kt
index ab3b80768533a9de4826503cfebcce22fcf835ac..66ebe12d6505296682744c10c69f182f07d1a16e 100644
--- a/theodolite/src/main/kotlin/theodolite/util/ExecutionComparator.kt
+++ b/theodolite/src/main/kotlin/theodolite/util/ExecutionStateComparator.kt
@@ -3,16 +3,16 @@ package theodolite.util
 import theodolite.model.crd.ExecutionCRD
 import theodolite.model.crd.States
 
-class ExecutionComparator {
+class ExecutionStateComparator(private val preferredState: States): Comparator<ExecutionCRD> {
 
     /**
      * Simple comparator which can be used to order a list of [ExecutionCRD] such that executions with
      * status [States.RESTART] are before all other executions.
      */
-    fun compareByState(preferredState: States) = Comparator<ExecutionCRD> { a, b ->
-        when {
-            (a == null && b == null) -> 0
-            (a.status.executionState == preferredState.value) -> -1
+    override fun compare(p0: ExecutionCRD, p1: ExecutionCRD): Int {
+       return when {
+            (p0 == null && p1 == null) -> 0
+            (p0.status.executionState == preferredState.value) -> -1
             else -> 1
         }
     }
diff --git a/theodolite/src/test/kotlin/theodolite/execution/operator/ExecutionCRDummy.kt b/theodolite/src/test/kotlin/theodolite/execution/operator/ExecutionCRDummy.kt
index 2589319299cfa29f95216033ddc806d002f38663..56d46279e8effe1f0b5bf307cd896ebd5b7eb2ee 100644
--- a/theodolite/src/test/kotlin/theodolite/execution/operator/ExecutionCRDummy.kt
+++ b/theodolite/src/test/kotlin/theodolite/execution/operator/ExecutionCRDummy.kt
@@ -15,6 +15,10 @@ class ExecutionCRDummy(name: String, benchmark: String) {
         return this.executionCR
     }
 
+    fun getStatus() : ExecutionStatus {
+        return this.executionState
+    }
+
     init {
         // configure metadata
         executionCR.spec = execution
diff --git a/theodolite/src/test/kotlin/theodolite/util/ExecutionStateComparatorTest.kt b/theodolite/src/test/kotlin/theodolite/util/ExecutionStateComparatorTest.kt
new file mode 100644
index 0000000000000000000000000000000000000000..eec029f3878171eb2fd502bf68f549cfce793f23
--- /dev/null
+++ b/theodolite/src/test/kotlin/theodolite/util/ExecutionStateComparatorTest.kt
@@ -0,0 +1,33 @@
+package theodolite.util
+
+import io.quarkus.test.junit.QuarkusTest
+import org.junit.Rule
+import org.junit.jupiter.api.Assertions
+import org.junit.jupiter.api.Assertions.assertEquals
+import org.junit.jupiter.api.BeforeEach
+import org.junit.jupiter.api.Test
+import theodolite.execution.operator.ExecutionCRDummy
+import theodolite.model.crd.ExecutionCRD
+import theodolite.model.crd.States
+
+
+@QuarkusTest
+class ExecutionStateComparatorTest {
+
+    @Test
+    fun testCompare() {
+        val comparator = ExecutionStateComparator(States.RESTART)
+        val execution1 = ExecutionCRDummy("dummy1", "default-benchmark")
+        val execution2 = ExecutionCRDummy("dummy2", "default-benchmark")
+        execution1.getStatus().executionState = States.RESTART.value
+        execution2.getStatus().executionState = States.PENDING.value
+        val list = listOf(execution2.getCR(), execution1.getCR())
+
+
+        assertEquals(
+            list.reversed(),
+            list.sortedWith(comparator)
+        )
+    }
+
+}
\ No newline at end of file