diff --git a/src/utils/client.ts b/src/utils/client.ts
index 1795cfa..7d608c7 100644
--- a/src/utils/client.ts
+++ b/src/utils/client.ts
@@ -1,13 +1,39 @@
-// @ts-expect-error
-import { HaikuClient } from "jshaiku";
-import { Intents } from "discord.js";
-import config from "../config/main.json" assert { type: "json" };
+import { Client } from 'discord.js';
+import { Logger } from "../utils/log.js";
+import Memory from "../utils/memory.js";
+import type { VerifySchema } from "../reflex/verify.js";
+import { Guilds, History, ModNotes, Premium } from "../utils/database.js";
+import EventScheduler from "../utils/eventScheduler.js";
+import type { RoleMenuSchema } from "../actions/roleMenu.js";
 
-const client = new HaikuClient(
-    {
-        intents: new Intents(32767).bitfield // This is a way of specifying all intents w/o having to type them out
-    },
-    config
-);
+
+class NucleusClient extends Client {
+    logger = Logger;
+    verify: Record<string, VerifySchema> = {};
+    roleMenu: Record<string, RoleMenuSchema> = {};
+    memory: Memory = new Memory() as Memory;
+    noLog: string[] = [];
+    database: {
+        guilds: Guilds;
+        history: History;
+        notes: ModNotes;
+        premium: Premium;
+        eventScheduler: EventScheduler;
+    };
+
+    constructor(database: typeof NucleusClient.prototype.database) {
+        super({ intents: 32767 });
+        this.database = database;
+    }
+}
+
+const client = new NucleusClient({
+    guilds: new Guilds(),
+    history: new History(),
+    notes: new ModNotes(),
+    premium: new Premium(),
+    eventScheduler: new EventScheduler()
+});
 
 export default client;
+export { NucleusClient };
\ No newline at end of file
