diff --git a/src/main.rs b/src/main.rs
index 0a7b329..63f8a7f 100644
--- a/src/main.rs
+++ b/src/main.rs
@@ -1,34 +1,48 @@
-use std::io;
 use rand::Rng;
-fn main(){
-    let mut score:i16 = 0;
+use std::io;
+use std::process::exit;
+
+fn main() {
+    game_loop();
+}
+fn game_loop() {
+    let mut score = 0;
     while score < 32 {
-        println!("Vor dir sind drei Türen, eine von ihnen tötet dich");
-        println!("Durch welche gehst du? Gib eine Zahl zwischen 1 und 3 ein");
-        let secretnumber = rand::thread_rng().gen_range(1..=3);
-        let mut guess = String::new(); 
-       
-        io::stdin()
-            .read_line(&mut guess)
-            .expect("Failed to read line");
-        if guess.chars().any(|c| c.is_digit(10)){
-            
-        let guess: u32 = guess.trim().parse().expect("Please type a number!"); 
-        if guess == secretnumber {
-            println!("Dein score: {}", score);
+        println!("Dein score ist: {}",score);
+        println!("Vor dir sind drei Türen, eine von ihnen tötet dich. Durch welche gehst du? Gib eine Zahl zwischen 1 und 3 ein");
+        let secretnumber: i8 = rand::thread_rng().gen_range(1..=3);
+        let guess = input();
+        let ergebnis = vergleich(guess, secretnumber);
+        if ergebnis == false {
+            println!(
+                "Du hast überlebt, der Geist war hinter der Tür {}",
+                secretnumber
+            );
+            score = score + 1;
+        } else {
             println!("Du bist tot");
-            std::process::exit(0);
+            println!("Game restarts");
+            restart();
+            exit(0);
         }
-        if guess > 4 {
-            println!("die option ist unbekannt");
-        }
-        else  {
-            println!("Du hast überlebt"); 
-            score = score += 1;
-            println!("Der Geist ist hinter der Tür {}", secretnumber);
-        }}
-        else {
-            println!("Die Option ist unbekannt")
-        }}
-        println!("Du hast gewonnen");
-    }
\ No newline at end of file
+    }
+    println!("Du hast gewonnen ");
+}
+fn input() -> i8 {
+    let mut guess = String::new();
+    io::stdin()
+        .read_line(&mut guess)
+        .expect("Failed to read line");
+    let guess: i8 = guess.trim().parse().expect("Please type a number!");
+    return guess;
+}
+fn vergleich(guess: i8, secretnumber: i8) -> bool {
+    if guess == secretnumber {
+        true
+    } else {
+        false
+    }
+}
+fn restart(){
+    game_loop()
+}
\ No newline at end of file