COMMAND REGISTRATION WORKS
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