diff --git a/package-lock.json b/package-lock.json
index 38ade7b..1e519ad 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -57,9 +57,9 @@
       }
     },
     "node_modules/@prisma/client": {
-      "version": "5.13.0",
-      "resolved": "https://registry.npmjs.org/@prisma/client/-/client-5.13.0.tgz",
-      "integrity": "sha512-uYdfpPncbZ/syJyiYBwGZS8Gt1PTNoErNYMuqHDa2r30rNSFtgTA/LXsSk55R7pdRTMi5pHkeP9B14K6nHmwkg==",
+      "version": "5.14.0",
+      "resolved": "https://registry.npmjs.org/@prisma/client/-/client-5.14.0.tgz",
+      "integrity": "sha512-akMSuyvLKeoU4LeyBAUdThP/uhVP3GuLygFE3MlYzaCb3/J8SfsYBE5PkaFuLuVpLyA6sFoW+16z/aPhNAESqg==",
       "hasInstallScript": true,
       "engines": {
         "node": ">=16.13"
@@ -74,43 +74,43 @@
       }
     },
     "node_modules/@prisma/debug": {
-      "version": "5.13.0",
-      "resolved": "https://registry.npmjs.org/@prisma/debug/-/debug-5.13.0.tgz",
-      "integrity": "sha512-699iqlEvzyCj9ETrXhs8o8wQc/eVW+FigSsHpiskSFydhjVuwTJEfj/nIYqTaWFYuxiWQRfm3r01meuW97SZaQ=="
+      "version": "5.14.0",
+      "resolved": "https://registry.npmjs.org/@prisma/debug/-/debug-5.14.0.tgz",
+      "integrity": "sha512-iq56qBZuFfX3fCxoxT8gBX33lQzomBU0qIUaEj1RebsKVz1ob/BVH1XSBwwwvRVtZEV1b7Fxx2eVu34Ge/mg3w=="
     },
     "node_modules/@prisma/engines": {
-      "version": "5.13.0",
-      "resolved": "https://registry.npmjs.org/@prisma/engines/-/engines-5.13.0.tgz",
-      "integrity": "sha512-hIFLm4H1boj6CBZx55P4xKby9jgDTeDG0Jj3iXtwaaHmlD5JmiDkZhh8+DYWkTGchu+rRF36AVROLnk0oaqhHw==",
+      "version": "5.14.0",
+      "resolved": "https://registry.npmjs.org/@prisma/engines/-/engines-5.14.0.tgz",
+      "integrity": "sha512-lgxkKZ6IEygVcw6IZZUlPIfLQ9hjSYAtHjZ5r64sCLDgVzsPFCi2XBBJgzPMkOQ5RHzUD4E/dVdpn9+ez8tk1A==",
       "hasInstallScript": true,
       "dependencies": {
-        "@prisma/debug": "5.13.0",
-        "@prisma/engines-version": "5.13.0-23.b9a39a7ee606c28e3455d0fd60e78c3ba82b1a2b",
-        "@prisma/fetch-engine": "5.13.0",
-        "@prisma/get-platform": "5.13.0"
+        "@prisma/debug": "5.14.0",
+        "@prisma/engines-version": "5.14.0-25.e9771e62de70f79a5e1c604a2d7c8e2a0a874b48",
+        "@prisma/fetch-engine": "5.14.0",
+        "@prisma/get-platform": "5.14.0"
       }
     },
     "node_modules/@prisma/engines-version": {
-      "version": "5.13.0-23.b9a39a7ee606c28e3455d0fd60e78c3ba82b1a2b",
-      "resolved": "https://registry.npmjs.org/@prisma/engines-version/-/engines-version-5.13.0-23.b9a39a7ee606c28e3455d0fd60e78c3ba82b1a2b.tgz",
-      "integrity": "sha512-AyUuhahTINGn8auyqYdmxsN+qn0mw3eg+uhkp8zwknXYIqoT3bChG4RqNY/nfDkPvzWAPBa9mrDyBeOnWSgO6A=="
+      "version": "5.14.0-25.e9771e62de70f79a5e1c604a2d7c8e2a0a874b48",
+      "resolved": "https://registry.npmjs.org/@prisma/engines-version/-/engines-version-5.14.0-25.e9771e62de70f79a5e1c604a2d7c8e2a0a874b48.tgz",
+      "integrity": "sha512-ip6pNkRo1UxWv+6toxNcYvItNYaqQjXdFNGJ+Nuk2eYtRoEdoF13wxo7/jsClJFFenMPVNVqXQDV0oveXnR1cA=="
     },
     "node_modules/@prisma/fetch-engine": {
-      "version": "5.13.0",
-      "resolved": "https://registry.npmjs.org/@prisma/fetch-engine/-/fetch-engine-5.13.0.tgz",
-      "integrity": "sha512-Yh4W+t6YKyqgcSEB3odBXt7QyVSm0OQlBSldQF2SNXtmOgMX8D7PF/fvH6E6qBCpjB/yeJLy/FfwfFijoHI6sA==",
+      "version": "5.14.0",
+      "resolved": "https://registry.npmjs.org/@prisma/fetch-engine/-/fetch-engine-5.14.0.tgz",
+      "integrity": "sha512-VrheA9y9DMURK5vu8OJoOgQpxOhas3qF0IBHJ8G/0X44k82kc8E0w98HCn2nhnbOOMwbWsJWXfLC2/F8n5u0gQ==",
       "dependencies": {
-        "@prisma/debug": "5.13.0",
-        "@prisma/engines-version": "5.13.0-23.b9a39a7ee606c28e3455d0fd60e78c3ba82b1a2b",
-        "@prisma/get-platform": "5.13.0"
+        "@prisma/debug": "5.14.0",
+        "@prisma/engines-version": "5.14.0-25.e9771e62de70f79a5e1c604a2d7c8e2a0a874b48",
+        "@prisma/get-platform": "5.14.0"
       }
     },
     "node_modules/@prisma/get-platform": {
-      "version": "5.13.0",
-      "resolved": "https://registry.npmjs.org/@prisma/get-platform/-/get-platform-5.13.0.tgz",
-      "integrity": "sha512-B/WrQwYTzwr7qCLifQzYOmQhZcFmIFhR81xC45gweInSUn2hTEbfKUPd2keAog+y5WI5xLAFNJ3wkXplvSVkSw==",
+      "version": "5.14.0",
+      "resolved": "https://registry.npmjs.org/@prisma/get-platform/-/get-platform-5.14.0.tgz",
+      "integrity": "sha512-/yAyBvcEjRv41ynZrhdrPtHgk47xLRRq/o5eWGcUpBJ1YrUZTYB8EoPiopnP7iQrMATK8stXQdPOoVlrzuTQZw==",
       "dependencies": {
-        "@prisma/debug": "5.13.0"
+        "@prisma/debug": "5.14.0"
       }
     },
     "node_modules/@socket.io/component-emitter": {
@@ -213,9 +213,9 @@
       "dev": true
     },
     "node_modules/@types/node": {
-      "version": "20.12.11",
-      "resolved": "https://registry.npmjs.org/@types/node/-/node-20.12.11.tgz",
-      "integrity": "sha512-vDg9PZ/zi+Nqp6boSOT7plNuthRugEKixDv5sFTIpkE89MmNtEArAShI4mxuX2+UrLEe9pxC1vm2cjm9YlWbJw==",
+      "version": "20.12.12",
+      "resolved": "https://registry.npmjs.org/@types/node/-/node-20.12.12.tgz",
+      "integrity": "sha512-eWLDGF/FOSPtAvEqeRAQ4C8LSA7M1I7i0ky1I8U7kD1J5ITyW3AsRhQrKVoWf5pFKZ2kILsEGJhsI9r93PYnOw==",
       "dependencies": {
         "undici-types": "~5.26.4"
       }
@@ -263,12 +263,6 @@
         "socket.io": "*"
       }
     },
-    "node_modules/abbrev": {
-      "version": "1.1.1",
-      "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz",
-      "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==",
-      "dev": true
-    },
     "node_modules/accepts": {
       "version": "1.3.8",
       "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz",
@@ -1087,21 +1081,6 @@
       "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
       "dev": true
     },
-    "node_modules/nopt": {
-      "version": "1.0.10",
-      "resolved": "https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz",
-      "integrity": "sha512-NWmpvLSqUrgrAC9HCuxEvb+PSloHpqVu+FqcO4eeF2h5qYRhA7ev6KvelyQAKtegUbC6RypJnlEOhd8vloNKYg==",
-      "dev": true,
-      "dependencies": {
-        "abbrev": "1"
-      },
-      "bin": {
-        "nopt": "bin/nopt.js"
-      },
-      "engines": {
-        "node": "*"
-      }
-    },
     "node_modules/normalize-path": {
       "version": "3.0.0",
       "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
@@ -1164,12 +1143,12 @@
       }
     },
     "node_modules/prisma": {
-      "version": "5.13.0",
-      "resolved": "https://registry.npmjs.org/prisma/-/prisma-5.13.0.tgz",
-      "integrity": "sha512-kGtcJaElNRAdAGsCNykFSZ7dBKpL14Cbs+VaQ8cECxQlRPDjBlMHNFYeYt0SKovAVy2Y65JXQwB3A5+zIQwnTg==",
+      "version": "5.14.0",
+      "resolved": "https://registry.npmjs.org/prisma/-/prisma-5.14.0.tgz",
+      "integrity": "sha512-gCNZco7y5XtjrnQYeDJTiVZmT/ncqCr5RY1/Cf8X2wgLRmyh9ayPAGBNziI4qEE4S6SxCH5omQLVo9lmURaJ/Q==",
       "hasInstallScript": true,
       "dependencies": {
-        "@prisma/engines": "5.13.0"
+        "@prisma/engines": "5.14.0"
       },
       "bin": {
         "prisma": "build/index.js"
@@ -1514,13 +1493,10 @@
       }
     },
     "node_modules/touch": {
-      "version": "3.1.0",
-      "resolved": "https://registry.npmjs.org/touch/-/touch-3.1.0.tgz",
-      "integrity": "sha512-WBx8Uy5TLtOSRtIq+M03/sKDrXCLHxwDcquSP2c43Le03/9serjQBIztjRz6FkJez9D/hleyAXTBGLwwZUw9lA==",
+      "version": "3.1.1",
+      "resolved": "https://registry.npmjs.org/touch/-/touch-3.1.1.tgz",
+      "integrity": "sha512-r0eojU4bI8MnHr8c5bNo7lJDdI2qXlWWJk6a9EAFG7vbhTjElYhBVS3/miuE0uOuoLdb8Mc/rVfsmm6eo5o9GA==",
       "dev": true,
-      "dependencies": {
-        "nopt": "~1.0.10"
-      },
       "bin": {
         "nodetouch": "bin/nodetouch.js"
       }
diff --git a/src/app/events/character.zone.load.ts b/src/app/events/character.zone.load.ts
index 2e988f7..007b293 100644
--- a/src/app/events/character.zone.load.ts
+++ b/src/app/events/character.zone.load.ts
@@ -1,6 +1,7 @@
 import { Socket, Server } from "socket.io";
 import ZoneRepository from "../repositories/zone.repository";
 import ZoneManager from "../ZoneManager";
+import {Zone} from "@prisma/client";
 
 interface IZoneLoad {
     zoneId?: number;
@@ -19,11 +20,23 @@ export default function characterZoneLoad(socket: Socket, io: Server) {
 
         const zone = await ZoneRepository.getById(1);
 
-        // zoneManager.addCharacterToZone(1, socket.user.id)
+        if (!zone) {
+            console.log(`---Zone not found.`);
+            return;
+        }
 
-        io.to(socket.id).emit('character:zone:load', {
-            success: true,
-            data: zone
+        socket.join(zone.name);
+
+        const characters = await io.in(zone.name).fetchSockets();
+
+        // update to match with model Character
+
+        // send over zone and characters
+        io.in(zone.name).to(socket.id).emit('character:zone:load', {
+            zone: zone,
+            characters: characters.map(socket => ({
+                id: socket.id
+            })),
         });
     });
 }
\ No newline at end of file
diff --git a/src/app/events/character.zone.load_players.ts b/src/app/events/character.zone.load_players.ts
deleted file mode 100644
index b91b439..0000000
--- a/src/app/events/character.zone.load_players.ts
+++ /dev/null
@@ -1,25 +0,0 @@
-import { Socket, Server } from "socket.io";
-import ZoneRepository from "../repositories/zone.repository";
-import ZoneManager from "../ZoneManager";
-
-interface IZoneLoadPlayers {
-    zoneId: number;
-}
-
-/**
- * @TODO: Implement zone loading, check if zone id is given or else load current character zone
- *
- * Handle character zone load event
- * @param socket
- * @param io
- */
-export default function characterZoneLoad(socket: Socket, io: Server) {
-    socket.on('character:zone:load:players', async (data: IZoneLoadPlayers) => {
-        console.log(`---User ${socket.id} has requested zone players for zone.` + data.zoneId);
-
-        io.to(socket.id).emit('character:zone:load:players', {
-            success: true,
-            data: ZoneManager.getCharactersInZone(data.zoneId)
-        });
-    });
-}
\ No newline at end of file
diff --git a/src/app/interfaces/character.ts b/src/app/interfaces/character.ts
new file mode 100644
index 0000000..e69de29
diff --git a/src/app/services/user.service.ts b/src/app/services/user.service.ts
index 9d5d4f1..f405a7b 100644
--- a/src/app/services/user.service.ts
+++ b/src/app/services/user.service.ts
@@ -26,7 +26,7 @@ class UserService {
         const hashedPassword = await bcrypt.hash(password, 10);
         const newUser = await UserRepository.create(username, hashedPassword);
 
-        // @TODO: Create a new character for the user
+        // @TODO: Remove this logic from here and move it to the character creation part wherever that'll be
         const newCharacter = await CharacterRepository.create(newUser.id, newUser.username);
 
         return newUser