diff --git a/theodolite-quarkus/build.gradle b/theodolite-quarkus/build.gradle
index 63d08a53f93fe9f275c1e5de01df47ec9dc2a27a..d6a4348da9cee6b1e2ea7f712ef57efc01c02282 100644
--- a/theodolite-quarkus/build.gradle
+++ b/theodolite-quarkus/build.gradle
@@ -20,6 +20,7 @@ dependencies {
     implementation 'io.quarkus:quarkus-resteasy'
     testImplementation 'io.quarkus:quarkus-junit5'
     testImplementation 'io.rest-assured:rest-assured'
+    implementation 'com.google.code.gson:gson:2.8.5'
 
     implementation 'org.slf4j:slf4j-simple:1.7.29'
     implementation 'io.github.microutils:kotlin-logging:1.12.0'
diff --git a/theodolite-quarkus/src/main/kotlin/theodolite/evaluation/MetricFetcher.kt b/theodolite-quarkus/src/main/kotlin/theodolite/evaluation/MetricFetcher.kt
index d95d5971b41bdacf27002b94b2035d7edea10b21..883ead52c785722033ce9f8a4b86dd803f755fd5 100644
--- a/theodolite-quarkus/src/main/kotlin/theodolite/evaluation/MetricFetcher.kt
+++ b/theodolite-quarkus/src/main/kotlin/theodolite/evaluation/MetricFetcher.kt
@@ -1,13 +1,17 @@
 package theodolite.evaluation
 
+import com.google.gson.Gson
 import khttp.get
+import khttp.responses.Response
+import theodolite.util.PrometheusResponse
+import java.net.ConnectException
 import java.util.*
 
 
 class MetricFetcher(private val prometheusURL: String) {
 
-    fun fetchMetric(start: Long, end: Long, query: String): Any {
-
+    fun fetchMetric(start: Long, end: Long, query: String): PrometheusResponse {
+        var trys = 0
         val parameter = mapOf(
             "query" to query,
             "start" to toISODate(start),
@@ -15,19 +19,27 @@ class MetricFetcher(private val prometheusURL: String) {
             "step" to "5s"
         )
 
-        val response = get("$prometheusURL/api/v1/query_range", params = parameter)
-        //TODO FIX: NOTHING RECEIVED
-        return response.jsonObject.getJSONObject("data").getJSONArray("result")//.getJSONObject(0)["values"]
+        while (trys < 2) {
+            val response = get("$prometheusURL/api/v1/query_range", params = parameter)
+            if (response.statusCode != 200) {
+                trys++
+            } else {
+                return parseValues(response)
+            }
+        }
+        throw ConnectException("No answer from Prometheus received")
     }
 
     private fun toISODate(timestamp: Long): String {
         val sdf = java.text.SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.sss'Z'")
-        val date = Date(timestamp - (3600 * 1000))
+        val date = Date(timestamp - (3600 * 1000))//subtract 1h since cluster is in another timezone
         return sdf.format(date)
     }
 
-    private fun parseValues(values: String): Any {
-        // TODO("pars with gson")
-        return ""
+    private fun parseValues(values: Response): PrometheusResponse {
+        return Gson().fromJson<PrometheusResponse>(
+            values.jsonObject.toString(),
+            PrometheusResponse::class.java
+        )
     }
 }
diff --git a/theodolite-quarkus/src/main/kotlin/theodolite/evaluation/SLOCheckerImpl.kt b/theodolite-quarkus/src/main/kotlin/theodolite/evaluation/SLOCheckerImpl.kt
index 8a638d7f2a970203166b96af607d0296b130a16f..084d07c95ddf23365bcf1c146aeb2cfd96752757 100644
--- a/theodolite-quarkus/src/main/kotlin/theodolite/evaluation/SLOCheckerImpl.kt
+++ b/theodolite-quarkus/src/main/kotlin/theodolite/evaluation/SLOCheckerImpl.kt
@@ -2,18 +2,25 @@ package theodolite.evaluation
 
 import khttp.post
 import org.json.JSONObject
+import java.net.ConnectException
 
 class SLOCheckerImpl(private val prometheusURL: String) : SLOChecker {
 
     override fun evaluate(start: Long, end: Long): Boolean {
+        var counter = 0
         val metricFetcher = MetricFetcher(prometheusURL = prometheusURL)
-        val totalLag = metricFetcher.fetchMetric(start, end, "sum by(group)(kafka_consumergroup_group_lag > 0)")
-        val parameter = mapOf("total_lag" to totalLag)
+        val fetchedData = metricFetcher.fetchMetric(start, end, "sum by(group)(kafka_consumergroup_group_lag > 0)")
+        val data = JSONObject(mapOf("total_lag" to fetchedData.data?.result))
+        
+        while (counter < 2) {
+            val result = post("http://127.0.0.1:8000/evaluate-slope", data = data)
+            if (result.statusCode != 200) {
+                counter++
+            } else {
+                return result.text.toBoolean()
+            }
+        }
 
-        //val response = get("http://127.0.0.1:8000/evaluate-slope", params = parameter)
-        val post = post("http://127.0.0.1:8000/evaluate-slope", data = JSONObject(parameter))
-        //println(JSONObject(parameter))
-        //println(post.text.toBoolean())
-        return post.text.toBoolean()//response.jsonObject["suitable"] == "true"
+        throw ConnectException("Could not reach slope evaluation")
     }
 }
diff --git a/theodolite-quarkus/src/main/kotlin/theodolite/util/PrometheusResponse.kt b/theodolite-quarkus/src/main/kotlin/theodolite/util/PrometheusResponse.kt
new file mode 100644
index 0000000000000000000000000000000000000000..2c3b86a30ee21a26c6a6575f65f2d522e169f6a8
--- /dev/null
+++ b/theodolite-quarkus/src/main/kotlin/theodolite/util/PrometheusResponse.kt
@@ -0,0 +1,20 @@
+package theodolite.util
+
+data class PrometheusResponse(
+    var status: String? = null,
+    var data: PromData? = null
+)
+
+data class PromData(
+    var resultType: String? = null,
+    var result: List<PromResult>? = null
+)
+
+data class PromResult(
+    var metric: PromMetric? = null,
+    var values: List<Object>? = null
+)
+
+data class PromMetric(
+    var group: String? = null
+)