diff --git a/src/poker/model/pokertable.c b/src/assets/models/pokertable.c
similarity index 100%
rename from src/poker/model/pokertable.c
rename to src/assets/models/pokertable.c
diff --git a/src/poker/model/pokertable.h b/src/assets/models/pokertable.h
similarity index 100%
rename from src/poker/model/pokertable.h
rename to src/assets/models/pokertable.h
diff --git a/src/game/game.c b/src/game/game.c
index 16dda858..bd6ba897 100644
--- a/src/game/game.c
+++ b/src/game/game.c
@@ -8,6 +8,7 @@
 #include "game.h"
 
 game_t GAME_STATE;
+pokergame_t POKER_STATE;
 
 bool gameInit() {
   // Init the game
@@ -26,8 +27,26 @@ bool gameInit() {
     "shaders/textured.vert", "shaders/textured.frag"
   );
 
-  // Send to Texas Game
-  holdemGameInit();
+  // Font
+  POKER_STATE.fontTexture = assetTextureLoad("font.png");
+  POKER_STATE.fontTileset = tilesetCreate(20, 20,
+    POKER_STATE.fontTexture->width,
+    POKER_STATE.fontTexture->height,
+    1, 1, 1, 1
+  );
+  POKER_STATE.fontBatch = spriteBatchCreate(1024);
+
+  // Prepare the renderer.
+  holdemRenderFrameInit();
+  holdemRenderWorldInit();
+  holdemRenderPlayerInit();
+  holdemRenderCardInit();
+
+  // Prepare the action manager
+  pokerActionInit();
+
+  // Start the first action
+  pokerActionAdd(actionStart());
 
   // Init the input manger.
   return true;
@@ -39,13 +58,24 @@ bool gameUpdate(float platformDelta) {
   inputUpdate();
   
   shaderUse(GAME_STATE.shaderWorld);// TODO: remove
-  holdemGameUpdate();
+  
+  // Update the frame buffers and action queue
+  holdemRenderFrameUpdate();
+  pokerActionUpdate();
+
+  // Render things on each frame, then render those frames.
+  holdemRenderFrameUseLeft();
+  holdemRenderWorld();
+  holdemRenderFrameUseRight();
+  holdemRenderWorld();
+  holdemRenderFrameBack();
 
   if(inputIsPressed(INPUT_NULL)) return false;
   return true;
 }
 
 void gameDispose() {
+  pokerActionDispose();
   shaderDispose(GAME_STATE.shaderWorld);
   inputDispose();
   renderDispose();
diff --git a/src/game/game.h b/src/game/game.h
index a6a6d805..25a0a464 100644
--- a/src/game/game.h
+++ b/src/game/game.h
@@ -9,10 +9,17 @@
 #include "../display/render.h"
 #include "../display/camera.h"
 #include "../display/shader.h"
+#include "../display/gui/font.h"
 #include "../file/asset.h"
 #include "../input/input.h"
-#include "../poker/holdemgame.h"
 #include "../debug/log.h"
+#include "../poker/action/action.h"
+#include "../poker/action/start.h"
+#include "../poker/render/player.h"
+#include "../poker/render/card.h"
+#include "../poker/render/frame.h"
+#include "../poker/render/look.h"
+#include "../poker/render/world.h"
 
 /**
  * Initialize the game context.
diff --git a/src/poker/action/action.c b/src/poker/action/action.c
index 4a113873..bee8e2e6 100644
--- a/src/poker/action/action.c
+++ b/src/poker/action/action.c
@@ -7,7 +7,7 @@
 
 #include "action.h"
 
-void holdemActionInit() {
+void pokerActionInit() {
   // Free up all actions
   memset(POKER_STATE.actionQueue, (int32_t)NULL,
     sizeof(pokeraction_t) * POKER_ACTION_QUEUE_SIZE
@@ -19,7 +19,7 @@ void holdemActionInit() {
   );
 }
 
-int32_t holdemActionAdd(pokeraction_t action) {
+int32_t pokerActionAdd(pokeraction_t action) {
   int32_t i = -1;
   int32_t j = -1;
 
@@ -35,7 +35,7 @@ int32_t holdemActionAdd(pokeraction_t action) {
   return j;
 }
 
-void holdemActionRemove(int32_t index) {
+void pokerActionRemove(int32_t index) {
   if(POKER_STATE.actionQueue[index].dispose != NULL) {
     POKER_STATE.actionQueue[index].dispose(
       index, POKER_STATE.actionData + index
@@ -51,7 +51,7 @@ void holdemActionRemove(int32_t index) {
   );
 }
 
-void holdemActionUpdate() {
+void pokerActionUpdate() {
   int32_t i;
   void **data;
   pokeraction_t *action;
@@ -71,7 +71,7 @@ void holdemActionUpdate() {
   }
 }
 
-void holdemActionDispose() {
+void pokerActionDispose() {
   int32_t i;
   for(i = 0; i < POKER_ACTION_QUEUE_SIZE; i++) {
     if(POKER_STATE.actionQueue[i].dispose == NULL) continue;
diff --git a/src/poker/action/action.h b/src/poker/action/action.h
index 4534d8dc..f1711754 100644
--- a/src/poker/action/action.h
+++ b/src/poker/action/action.h
@@ -11,7 +11,7 @@
 /**
  * Initializes the action manager.
  */
-void holdemActionInit();
+void pokerActionInit();
 
 /**
  * Adds an action to the action queue.
@@ -19,22 +19,22 @@ void holdemActionInit();
  * @param action Action to add to the queue.
  * @returns The index of the action within the queue, or -1 if failure occured.
  */
-int32_t holdemActionAdd(pokeraction_t action);
+int32_t pokerActionAdd(pokeraction_t action);
 
 /**
  * Removes an action from the action queue.
  * 
  * @param index Action to remove (by index in the queue).
  */
-void holdemActionRemove(int32_t index);
+void pokerActionRemove(int32_t index);
 
 /**
  * Updates the action manager, which (in turn) updates all actions that are
  * currently running.
  */
-void holdemActionUpdate();
+void pokerActionUpdate();
 
 /**
  * Cleans up the action manager and all actions.
  */
-void holdemActionDispose();
\ No newline at end of file
+void pokerActionDispose();
\ No newline at end of file
diff --git a/src/poker/action/ai.c b/src/poker/action/ai.c
index ffcaf32f..eefa0c47 100644
--- a/src/poker/action/ai.c
+++ b/src/poker/action/ai.c
@@ -25,7 +25,7 @@ void actionAiInit(int32_t index, void *data) {
         worth the risk. I may need history of the game to make informed decision
   */
 
-  holdemActionRemove(index);
+  pokerActionRemove(index);
 }
 
 void actionAiUpdate(int32_t index, void *data) {
@@ -34,6 +34,6 @@ void actionAiUpdate(int32_t index, void *data) {
 void actionAiDispose(int32_t index, void *data) {
   // Do we need to do a flop?
   if(POKER_STATE.cardsFacing < HOLDEM_DEALER_HAND) {
-    holdemActionAdd(actionFlop());
+    pokerActionAdd(actionFlop());
   }
 }
\ No newline at end of file
diff --git a/src/poker/action/deal.c b/src/poker/action/deal.c
index 6d47a602..e0667fff 100644
--- a/src/poker/action/deal.c
+++ b/src/poker/action/deal.c
@@ -33,7 +33,7 @@ void actionDealInit(int32_t index, void *data) {
     }
   }
 
-  holdemActionRemove(index);
+  pokerActionRemove(index);
 }
 
 void actionDealUpdate(int32_t i, void *data) {
@@ -41,5 +41,5 @@ void actionDealUpdate(int32_t i, void *data) {
 }
 
 void actionDealDispose(int32_t i, void *data) {
-  int32_t newI = holdemActionAdd(actionAi());
+  int32_t newI = pokerActionAdd(actionAi());
 }
\ No newline at end of file
diff --git a/src/poker/action/flop.c b/src/poker/action/flop.c
index ee554009..e87eef80 100644
--- a/src/poker/action/flop.c
+++ b/src/poker/action/flop.c
@@ -39,7 +39,7 @@ void actionFlopInit(int32_t index, void *data) {
   }
 
   // Next action
-  holdemActionRemove(index);
+  pokerActionRemove(index);
 }
 
 void actionFlopUpdate(int32_t index, void *data) {
@@ -47,5 +47,5 @@ void actionFlopUpdate(int32_t index, void *data) {
 }
 
 void actionFlopDispose(int32_t index, void *data) {
-  holdemActionAdd(actionAi());
+  pokerActionAdd(actionAi());
 }
\ No newline at end of file
diff --git a/src/poker/action/round.c b/src/poker/action/round.c
index d74d9236..a693c672 100644
--- a/src/poker/action/round.c
+++ b/src/poker/action/round.c
@@ -45,7 +45,7 @@ void actionRoundInit(int32_t index, void *data) {
   }
 
   // Next action
-  holdemActionRemove(index);
+  pokerActionRemove(index);
 }
 
 void actionRoundUpdate(int32_t index, void *data) {
@@ -53,11 +53,11 @@ void actionRoundUpdate(int32_t index, void *data) {
 
 void actionRoundAfterShuffle() {
   logText("Shuffle Done");
-  int32_t i = holdemActionAdd(actionDeal());
+  int32_t i = pokerActionAdd(actionDeal());
 }
 
 void actionRoundDispose(int32_t index, void *data) {
-  int32_t newI = holdemActionAdd(actionShuffle());
+  int32_t newI = pokerActionAdd(actionShuffle());
   shuffledata_t *newData=(shuffledata_t *)(POKER_STATE.actionData + newI);
   newData->done = &actionRoundAfterShuffle;
 }
\ No newline at end of file
diff --git a/src/poker/action/shuffle.c b/src/poker/action/shuffle.c
index d31e55c3..d79ac794 100644
--- a/src/poker/action/shuffle.c
+++ b/src/poker/action/shuffle.c
@@ -18,7 +18,7 @@ pokeraction_t actionShuffle() {
 void actionShuffleInit(int32_t index, void *data) {
   logText("Shuffle Deck");
   cardShuffle(POKER_STATE.deck, POKER_STATE.deckSize);
-  holdemActionRemove(index);
+  pokerActionRemove(index);
 }
 
 void actionShuffleUpdate(int32_t index, void *data) {
diff --git a/src/poker/action/start.c b/src/poker/action/start.c
index 571cae1e..7c2f9986 100644
--- a/src/poker/action/start.c
+++ b/src/poker/action/start.c
@@ -34,7 +34,7 @@ void actionStartInit(int32_t index, void *data) {
     player->chips = 0;
   }
 
-  holdemActionRemove(index);
+  pokerActionRemove(index);
 }
 
 void actionStartUpdate(int32_t index, void *data) {
@@ -42,5 +42,5 @@ void actionStartUpdate(int32_t index, void *data) {
 
 void actionStartDispose(int32_t index, void *data) {
   // Begin the first round
-  holdemActionAdd(actionRound());
+  pokerActionAdd(actionRound());
 }
\ No newline at end of file
diff --git a/src/poker/holdemgame.c b/src/poker/holdemgame.c
deleted file mode 100644
index 6029f0a7..00000000
--- a/src/poker/holdemgame.c
+++ /dev/null
@@ -1,53 +0,0 @@
-/**
- * Copyright (c) 2021 Dominic Masters
- * 
- * This software is released under the MIT License.
- * https://opensource.org/licenses/MIT
- */
-#include "holdemgame.h"
-
-pokergame_t POKER_STATE;
-
-void holdemGameInit() {
-  // Font
-  POKER_STATE.fontTexture = assetTextureLoad("font.png");
-  POKER_STATE.fontTileset = tilesetCreate(20, 20,
-    POKER_STATE.fontTexture->width,
-    POKER_STATE.fontTexture->height,
-    1, 1, 1, 1
-  );
-  POKER_STATE.fontBatch = spriteBatchCreate(1024);
-
-  // Prepare the renderer.
-  holdemRenderFrameInit();
-  holdemRenderSceneInit();
-  holdemRenderPlayerInit();
-  holdemRenderCardInit();
-
-  // Prepare the action manager
-  holdemActionInit();
-
-  // Start the first action
-  holdemActionAdd(actionStart());
-}
-
-void holdemGameUpdate() {
-  // Update the frame buffers and action queue
-  holdemRenderFrameUpdate();
-  holdemActionUpdate();
-
-  // Render things on the left frame buffer
-  holdemRenderFrameUseLeft();
-  holdemRenderWorld();
-
-  // Render things on the right frame buffer
-  holdemRenderFrameUseRight();
-  holdemRenderWorld();
-
-  // Finally, render the frame buffers to the back buffer.
-  holdemRenderFrameBack();
-}
-
-void holdemGameDispose() {
-  holdemActionDispose();
-}
\ No newline at end of file
diff --git a/src/poker/holdemgame.h b/src/poker/holdemgame.h
deleted file mode 100644
index 7f46731c..00000000
--- a/src/poker/holdemgame.h
+++ /dev/null
@@ -1,35 +0,0 @@
-/**
- * Copyright (c) 2021 Dominic Masters
- * 
- * This software is released under the MIT License.
- * https://opensource.org/licenses/MIT
- */
-
-#pragma once
-#include <dawn/dawn.h>
-#include "../file/asset.h"
-#include "../display/gui/font.h"
-#include "card.h"
-#include "action/action.h"
-#include "action/start.h"
-#include "render/player.h"
-#include "render/card.h"
-#include "render/frame.h"
-#include "render/look.h"
-#include "render/scene.h"
-#include "render/world.h"
-
-/**
- * Initializes the Texas Hold'em game
- */
-void holdemGameInit();
-
-/**
- * Update the Texas Hold'em game.
- */
-void holdemGameUpdate();
-
-/**
- * Dispose the Texas Hold'em game.
- */
-void holdemGameDispose();
\ No newline at end of file
diff --git a/src/poker/render/scene.c b/src/poker/render/scene.c
deleted file mode 100644
index c0e9ed0f..00000000
--- a/src/poker/render/scene.c
+++ /dev/null
@@ -1,24 +0,0 @@
-/**
- * Copyright (c) 2021 Dominic Masters
- * 
- * This software is released under the MIT License.
- * https://opensource.org/licenses/MIT
- */
-
-#include "scene.h"
-
-void holdemRenderSceneInit() {
-  POKER_STATE.tablePrimitive = pokerTableCreate();
-  POKER_STATE.tableTexture = assetTextureLoad("pokertable.png");
-}
-
-void holdemRenderScene() {
-  // Poker Table
-  shaderUsePositionAndScale(GAME_STATE.shaderWorld,
-    0, -0.01, 0,
-    0, 0, 0,
-    3.4, 3.4, 3.4
-  );
-  shaderUseTexture(GAME_STATE.shaderWorld, POKER_STATE.tableTexture);
-  primitiveDraw(POKER_STATE.tablePrimitive, 0, -1);
-}
\ No newline at end of file
diff --git a/src/poker/render/scene.h b/src/poker/render/scene.h
deleted file mode 100644
index f976d77b..00000000
--- a/src/poker/render/scene.h
+++ /dev/null
@@ -1,23 +0,0 @@
-/**
- * Copyright (c) 2021 Dominic Masters
- * 
- * This software is released under the MIT License.
- * https://opensource.org/licenses/MIT
- */
-
-#pragma once
-#include <dawn/dawn.h>
-#include "../../display/shader.h"
-#include "../../display/primitive.h"
-#include "../../file/asset.h"
-#include "../model/pokertable.h"
-
-/**
- * Initializes the scene renderer.
- */
-void holdemRenderSceneInit();
-
-/**
- * Renders the scene for the holdem game (including table, chairs, etc.)
- */
-void holdemRenderScene();
\ No newline at end of file
diff --git a/src/poker/render/world.c b/src/poker/render/world.c
index 7fdb7ec1..fd284bfd 100644
--- a/src/poker/render/world.c
+++ b/src/poker/render/world.c
@@ -7,12 +7,24 @@
 
 #include "world.h"
 
+void holdemRenderWorldInit() {
+  POKER_STATE.tablePrimitive = pokerTableCreate();
+  POKER_STATE.tableTexture = assetTextureLoad("pokertable.png");
+}
+
 void holdemRenderWorld() {
   uint8_t i, j;
   pokerplayer_t *player;
   uint8_t seat;
 
-  holdemRenderScene();
+  // Poker Table
+  shaderUsePositionAndScale(GAME_STATE.shaderWorld,
+    0, -0.01, 0,
+    0, 0, 0,
+    3.4, 3.4, 3.4
+  );
+  shaderUseTexture(GAME_STATE.shaderWorld, POKER_STATE.tableTexture);
+  primitiveDraw(POKER_STATE.tablePrimitive, 0, -1);
 
   // Render the dealer and her hand
   holdemRenderPlayer(HOLDEM_GAME_SEAT_DEALER);
diff --git a/src/poker/render/world.h b/src/poker/render/world.h
index 03553039..9e12be3a 100644
--- a/src/poker/render/world.h
+++ b/src/poker/render/world.h
@@ -8,8 +8,13 @@
 #pragma once
 #include <dawn/dawn.h>
 #include "player.h"
-#include "scene.h"
 #include "card.h"
+#include "../../assets/models/pokertable.h"
+
+/**
+ * Initializes the world renderer.
+ */
+void holdemRenderWorldInit();
 
 /**
  * Renders the world.