diff --git a/.godot/editor/create_recent.Node b/.godot/editor/create_recent.Node
index 5ef56d842a6963c6290359efe72fc853811b474d..7014536c6bfe70c7e26833a658d4cdb20bb2edda 100644
--- a/.godot/editor/create_recent.Node
+++ b/.godot/editor/create_recent.Node
@@ -1,3 +1,9 @@
+Control
+Node
+Node2D
+AnimationPlayer
+ColorRect
+CanvasLayer
 VBoxContainer
 TextureRect
 Sprite2D
@@ -7,8 +13,3 @@ RichTextLabel
 Label
 HBoxContainer
 MarginContainer
-Node2D
-CPUParticles2D
-Node
-Control
-ColorRect
diff --git a/.godot/editor/editor_layout.cfg b/.godot/editor/editor_layout.cfg
index c1190557c120666c23ab6fdd5a9b84edbdc4dd62..7598b7adbc55d7a0c9faa9e79a4727a537a14831 100644
--- a/.godot/editor/editor_layout.cfg
+++ b/.godot/editor/editor_layout.cfg
@@ -17,24 +17,24 @@ dock_filesystem_v_split_offset=0
 dock_filesystem_display_mode=0
 dock_filesystem_file_sort=0
 dock_filesystem_file_list_display_mode=1
-dock_filesystem_selected_paths=PackedStringArray()
-dock_filesystem_uncollapsed_paths=PackedStringArray("Favorites", "res://", "res://scenes/", "res://assets/", "res://assets/ui/", "res://assets/ui/title_screen/")
+dock_filesystem_selected_paths=PackedStringArray("res://scenes/scene_manager.tscn")
+dock_filesystem_uncollapsed_paths=PackedStringArray("Favorites", "res://", "res://scripts/", "res://scenes/", "res://scenes/ui/", "res://assets/", "res://assets/ui/", "res://assets/ui/title_screen/")
 dock_3="Scene,Import"
 dock_4="FileSystem"
 dock_5="Inspector,Node,History"
 
 [EditorNode]
 
-open_scenes=PackedStringArray("res://main.tscn", "res://scenes/ui/title_screen.tscn", "res://scenes/ui/menu_button.tscn")
-current_scene="res://scenes/ui/title_screen.tscn"
+open_scenes=PackedStringArray("res://main.tscn", "res://scenes/title_screen.tscn", "res://scenes/ui/menu_button.tscn", "res://scenes/scene_manager.tscn")
+current_scene="res://scenes/title_screen.tscn"
 center_split_offset=-239
-selected_default_debugger_tab_idx=0
+selected_default_debugger_tab_idx=1
 selected_main_editor_idx=2
 selected_bottom_panel_item=0
 
 [ScriptEditor]
 
-open_scripts=["res://scripts/Bishop.gd", "res://scripts/game.gd", "res://scripts/King.gd", "res://scripts/Knight.gd", "res://scripts/title_screen/menu_button.gd", "res://scripts/Pawn.gd", "res://scripts/Piece.gd", "res://scripts/Queen.gd", "res://scripts/Rook.gd", "res://scripts/title_screen/title_screen.gd"]
+open_scripts=["res://scripts/Bishop.gd", "res://scripts/game.gd", "res://scripts/King.gd", "res://scripts/Knight.gd", "res://scripts/title_screen/menu_button.gd", "res://scripts/Pawn.gd", "res://scripts/Piece.gd", "res://scripts/Queen.gd", "res://scripts/Rook.gd", "res://scripts/scene_manager.gd", "res://scripts/title_screen/title_screen.gd"]
 selected_script="res://scripts/title_screen/title_screen.gd"
 open_help=[]
 script_split_offset=70
diff --git a/.godot/editor/filesystem_cache8 b/.godot/editor/filesystem_cache8
index 8dc48d620639c90500d6019e78605b2a75111860..7efc48a75f22dabfcd5a4f94cc723618eb846f35 100644
--- a/.godot/editor/filesystem_cache8
+++ b/.godot/editor/filesystem_cache8
@@ -1,8 +1,9 @@
 ea4bc82a6ad023ab7ee23ee620429895
-::res://::1738432521
+::res://::1738453219
 icon.svg::CompressedTexture2D::6378281210119878262::1738189402::1738378143::1::::<><>::
-main.tscn::PackedScene::5692118487183161714::1738432521::0::1::::<><>::
+main.tscn::PackedScene::5692118487183161714::1738439413::0::1::::<><>::
 README.md::TextFile::-1::1738189402::0::1::::<><>::
+title_screen.tscn::PackedScene::8154710134031658440::1738439414::0::1::::<><>::res://scripts/title_screen/title_screen.gd<>uid://bm8sv1itwm467::::res://scenes/ui/menu_button.tscn
 ::res://assets/::1738378134
 ::res://assets/noise/::1738378134
 noise2.tres::NoiseTexture2D::5054739835828921764::1738378134::0::1::::<><>::
@@ -30,11 +31,11 @@ White_knight.png::CompressedTexture2D::854350289879594279::1738378134::173837817
 White_Pawn.png::CompressedTexture2D::919180529085242722::1738378134::1738378176::1::::<><>::
 White_Queen.png::CompressedTexture2D::4902137832695542513::1738378134::1738378176::1::::<><>::
 White_rook.png::CompressedTexture2D::4194129281780453908::1738378134::1738378176::1::::<><>::
-::res://assets/shaders/::1738432521
-3d_effect.gdshader::Shader::-1::1738432612::0::1::::<><>::
-bg.gdshader::Shader::-1::1738432612::0::1::::<><>::
-color.gdshader::Shader::-1::1738432612::0::1::::<><>::
-shadow.gdshader::Shader::-1::1738432612::0::1::::<><>::
+::res://assets/shaders/::1738452232
+3d_effect.gdshader::Shader::-1::1738452232::0::1::::<><>::
+bg.gdshader::Shader::-1::1738452232::0::1::::<><>::
+color.gdshader::Shader::-1::1738452232::0::1::::<><>::
+shadow.gdshader::Shader::-1::1738452232::0::1::::<><>::
 ::res://assets/sprites/::1738378176
 bishop.png::CompressedTexture2D::4631301773944929250::1738378134::1738378176::1::::<><>::
 knight.png::CompressedTexture2D::3545640967717948854::1738378134::1738378176::1::::<><>::
@@ -66,7 +67,7 @@ Mockup Shop Design.jpg::CompressedTexture2D::8043055154093708922::1738378134::17
 play_button.png::CompressedTexture2D::5896995890187459238::1738396598::1738396750::1::::<><>::
 quit_button.png::CompressedTexture2D::5172428563227279585::1738432170::1738432186::1::::<><>::
 rules_button.png::CompressedTexture2D::8060955005205795067::1738432116::1738432186::1::::<><>::
-::res://scenes/::1738379187
+::res://scenes/::1738452232
 Bishop.tscn::PackedScene::2789588702038144760::1738378134::0::1::::<><>::res://scripts/Bishop.gd<>uid://b68o4mj7wcwvq::::res://assets/sprites/bishop.png
 board.tscn::PackedScene::5124694183364421304::1738378134::0::1::::<><>::uid://b0px5wlrm0mb3::::res://assets/temp_assets/temp_chess_board.png<>res://scripts/board.gd
 explosion.tscn::PackedScene::69466253159940830::1738378134::0::1::::<><>::
@@ -76,11 +77,11 @@ Knight.tscn::PackedScene::5270730075267457303::1738378134::0::1::::<><>::res://s
 Pawn.tscn::PackedScene::3675784333675896641::1738378134::0::1::::<><>::res://scripts/Pawn.gd<>uid://ndi1e8thkonq::::res://assets/Resized Chess Piece Assets/White_Pawn.png
 Queen.tscn::PackedScene::7495869360053814603::1738378134::0::1::::<><>::res://scripts/Queen.gd<>uid://cb3vq168iyomb::::res://assets/Resized Chess Piece Assets/White_Queen.png
 Rook.tscn::PackedScene::9162401199636684468::1738378134::0::1::::<><>::uid://b00wxxfjk04ke::::res://assets/Resized Chess Piece Assets/White_rook.png
+scene_manager.tscn::PackedScene::6243365322716451430::1738452232::0::1::::<><>::res://scripts/scene_manager.gd
 texture_holder.tscn::PackedScene::594714386286134588::1738378134::0::1::::<><>::
-::res://scenes/title_screen/::1738432521
-menu_button.tscn::PackedScene::3297943059633979218::1738432521::0::1::::<><>::res://assets/shaders/3d_effect.gdshader<>res://scripts/title_screen/menu_button.gd
-title_screen.tscn::PackedScene::8154710134031658440::1738432612::0::1::::<><>::res://scripts/title_screen/title_screen.gd<>uid://bm8sv1itwm467::::res://scenes/title_screen/menu_button.tscn
-::res://scripts/::1738378687
+::res://scenes/ui/::1738453219
+menu_button.tscn::PackedScene::3297943059633979218::1738439414::0::1::::<><>::res://assets/shaders/3d_effect.gdshader<>res://scripts/title_screen/menu_button.gd
+::res://scripts/::1738452232
 Bishop.gd::GDScript::-1::1738378134::0::1::::Bishop<>Piece<>::
 board.gd::GDScript::-1::1738378134::0::1::::Board<>Sprite2D<>::
 game.gd::GDScript::-1::1738378134::0::1::::game<>Node<>::
@@ -90,6 +91,7 @@ Pawn.gd::GDScript::-1::1738378134::0::1::::Pawn<>Piece<>::
 Piece.gd::GDScript::-1::1738378134::0::1::::Piece<>Node2D<>::
 Queen.gd::GDScript::-1::1738378134::0::1::::Queen<>Piece<>::
 Rook.gd::GDScript::-1::1738378134::0::1::::Rook<>Piece<>::
+scene_manager.gd::GDScript::-1::1738452232::0::1::::<>Node<>::
 ::res://scripts/title_screen/::1738432517
 menu_button.gd::GDScript::-1::1738432516::0::1::::TitleButton<>Button<>::
 title_screen.gd::GDScript::-1::1738396766::0::1::::<>Control<>::
diff --git a/.godot/editor/filesystem_update4 b/.godot/editor/filesystem_update4
index 1f6f31f466a31c8b2e354ee72b46f5a4ee383634..9ab104b8a60ca457dde3d0fb52428e5a6264d233 100644
--- a/.godot/editor/filesystem_update4
+++ b/.godot/editor/filesystem_update4
@@ -8,3 +8,12 @@ res://scenes/title_screen/menu_button.tscn
 res://scripts/title_screen/menu_button.gd
 res://scenes/ui/title_screen.tscn
 res://scenes/ui/menu_button.tscn
+res://scenes/scene_manager.tscn
+res://scripts/scene_manager.gd
+res://scenes/title_screen.tscn
+res://scripts/title_screen/title_screen.gd
+res://scenes/board.tscn
+res://assets/noise/noise.tres
+res://assets/noise/noise2.tres
+res://assets/noise/noise3.tres
+res://scenes/game.tscn
diff --git a/.godot/editor/game.tscn-editstate-c2a7af834e91ff64325daddf58e45dc0.cfg b/.godot/editor/game.tscn-editstate-c2a7af834e91ff64325daddf58e45dc0.cfg
index beea37665ebfb99b06ab1fd4b1dda18e6ed5bd9d..9d9ee14e5dbe61a0a4bf9771eddb549e74778293 100644
--- a/.godot/editor/game.tscn-editstate-c2a7af834e91ff64325daddf58e45dc0.cfg
+++ b/.godot/editor/game.tscn-editstate-c2a7af834e91ff64325daddf58e45dc0.cfg
@@ -175,4 +175,4 @@ Anim={
 "zfar": 4000.01,
 "znear": 0.05
 }
-selected_nodes=Array[NodePath]([NodePath("/root/@EditorNode@16886/@Panel@13/@VBoxContainer@14/DockHSplitLeftL/DockHSplitLeftR/DockHSplitMain/@VBoxContainer@25/DockVSplitCenter/@VSplitContainer@52/@VBoxContainer@53/@PanelContainer@98/MainScreen/@CanvasItemEditor@9272/@VSplitContainer@9094/@HSplitContainer@9096/@HSplitContainer@9098/@Control@9099/@SubViewportContainer@9100/@SubViewport@9101/Node2D")])
+selected_nodes=Array[NodePath]([NodePath("/root/@EditorNode@16886/@Panel@13/@VBoxContainer@14/DockHSplitLeftL/DockHSplitLeftR/DockHSplitMain/@VBoxContainer@25/DockVSplitCenter/@VSplitContainer@52/@VBoxContainer@53/@PanelContainer@98/MainScreen/@CanvasItemEditor@9272/@VSplitContainer@9094/@HSplitContainer@9096/@HSplitContainer@9098/@Control@9099/@SubViewportContainer@9100/@SubViewport@9101/Main")])
diff --git a/.godot/editor/project_metadata.cfg b/.godot/editor/project_metadata.cfg
index a62d0122f4859054e598d24b7158f572160794cd..3049fdbde195bf2078287860bb49e14d5045724f 100644
--- a/.godot/editor/project_metadata.cfg
+++ b/.godot/editor/project_metadata.cfg
@@ -14,13 +14,13 @@ last_selected_language="GDScript"
 
 [recent_files]
 
-scripts=["res://scripts/title_screen/menu_button.gd", "res://scripts/title_screen/title_screen.gd", "res://scripts/Knight.gd", "res://scripts/King.gd", "res://scripts/Queen.gd", "res://scripts/Bishop.gd", "res://scripts/Rook.gd", "res://scripts/Pawn.gd", "res://scripts/Piece.gd", "@GDScript"]
-scenes=["res://scenes/ui/title_screen.tscn", "res://scenes/title_screen/menu_button.tscn", "res://scenes/title_screen/title_screen.tscn", "res://main.tscn", "res://scenes/title_screen.tscn", "res://scenes/Knight.tscn", "res://scenes/King.tscn", "res://scenes/Queen.tscn", "res://scenes/Bishop.tscn", "res://scenes/Rook.tscn"]
+scripts=["res://scripts/board.gd", "res://scripts/scene_manager.gd", "res://scripts/title_screen/menu_button.gd", "res://scripts/title_screen/title_screen.gd", "res://scripts/Knight.gd", "res://scripts/King.gd", "res://scripts/Queen.gd", "res://scripts/Bishop.gd", "res://scripts/Rook.gd", "res://scripts/Pawn.gd"]
+scenes=["res://scenes/game.tscn", "res://scenes/board.tscn", "res://scenes/scene_manager.tscn", "res://scenes/ui/title_screen.tscn", "res://scenes/title_screen/menu_button.tscn", "res://scenes/title_screen/title_screen.tscn", "res://main.tscn", "res://scenes/title_screen.tscn", "res://scenes/Knight.tscn", "res://scenes/King.tscn"]
 
 [color_picker]
 
 picker_shape=3
-recent_presets=PackedColorArray(0.1, 0.25, 0.6, 0.996, 0.826, 0.826, 0.826, 0.9, 0.1, 0.25, 0.6, 0.899, 0.1, 0.25, 0.6, 0.8, 0.826, 0.826, 0.826, 0.8, 0.1, 0.25, 0.6, 0.9, 0.1, 0.25, 0.6, 1, 0.826, 0.826, 0.826, 1, 0, 0, 0, 1)
+recent_presets=PackedColorArray(0.826, 0.826, 0.826, 0.8, 0.1, 0.25, 0.6, 0.9, 0.1, 0.25, 0.6, 1, 0.826, 0.826, 0.826, 1, 0, 0, 0, 1, 1, 1, 1, 0.757, 1, 1, 1, 1, 1, 1, 1, 0.5, 1, 1, 1, 0)
 color_mode=2
 
 [shader_setup]
diff --git a/.godot/editor/recent_dirs b/.godot/editor/recent_dirs
index fe2be8931b7de4fb6b42e300492308169dddf3d5..d8089ead6d56e347ec13f1d6600356a25aa1d9bb 100644
--- a/.godot/editor/recent_dirs
+++ b/.godot/editor/recent_dirs
@@ -1,8 +1,7 @@
+res://scripts
+res://scenes
 res://assets/sprites
 res://assets/ui/title_screen
 res://scripts/title_screen
 res://assets/shaders
-res://scenes/title_screen
-res://scenes
-res://scripts
 res://
diff --git a/.godot/editor/script_editor_cache.cfg b/.godot/editor/script_editor_cache.cfg
index 1ceafd2a01d9fccd51086848a076e9de94385baf..7353c761bc7ca66dfb4a9bd3a425e58f737838c7 100644
--- a/.godot/editor/script_editor_cache.cfg
+++ b/.godot/editor/script_editor_cache.cfg
@@ -7,7 +7,7 @@ state={
 "folded_lines": Array[int]([]),
 "h_scroll_position": 0,
 "row": 121,
-"scroll_position": 0.0,
+"scroll_position": 245.0,
 "selection": false,
 "syntax_highlighter": "GDScript"
 }
@@ -115,10 +115,10 @@ state={
 state={
 "bookmarks": PackedInt32Array(),
 "breakpoints": PackedInt32Array(),
-"column": 18,
+"column": 0,
 "folded_lines": Array[int]([]),
 "h_scroll_position": 0,
-"row": 18,
+"row": 14,
 "scroll_position": 0.0,
 "selection": false,
 "syntax_highlighter": "GDScript"
@@ -129,10 +129,24 @@ state={
 state={
 "bookmarks": PackedInt32Array(),
 "breakpoints": PackedInt32Array(),
-"column": 38,
+"column": 16,
+"folded_lines": Array[int]([]),
+"h_scroll_position": 0,
+"row": 1,
+"scroll_position": 6.0,
+"selection": false,
+"syntax_highlighter": "GDScript"
+}
+
+[res://scripts/scene_manager.gd]
+
+state={
+"bookmarks": PackedInt32Array(),
+"breakpoints": PackedInt32Array(),
+"column": 26,
 "folded_lines": Array[int]([]),
 "h_scroll_position": 0,
-"row": 12,
+"row": 19,
 "scroll_position": 0.0,
 "selection": false,
 "syntax_highlighter": "GDScript"
diff --git a/.godot/global_script_class_cache.cfg b/.godot/global_script_class_cache.cfg
index 3013cb14eab1dd852bf499ea62201c5edea13363..8a455767b16b0bdc12466084acfd74e8d53aa46d 100644
--- a/.godot/global_script_class_cache.cfg
+++ b/.godot/global_script_class_cache.cfg
@@ -5,12 +5,6 @@ list=Array[Dictionary]([{
 "language": &"GDScript",
 "path": "res://scripts/Bishop.gd"
 }, {
-"base": &"Sprite2D",
-"class": &"Board",
-"icon": "",
-"language": &"GDScript",
-"path": "res://scripts/board.gd"
-}, {
 "base": &"Piece",
 "class": &"King",
 "icon": "",
@@ -53,6 +47,12 @@ list=Array[Dictionary]([{
 "language": &"GDScript",
 "path": "res://scripts/title_screen/menu_button.gd"
 }, {
+"base": &"Control",
+"class": &"TitleScreen",
+"icon": "",
+"language": &"GDScript",
+"path": "res://scripts/title_screen/title_screen.gd"
+}, {
 "base": &"Node",
 "class": &"game",
 "icon": "",
diff --git a/.godot/uid_cache.bin b/.godot/uid_cache.bin
index c6b5550b416535b573d452d7c1fc19d1e7be5534..22e184a8419b98ceab28129aa367e50231e86384 100644
Binary files a/.godot/uid_cache.bin and b/.godot/uid_cache.bin differ
diff --git a/main.tscn b/main.tscn
index 4bb79b950f9e4bbac6645bec60371c4a766afb95..d611ce7f602c48ae59357ffe3f313e48742a869d 100644
--- a/main.tscn
+++ b/main.tscn
@@ -1,3 +1,8 @@
-[gd_scene format=3 uid="uid://cndkmh80f7mic"]
+[gd_scene load_steps=2 format=3 uid="uid://cndkmh80f7mic"]
 
-[node name="Main" type="Node2D"]
+[ext_resource type="PackedScene" uid="uid://cu7lkx15lmfww" path="res://scenes/scene_manager.tscn" id="1_jedp3"]
+
+[node name="Main" type="Node"]
+process_mode = 3
+
+[node name="SceneManager" parent="." instance=ExtResource("1_jedp3")]
diff --git a/scenes/board.tscn b/scenes/board.tscn
deleted file mode 100644
index 5f4da2632ac79925acbb9abdcd0491a5c831c92d..0000000000000000000000000000000000000000
--- a/scenes/board.tscn
+++ /dev/null
@@ -1,13 +0,0 @@
-[gd_scene load_steps=3 format=3 uid="uid://cfao716v0t1jw"]
-
-[ext_resource type="Texture2D" uid="uid://b0px5wlrm0mb3" path="res://assets/temp_assets/temp_chess_board.png" id="1_uv32f"]
-[ext_resource type="Script" path="res://scripts/board.gd" id="2_lsc00"]
-
-[node name="Board" type="Sprite2D"]
-position = Vector2(72, -72)
-texture = ExtResource("1_uv32f")
-script = ExtResource("2_lsc00")
-
-[node name="Pieces" type="Node2D" parent="."]
-
-[node name="Dots" type="Node2D" parent="."]
diff --git a/scenes/scene_manager.tscn b/scenes/scene_manager.tscn
new file mode 100644
index 0000000000000000000000000000000000000000..69a8d2a6198b12e0efb1e7c03bc137213bcdb969
--- /dev/null
+++ b/scenes/scene_manager.tscn
@@ -0,0 +1,74 @@
+[gd_scene load_steps=6 format=3 uid="uid://cu7lkx15lmfww"]
+
+[ext_resource type="Script" path="res://scripts/scene_manager.gd" id="1_g5ujx"]
+
+[sub_resource type="Animation" id="Animation_fjivo"]
+resource_name = "fade_out"
+tracks/0/type = "value"
+tracks/0/imported = false
+tracks/0/enabled = true
+tracks/0/path = NodePath("ColorRect:modulate")
+tracks/0/interp = 1
+tracks/0/loop_wrap = true
+tracks/0/keys = {
+"times": PackedFloat32Array(0, 0.5, 1),
+"transitions": PackedFloat32Array(1, 1, 1),
+"update": 0,
+"values": [Color(1, 1, 1, 0), Color(1, 1, 1, 0.5), Color(1, 1, 1, 1)]
+}
+
+[sub_resource type="Animation" id="Animation_2xwoy"]
+length = 0.001
+tracks/0/type = "value"
+tracks/0/imported = false
+tracks/0/enabled = true
+tracks/0/path = NodePath("ColorRect:modulate")
+tracks/0/interp = 1
+tracks/0/loop_wrap = true
+tracks/0/keys = {
+"times": PackedFloat32Array(0),
+"transitions": PackedFloat32Array(1),
+"update": 0,
+"values": [Color(1, 1, 1, 0)]
+}
+
+[sub_resource type="Animation" id="Animation_kxlfu"]
+resource_name = "fade_in"
+tracks/0/type = "value"
+tracks/0/imported = false
+tracks/0/enabled = true
+tracks/0/path = NodePath("ColorRect:modulate")
+tracks/0/interp = 1
+tracks/0/loop_wrap = true
+tracks/0/keys = {
+"times": PackedFloat32Array(0, 0.5, 1),
+"transitions": PackedFloat32Array(1, 1, 1),
+"update": 0,
+"values": [Color(1, 1, 1, 1), Color(1, 1, 1, 0.5), Color(1, 1, 1, 0)]
+}
+
+[sub_resource type="AnimationLibrary" id="AnimationLibrary_v8vj1"]
+_data = {
+"RESET": SubResource("Animation_2xwoy"),
+"fade_in": SubResource("Animation_kxlfu"),
+"fade_out": SubResource("Animation_fjivo")
+}
+
+[node name="SceneManager" type="Node"]
+script = ExtResource("1_g5ujx")
+
+[node name="CanvasLayer" type="CanvasLayer" parent="."]
+
+[node name="ColorRect" type="ColorRect" parent="CanvasLayer"]
+modulate = Color(1, 1, 1, 0)
+anchors_preset = 15
+anchor_right = 1.0
+anchor_bottom = 1.0
+grow_horizontal = 2
+grow_vertical = 2
+color = Color(0, 0, 0, 1)
+
+[node name="AnimationPlayer" type="AnimationPlayer" parent="CanvasLayer"]
+libraries = {
+"": SubResource("AnimationLibrary_v8vj1")
+}
diff --git a/scenes/ui/title_screen.tscn b/scenes/title_screen.tscn
similarity index 81%
rename from scenes/ui/title_screen.tscn
rename to scenes/title_screen.tscn
index e86506d332a2e44f46dd0c8c6ecd9165cb37b6f5..01e4db9cb9a262e0572b0fb15324a7c5f1266bb3 100644
--- a/scenes/ui/title_screen.tscn
+++ b/scenes/title_screen.tscn
@@ -1,26 +1,13 @@
 [gd_scene load_steps=3 format=3 uid="uid://dogg5cp8c0f4s"]
 
-[ext_resource type="Script" path="res://scripts/title_screen/title_screen.gd" id="1_sj2v7"]
-[ext_resource type="PackedScene" uid="uid://bm8sv1itwm467" path="res://scenes/ui/menu_button.tscn" id="2_5iwbf"]
+[ext_resource type="Script" path="res://scripts/title_screen/title_screen.gd" id="1_kqy6i"]
+[ext_resource type="PackedScene" uid="uid://bm8sv1itwm467" path="res://scenes/ui/menu_button.tscn" id="2_kj14e"]
 
 [node name="TitleScreen" type="Control"]
+process_mode = 3
 layout_mode = 3
-anchors_preset = 15
-anchor_right = 1.0
-anchor_bottom = 1.0
-grow_horizontal = 2
-grow_vertical = 2
-script = ExtResource("1_sj2v7")
-
-[node name="RichTextLabel" type="RichTextLabel" parent="."]
-layout_mode = 2
-offset_left = 50.0
-offset_top = 50.0
-offset_right = 1230.0
-offset_bottom = 625.0
-size_flags_horizontal = 3
-theme_override_font_sizes/normal_font_size = 75
-text = "Go Save The King"
+anchors_preset = 0
+script = ExtResource("1_kqy6i")
 
 [node name="MenuContainers" type="VBoxContainer" parent="."]
 layout_mode = 1
@@ -34,16 +21,25 @@ offset_bottom = -47.0
 grow_vertical = 0
 theme_override_constants/separation = 50
 
-[node name="PlayButton" parent="MenuContainers" instance=ExtResource("2_5iwbf")]
+[node name="PlayButton" parent="MenuContainers" instance=ExtResource("2_kj14e")]
 layout_mode = 2
 size_flags_vertical = 3
 
-[node name="RulesButton" parent="MenuContainers" instance=ExtResource("2_5iwbf")]
+[node name="RulesButton" parent="MenuContainers" instance=ExtResource("2_kj14e")]
 layout_mode = 2
 size_flags_vertical = 3
 
-[node name="QuitButton" parent="MenuContainers" instance=ExtResource("2_5iwbf")]
+[node name="QuitButton" parent="MenuContainers" instance=ExtResource("2_kj14e")]
 layout_mode = 2
 size_flags_vertical = 3
 
+[node name="RichTextLabel" type="RichTextLabel" parent="."]
+offset_left = 50.0
+offset_top = 50.0
+offset_right = 1230.0
+offset_bottom = 625.0
+size_flags_horizontal = 3
+theme_override_font_sizes/normal_font_size = 75
+text = "Go Save The King"
+
 [connection signal="pressed" from="MenuContainers/QuitButton" to="." method="_on_quit_pressed"]
diff --git a/scripts/board.gd b/scripts/board.gd
deleted file mode 100644
index 36b4359b438fa667ede3459410b1a877de38979b..0000000000000000000000000000000000000000
--- a/scripts/board.gd
+++ /dev/null
@@ -1,90 +0,0 @@
-extends Sprite2D
-class_name Board
-
-const BOARD_SIZE = 8
-const CELL_WIDTH = 18
-
-# piece textures
-const BLACK_BISHOP = preload("res://assets/temp_assets/black_bishop.png")
-const BLACK_KING = preload("res://assets/temp_assets/black_king.png")
-const BLACK_KNIGHT = preload("res://assets/temp_assets/black_knight.png")
-const BLACK_PAWN = preload("res://assets/temp_assets/black_pawn.png")
-const BLACK_QUEEN = preload("res://assets/temp_assets/black_queen.png")
-const BLACK_ROOK = preload("res://assets/temp_assets/black_rook.png")
-const WHITE_BISHOP = preload("res://assets/temp_assets/white_bishop.png")
-const WHITE_KING = preload("res://assets/temp_assets/white_king.png")
-const WHITE_KNIGHT = preload("res://assets/temp_assets/white_knight.png")
-const WHITE_PAWN = preload("res://assets/temp_assets/white_pawn.png")
-const WHITE_QUEEN = preload("res://assets/temp_assets/white_queen.png")
-const WHITE_ROOK = preload("res://assets/temp_assets/white_rook.png")
-
-const TEXTURE_HOLDER = preload("res://scenes/texture_holder.tscn")
-
-@onready var pieces: Node2D = $Pieces
-@onready var dots: Node2D = $Dots
-
-# Variables
-var board: Array
-var white: bool
-var state: bool
-var moves = []
-var selected_piece: Vector2
-
-# Called when the node enters the scene tree for the first time.
-func _ready() -> void:
-	board.append([4,2,3,5,6,3,2,4])
-	board.append([1,1,1,1,1,1,1,1])
-	board.append([0,0,0,0,0,0,0,0])
-	board.append([0,0,0,0,0,0,0,0])
-	board.append([0,0,0,0,0,0,0,0])
-	board.append([0,0,0,0,0,0,0,0])
-	board.append([-1,-1,-1,-1,-1,-1,-1,-1])
-	board.append([-4,-2,-3,-5,-6,-3,-2,-4])
-	
-	display_board()
-	
-func _input(event):
-	if (event is InputEventMouseButton && event.pressed):
-		if (event.button_index == MOUSE_BUTTON_LEFT):
-			if is_mouse_out():
-				return
-			
-			var mouse_position: Vector2 = get_global_mouse_position()
-			var x_click = snapped(mouse_position.x, 0) / CELL_WIDTH
-			var y_click = abs(snapped(mouse_position.y, 0)) / CELL_WIDTH
-			
-			print(x_click, y_click)
-
-# Checks if mouse input is on the board
-func is_mouse_out() -> bool:
-	var mouse_position: Vector2 = get_global_mouse_position()
-	
-	if (mouse_position.x < 0 || mouse_position.x > 144 || mouse_position.y > 0 || mouse_position.y < -144):
-		return true
-	
-	return false
-
-# Displays board and instantiates "piece holders"
-func display_board() -> void:
-	for i in BOARD_SIZE:
-		for j in BOARD_SIZE:
-			# Instantiate texture holders, scene that holds pieces
-			var holder = TEXTURE_HOLDER.instantiate()
-			pieces.add_child(holder)
-			holder.global_position = Vector2(j * CELL_WIDTH + (CELL_WIDTH / 2), -i * CELL_WIDTH - (CELL_WIDTH / 2))
-			
-			# Looks at board array and matches pieces with its respective value
-			match board[i][j]:
-				-6: holder.texture = BLACK_KING
-				-5: holder.texture = BLACK_QUEEN
-				-4: holder.texture = BLACK_ROOK
-				-3: holder.texture = BLACK_BISHOP
-				-2: holder.texture = BLACK_KNIGHT
-				-1: holder.texture = BLACK_PAWN
-				0: holder.texture = null
-				6: holder.texture = WHITE_KING
-				5: holder.texture = WHITE_QUEEN
-				4: holder.texture = WHITE_ROOK
-				3: holder.texture = WHITE_BISHOP
-				2: holder.texture = WHITE_KNIGHT
-				1: holder.texture = WHITE_PAWN
diff --git a/scripts/scene_manager.gd b/scripts/scene_manager.gd
new file mode 100644
index 0000000000000000000000000000000000000000..42773814ba5e83da6c3a88a0e047172aa94df792
--- /dev/null
+++ b/scripts/scene_manager.gd
@@ -0,0 +1,23 @@
+extends Node
+
+var current_scene = null
+
+@onready var fade_animation: AnimationPlayer = $CanvasLayer/AnimationPlayer
+
+func _ready() -> void:
+	change_scene("res://scenes/title_screen.tscn")
+
+func change_scene(scene_path: String) -> void:
+	fade_animation.play("fade_out")
+	await fade_animation.animation_finished
+	
+	if current_scene:
+		current_scene.queue_free()
+		
+	var new_scene = load(scene_path).instantiate()
+	
+	get_parent().add_child(new_scene)
+	current_scene = new_scene
+	
+	fade_animation.play("fade_in")
+	
diff --git a/scripts/title_screen/title_screen.gd b/scripts/title_screen/title_screen.gd
index 5dbfce412a7e255ad74f905de458c5475f1072b5..fdf9fc4c31f15aa6c2be3bf38658fa14f3887498 100644
--- a/scripts/title_screen/title_screen.gd
+++ b/scripts/title_screen/title_screen.gd
@@ -1,17 +1,15 @@
 extends Control
+class_name TitleScreen
 
 @onready var play_button: TitleButton = $MenuContainers/PlayButton
 @onready var rules_button: TitleButton = $MenuContainers/RulesButton
 @onready var quit_button: TitleButton = $MenuContainers/QuitButton
 
-# Called when the node enters the scene tree for the first time.
 func _ready() -> void:
 	play_button.set_image("res://assets/ui/title_screen/play_button.png")
 	rules_button.set_image("res://assets/ui/title_screen/rules_button.png")
 	quit_button.set_image("res://assets/ui/title_screen/quit_button.png")
 
-
-# Called every frame. 'delta' is the elapsed time since the previous frame.
 func _process(delta: float) -> void:
 	pass