diff --git a/sockets/socketLogic.js b/sockets/socketLogic.js
index 011f717ff9beffe2bbfc80438b00b5f6a32cd7ea..be4d418b07e43cb87573019f7cc7bbc10ed24928 100644
--- a/sockets/socketLogic.js
+++ b/sockets/socketLogic.js
@@ -85,42 +85,37 @@ async function convertLobbyToGame(lobbyId, socket) {
 
 async function showQuestions(game, socket, questionNumber) {
     if (questionNumber === 10) return;
-    let time = 15;
-    const interval = setInterval(async () => {
-        time--;
-        socket.to(game.getGameId()).emit("timer", time);
-        socket.emit("timer", time);
-        if (time === 0) {
-            clearInterval(interval);
-            const question = game.gameData[questionNumber];
-            let reducedAnsewers = [];
-            for (let answer of question.answers) {
-                reducedAnsewers.push({
-                    text: answer.text,
-                });
-            }
-            const reducedQuestion = {
-                text: question.question.text,
-                fact: question.question.fact,
-                difficulty: question.question.difficulty,
-                answers: reducedAnsewers,
-            };
-            socket.to(game.getGameId()).emit("question", reducedQuestion);
-            socket.emit("question", reducedAnsewers);
-            let waitTime = 15;
-            const wait = setInterval(async () => {
-                waitTime--;
-                socket.to(game.getGameId()).emit("timer", waitTime);
-                socket.emit("timer", waitTime);
-                if (waitTime === 0) {
-                    clearInterval(wait);
-                    showQuestions(game, socket, questionNumber + 1);
-                }
-            }, 1000);
-        }
-    }, 1000);
+
+    const showQuestion = async () => {
+        const question = game.gameData[questionNumber];
+        const reducedAnswers = question.answers.map((answer) => ({
+            text: answer.text,
+        }));
+
+        const reducedQuestion = {
+            text: question.question.text,
+            fact: question.question.fact,
+            difficulty: question.question.difficulty,
+            answers: reducedAnswers,
+        };
+
+        socket.to(game.getGameId()).emit("question", reducedQuestion);
+        socket.emit("question", reducedQuestion);
+    };
+
+    const wait = (seconds) => new Promise((resolve) => setTimeout(resolve, seconds * 1000));
+
+    while (questionNumber < 10) {
+        await wait(15); // Wait for 15 seconds
+        await showQuestion(); // Show the question
+        await wait(15); // Wait for 15 more seconds
+        questionNumber++; // Move to the next question
+    }
 }
 
+// Start the function with questionNumber = 0
+showQuestions(game, socket, 0);
+
 function timer(lobbyId, socket) {
     let time = 30;
     const interval = setInterval(async () => {