diff --git a/build.gradle b/build.gradle
index 3e05a41d0a249fac3dde26b7621e421de3a8f708..dba461faf027aa17f11ca3097a75e95d20372ccb 100644
--- a/build.gradle
+++ b/build.gradle
@@ -7,7 +7,7 @@ buildscript {
         google()
     }
     dependencies {
-        classpath 'com.android.tools.build:gradle:8.1.4'
+        classpath 'com.android.tools.build:gradle:8.3.0'
 
 
         classpath 'com.google.gms:google-services:4.4.1'
diff --git a/core/src/com/wordbattle/game/controller/FinalLeaderBoardController.java b/core/src/com/wordbattle/game/controller/FinalLeaderBoardController.java
index 2d2d22c398bce6902e6d02e998abb11ffe6ed1cf..2cf7d84a1345648fb51b6f4e870f8b314a564a7f 100644
--- a/core/src/com/wordbattle/game/controller/FinalLeaderBoardController.java
+++ b/core/src/com/wordbattle/game/controller/FinalLeaderBoardController.java
@@ -76,11 +76,12 @@ public class FinalLeaderBoardController {
 
     }
 
-    public int calculateBackgroundRenders(){
+    private int calculateBackgroundRenders(){
         return 1 +lenLeaderBordPage / WordBattle.HEIGHT;
     }
 
     public void dispose(){
+        finalLeaderBoardView.dispose();
 
     }
 
diff --git a/core/src/com/wordbattle/game/controller/LeaderBoardController.java b/core/src/com/wordbattle/game/controller/LeaderBoardController.java
index a74232aad525b47682eff9c8a3f0d6ab9a56d084..3ebf4a85daff2fbb82c36da59765c6ebff9808ab 100644
--- a/core/src/com/wordbattle/game/controller/LeaderBoardController.java
+++ b/core/src/com/wordbattle/game/controller/LeaderBoardController.java
@@ -77,11 +77,13 @@ public class LeaderBoardController {
 
     }
 
-    public int calculateBackgroundRenders(){
+    private int calculateBackgroundRenders(){
         return 1+ lenLeaderBordPage / WordBattle.HEIGHT;
     }
 
     public void dispose(){
 
+        leaderBoardView.dispose();
+
     }
 }
diff --git a/core/src/com/wordbattle/game/controller/MainMenuController.java b/core/src/com/wordbattle/game/controller/MainMenuController.java
index 835821726ff60c96512fa0ff92baa16de6705b7a..ca1c963cdc325c25c5cd5d6926f3ea6b0046ce65 100644
--- a/core/src/com/wordbattle/game/controller/MainMenuController.java
+++ b/core/src/com/wordbattle/game/controller/MainMenuController.java
@@ -15,6 +15,7 @@ import com.wordbattle.game.states.MainMenuState;
 import com.wordbattle.game.states.StartState;
 import com.wordbattle.game.states.StartingGameState;
 import com.wordbattle.game.states.StateManager;
+import com.wordbattle.game.states.WaitForHostState;
 import com.wordbattle.game.view.MainMenuView;
 
 import java.util.logging.Logger;
@@ -53,7 +54,7 @@ public class MainMenuController {
             // Button checks
             if (joinGameButtonBounds.contains(touchPos.x, touchPos.y)) {
                 System.out.println("Join Game Button Pressed");
-                state.getStateManager().setState(new JoinGameState(state.getStateManager()));
+                state.getStateManager().setState(new WaitForHostState(state.getStateManager()));
 
             }
             if (newGameButtonBounds.contains(touchPos.x, touchPos.y)) {
diff --git a/core/src/com/wordbattle/game/controller/WaitForHostController.java b/core/src/com/wordbattle/game/controller/WaitForHostController.java
index 78ce85fd9c2b21fcd08ad2211b0afc02b9d8caff..fecbd7ea4e1667b8b453672abb2c49e52fcf7e71 100644
--- a/core/src/com/wordbattle/game/controller/WaitForHostController.java
+++ b/core/src/com/wordbattle/game/controller/WaitForHostController.java
@@ -1,6 +1,10 @@
 package com.wordbattle.game.controller;
 
+import com.badlogic.gdx.Gdx;
 import com.badlogic.gdx.graphics.g2d.SpriteBatch;
+import com.badlogic.gdx.math.Vector3;
+import com.wordbattle.game.WordBattle;
+import com.wordbattle.game.states.CreateGameState;
 import com.wordbattle.game.states.WaitForHostState;
 import com.wordbattle.game.view.WaitForHostView;
 
@@ -9,15 +13,38 @@ public class WaitForHostController {
     WaitForHostState state;
     WaitForHostView view;
 
+    int lenWaitingPage;
+
     public WaitForHostController(WaitForHostState state){
         this.state=state;
         view= new WaitForHostView(state.getCam());
+        lenWaitingPage=2500;
+        view.setNumBackgroundRenders(calculateBackgroundRenders());
 
     }
 
-
+    int mouseYCoordinate;
     private void handleInput(){
 
+        if (Gdx.input.justTouched()){
+            mouseYCoordinate =Gdx.input.getY();
+
+
+        }
+        if (Gdx.input.isTouched()){
+            int scrollDistance=mouseYCoordinate-Gdx.input.getY();
+
+            mouseYCoordinate=Gdx.input.getY();
+            if( (view.getCam().viewportHeight/2 + view.getCam().position.y) -scrollDistance  < WordBattle.HEIGHT && ( (-view.getCam().viewportHeight/2) + view.getCam().position.y) -scrollDistance > WordBattle.HEIGHT-lenWaitingPage ){
+                view.getCam().translate(0,-scrollDistance);
+
+            }
+
+
+        }
+
+
+
     }
 
     public void update(float dt){
@@ -28,7 +55,12 @@ public class WaitForHostController {
         view.render(spriteBatch);
     }
 
+    private int calculateBackgroundRenders(){
+        return 1+ lenWaitingPage / WordBattle.HEIGHT;
+    }
+
     public void dispose(){
+        view.dispose();
 
     }
 
diff --git a/core/src/com/wordbattle/game/controller/WaitingLobbyController.java b/core/src/com/wordbattle/game/controller/WaitingLobbyController.java
index 0ab581433684ee8d469c8860012f97c7be489497..9672d01dcc573c96567da274886d94b9e7304334 100644
--- a/core/src/com/wordbattle/game/controller/WaitingLobbyController.java
+++ b/core/src/com/wordbattle/game/controller/WaitingLobbyController.java
@@ -29,7 +29,6 @@ public class WaitingLobbyController {
 
     }
 
-
     public void update(float dt){
         handleInput();
     }
diff --git a/core/src/com/wordbattle/game/states/WaitForHostState.java b/core/src/com/wordbattle/game/states/WaitForHostState.java
index 196dfb6b118a6133e4e257a6ea3ffdd8f26b0d90..b57a4c23d6ab8a997624a1efcffaebb2e6e4745b 100644
--- a/core/src/com/wordbattle/game/states/WaitForHostState.java
+++ b/core/src/com/wordbattle/game/states/WaitForHostState.java
@@ -10,7 +10,7 @@ public class WaitForHostState extends BaseState {
 
     WaitForHostController controller;
 
-    OrthographicCamera cam;
+
 
     public WaitForHostState(StateManager gsm) {
         super(gsm);
diff --git a/core/src/com/wordbattle/game/view/JoinGameView.java b/core/src/com/wordbattle/game/view/JoinGameView.java
index b194b2b3793a913d07350dd977e65ef2490b7d59..5a70bc2308589615c8d9a8f683f4071626876682 100644
--- a/core/src/com/wordbattle/game/view/JoinGameView.java
+++ b/core/src/com/wordbattle/game/view/JoinGameView.java
@@ -170,6 +170,9 @@ public class JoinGameView {
     public void dispose() {
         backgroundTexture.dispose();
         joinGameButton.dispose();
+        pinTexture.dispose();
+        nicknameTexture.dispose();
+
     }
 
 
diff --git a/core/src/com/wordbattle/game/view/StartingGameView.java b/core/src/com/wordbattle/game/view/StartingGameView.java
index 7a756a0e27a5359303ebacb16ee7747d1b0bd4ae..95e50e1557491c773780c97369df50d2e996b73b 100644
--- a/core/src/com/wordbattle/game/view/StartingGameView.java
+++ b/core/src/com/wordbattle/game/view/StartingGameView.java
@@ -64,6 +64,9 @@ public class StartingGameView {
     }
 
     public void dispose(){
+        font.dispose();
+        backArrowTexture.dispose();
+        backgroundTexture.dispose();
 
     }
 }
diff --git a/core/src/com/wordbattle/game/view/WaitForHostView.java b/core/src/com/wordbattle/game/view/WaitForHostView.java
index 927215b86fda142ada313a360fc0d54ac2fbe048..c34d8dd813156a5145717c0ea79ce6c6c6c300f6 100644
--- a/core/src/com/wordbattle/game/view/WaitForHostView.java
+++ b/core/src/com/wordbattle/game/view/WaitForHostView.java
@@ -1,6 +1,7 @@
 package com.wordbattle.game.view;
 
 import com.badlogic.gdx.Gdx;
+import com.badlogic.gdx.graphics.Color;
 import com.badlogic.gdx.graphics.GL20;
 import com.badlogic.gdx.graphics.OrthographicCamera;
 import com.badlogic.gdx.graphics.Texture;
@@ -16,11 +17,15 @@ public class WaitForHostView {
     String pin;
 
     private Texture background;
-    private BitmapFont font;
+    private BitmapFont titleFont;
 
+    private BitmapFont messageFont;
 
+    private BitmapFont playerFont;
 
     private OrthographicCamera cam;
+
+    private int numBackgroundRenders;
     public WaitForHostView(OrthographicCamera cam){
         this.cam=cam;
 
@@ -31,11 +36,26 @@ public class WaitForHostView {
 
         FreeTypeFontGenerator generator = new FreeTypeFontGenerator(Gdx.files.internal("Knewave-Regular.ttf"));
         FreeTypeFontGenerator.FreeTypeFontParameter parameter = new FreeTypeFontGenerator.FreeTypeFontParameter();
-        parameter.size = 36;
-        font = generator.generateFont(parameter);
+        parameter.size = 52;
+        titleFont = generator.generateFont(parameter);
+        titleFont.setColor(Color.PINK);
+
+        parameter.size=36;
+        messageFont=generator.generateFont(parameter);
+        messageFont.setColor(Color.YELLOW);
+
+
+        parameter.size=46;
+        playerFont=generator.generateFont(parameter);
+        playerFont.setColor(Color.YELLOW);
+
         generator.dispose();
 
 
+
+
+
+
     }
 
 
@@ -48,19 +68,36 @@ public class WaitForHostView {
         spriteBatch.setProjectionMatrix(cam.combined);
         spriteBatch.begin();
 
-        spriteBatch.draw(background,0,0, WordBattle.WIDTH,WordBattle.HEIGHT);
-        font.draw(spriteBatch,"PIN  "+pin,100,700);
-        font.draw(spriteBatch,"Players",100,650);
-        font.draw(spriteBatch,"waiting on host to start the game", 5, 150);
+        for (int i = 0; i < numBackgroundRenders ; i++) {
+            spriteBatch.draw(background,0,0-(i*WordBattle.HEIGHT), WordBattle.WIDTH,WordBattle.HEIGHT);
+        }
+
+
+        titleFont.draw(spriteBatch,"PIN  "+pin,110,770);
+        messageFont.draw(spriteBatch,"waiting for host" + "\r\n" + "to start the game...", 75, 670);
+        titleFont.draw(spriteBatch,"Players",125,500);
+        playerFont.draw(spriteBatch,"ole",160,410);
+
+
 
 
         spriteBatch.end();
 
     }
 
+    public void setNumBackgroundRenders(int numBackgroundRenders) {
+        this.numBackgroundRenders = numBackgroundRenders;
+    }
+
+    public OrthographicCamera getCam() {
+        return cam;
+    }
+
     public void dispose(){
         background.dispose();
-        font.dispose();
+        titleFont.dispose();
+        messageFont.dispose();
+        playerFont.dispose();
 
     }
 }