diff --git a/COMMANDS/help.ts b/COMMANDS/help.ts
new file mode 100644
index 0000000..b326c90
--- /dev/null
+++ b/COMMANDS/help.ts
@@ -0,0 +1,19 @@
+import { CommandInteraction } from "discord.js";
+import { SlashCommandBuilder } from "@discordjs/builders";
+import { WrappedCheck } from "jshaiku";
+
+const command = new SlashCommandBuilder()
+    .setName("help")
+    .setDescription("Shows help for commands")
+
+const callback = (interaction: CommandInteraction) => {
+    interaction.reply("hel p");
+}
+
+const check = (interaction: CommandInteraction, defaultCheck: WrappedCheck) => {
+    return true;
+}
+
+export { command };
+export { callback };
+export { check };
\ No newline at end of file
diff --git a/COMMANDS/mod/_meta.ts b/COMMANDS/mod/_meta.ts
new file mode 100644
index 0000000..adfc5da
--- /dev/null
+++ b/COMMANDS/mod/_meta.ts
@@ -0,0 +1,4 @@
+const name = "mod";
+const description = "Perform mod actions";
+
+export { name, description };
\ No newline at end of file
diff --git a/src/commands/examplegroup/example.ts b/COMMANDS/mod/ban.ts
similarity index 71%
copy from src/commands/examplegroup/example.ts
copy to COMMANDS/mod/ban.ts
index cc1d031..cddc794 100644
--- a/src/commands/examplegroup/example.ts
+++ b/COMMANDS/mod/ban.ts
@@ -4,15 +4,15 @@
 
 const command = (builder: SlashCommandSubcommandBuilder) =>
     builder
-    .setName("examplesubcommand")
-    .setDescription("An example subcommand")
+    .setName("ban")
+    .setDescription("Bans a user from the server")
 
 const callback = (interaction: CommandInteraction) => {
-    interaction.reply("Hello, world!");
+    interaction.reply("Command incomplete [mod/ban]");
 }
 
 const check = (interaction: CommandInteraction, defaultCheck: WrappedCheck) => {
-    return interaction.user.id !== "123456789";
+    return true;
 }
 
 export { command };
diff --git a/src/commands/examplegroup/example.ts b/COMMANDS/mod/clear.ts
similarity index 71%
copy from src/commands/examplegroup/example.ts
copy to COMMANDS/mod/clear.ts
index cc1d031..78909a9 100644
--- a/src/commands/examplegroup/example.ts
+++ b/COMMANDS/mod/clear.ts
@@ -4,15 +4,15 @@
 
 const command = (builder: SlashCommandSubcommandBuilder) =>
     builder
-    .setName("examplesubcommand")
-    .setDescription("An example subcommand")
+    .setName("clear")
+    .setDescription("Clears a users messages in a channel")
 
 const callback = (interaction: CommandInteraction) => {
-    interaction.reply("Hello, world!");
+    interaction.reply("Command incomplete [mod/clear]");
 }
 
 const check = (interaction: CommandInteraction, defaultCheck: WrappedCheck) => {
-    return interaction.user.id !== "123456789";
+    return true;
 }
 
 export { command };
diff --git a/src/commands/examplegroup/example.ts b/COMMANDS/mod/kick.ts
similarity index 71%
rename from src/commands/examplegroup/example.ts
rename to COMMANDS/mod/kick.ts
index cc1d031..895f035 100644
--- a/src/commands/examplegroup/example.ts
+++ b/COMMANDS/mod/kick.ts
@@ -4,15 +4,15 @@
 
 const command = (builder: SlashCommandSubcommandBuilder) =>
     builder
-    .setName("examplesubcommand")
-    .setDescription("An example subcommand")
+    .setName("kick")
+    .setDescription("Clears a users messages in a channel")
 
 const callback = (interaction: CommandInteraction) => {
-    interaction.reply("Hello, world!");
+    interaction.reply("Command incomplete [mod/kick]");
 }
 
 const check = (interaction: CommandInteraction, defaultCheck: WrappedCheck) => {
-    return interaction.user.id !== "123456789";
+    return true;
 }
 
 export { command };
diff --git a/COMMANDS/mod/lock/_meta.ts b/COMMANDS/mod/lock/_meta.ts
new file mode 100644
index 0000000..73cc18e
--- /dev/null
+++ b/COMMANDS/mod/lock/_meta.ts
@@ -0,0 +1,4 @@
+const name = "lock";
+const description = "Quickly lock and unlock channels";
+
+export { name, description };
\ No newline at end of file
diff --git a/src/commands/examplegroup/example.ts b/COMMANDS/mod/lock/add.ts
similarity index 71%
copy from src/commands/examplegroup/example.ts
copy to COMMANDS/mod/lock/add.ts
index cc1d031..cb89b55 100644
--- a/src/commands/examplegroup/example.ts
+++ b/COMMANDS/mod/lock/add.ts
@@ -4,15 +4,15 @@
 
 const command = (builder: SlashCommandSubcommandBuilder) =>
     builder
-    .setName("examplesubcommand")
-    .setDescription("An example subcommand")
+    .setName("add")
+    .setDescription("Adds a lock to a channel")
 
 const callback = (interaction: CommandInteraction) => {
-    interaction.reply("Hello, world!");
+    interaction.reply("Command incomplete [mod/lock/add]");
 }
 
 const check = (interaction: CommandInteraction, defaultCheck: WrappedCheck) => {
-    return interaction.user.id !== "123456789";
+    return true;
 }
 
 export { command };
diff --git a/src/commands/examplegroup/example.ts b/COMMANDS/mod/lock/remove.ts
similarity index 71%
copy from src/commands/examplegroup/example.ts
copy to COMMANDS/mod/lock/remove.ts
index cc1d031..698bee9 100644
--- a/src/commands/examplegroup/example.ts
+++ b/COMMANDS/mod/lock/remove.ts
@@ -4,15 +4,15 @@
 
 const command = (builder: SlashCommandSubcommandBuilder) =>
     builder
-    .setName("examplesubcommand")
-    .setDescription("An example subcommand")
+    .setName("remove")
+    .setDescription("Removes a lock from a channel")
 
 const callback = (interaction: CommandInteraction) => {
-    interaction.reply("Hello, world!");
+    interaction.reply("Command incomplete [mod/lock/remove]");
 }
 
 const check = (interaction: CommandInteraction, defaultCheck: WrappedCheck) => {
-    return interaction.user.id !== "123456789";
+    return true;
 }
 
 export { command };
diff --git a/src/commands/examplegroup/example.ts b/COMMANDS/mod/purge.ts
similarity index 71%
copy from src/commands/examplegroup/example.ts
copy to COMMANDS/mod/purge.ts
index cc1d031..7c52b13 100644
--- a/src/commands/examplegroup/example.ts
+++ b/COMMANDS/mod/purge.ts
@@ -4,15 +4,15 @@
 
 const command = (builder: SlashCommandSubcommandBuilder) =>
     builder
-    .setName("examplesubcommand")
-    .setDescription("An example subcommand")
+    .setName("purge")
+    .setDescription("Clears messages in a channel")
 
 const callback = (interaction: CommandInteraction) => {
-    interaction.reply("Hello, world!");
+    interaction.reply("Command incomplete [mod/purge]");
 }
 
 const check = (interaction: CommandInteraction, defaultCheck: WrappedCheck) => {
-    return interaction.user.id !== "123456789";
+    return true;
 }
 
 export { command };
diff --git a/COMMANDS/mod/slowmode/_meta.ts b/COMMANDS/mod/slowmode/_meta.ts
new file mode 100644
index 0000000..4200b58
--- /dev/null
+++ b/COMMANDS/mod/slowmode/_meta.ts
@@ -0,0 +1,4 @@
+const name = "slowmode";
+const description = "Settings for slowmode in channels";
+
+export { name, description };
\ No newline at end of file
diff --git a/src/commands/examplegroup/example.ts b/COMMANDS/mod/slowmode/clear.ts
similarity index 71%
copy from src/commands/examplegroup/example.ts
copy to COMMANDS/mod/slowmode/clear.ts
index cc1d031..3b09dea 100644
--- a/src/commands/examplegroup/example.ts
+++ b/COMMANDS/mod/slowmode/clear.ts
@@ -4,15 +4,15 @@
 
 const command = (builder: SlashCommandSubcommandBuilder) =>
     builder
-    .setName("examplesubcommand")
-    .setDescription("An example subcommand")
+    .setName("clear")
+    .setDescription("Clears slowmode from a channel")
 
 const callback = (interaction: CommandInteraction) => {
-    interaction.reply("Hello, world!");
+    interaction.reply("Command incomplete [mod/slowmode/clear]");
 }
 
 const check = (interaction: CommandInteraction, defaultCheck: WrappedCheck) => {
-    return interaction.user.id !== "123456789";
+    return true;
 }
 
 export { command };
diff --git a/src/commands/examplegroup/example.ts b/COMMANDS/mod/slowmode/set.ts
similarity index 71%
copy from src/commands/examplegroup/example.ts
copy to COMMANDS/mod/slowmode/set.ts
index cc1d031..a2dd7ca 100644
--- a/src/commands/examplegroup/example.ts
+++ b/COMMANDS/mod/slowmode/set.ts
@@ -4,15 +4,15 @@
 
 const command = (builder: SlashCommandSubcommandBuilder) =>
     builder
-    .setName("examplesubcommand")
-    .setDescription("An example subcommand")
+    .setName("clear")
+    .setDescription("Sets slowmode in a channel")
 
 const callback = (interaction: CommandInteraction) => {
-    interaction.reply("Hello, world!");
+    interaction.reply("Command incomplete [mod/slowmode/set]");
 }
 
 const check = (interaction: CommandInteraction, defaultCheck: WrappedCheck) => {
-    return interaction.user.id !== "123456789";
+    return true;
 }
 
 export { command };
diff --git a/src/commands/examplegroup/example.ts b/COMMANDS/mod/slowmode/toggle.ts
similarity index 71%
copy from src/commands/examplegroup/example.ts
copy to COMMANDS/mod/slowmode/toggle.ts
index cc1d031..fc44f75 100644
--- a/src/commands/examplegroup/example.ts
+++ b/COMMANDS/mod/slowmode/toggle.ts
@@ -4,15 +4,15 @@
 
 const command = (builder: SlashCommandSubcommandBuilder) =>
     builder
-    .setName("examplesubcommand")
-    .setDescription("An example subcommand")
+    .setName("clear")
+    .setDescription("Toggles slowmode in a channel")
 
 const callback = (interaction: CommandInteraction) => {
-    interaction.reply("Hello, world!");
+    interaction.reply("Command incomplete [mod/slowmode/toggle]");
 }
 
 const check = (interaction: CommandInteraction, defaultCheck: WrappedCheck) => {
-    return interaction.user.id !== "123456789";
+    return true;
 }
 
 export { command };
diff --git a/src/commands/examplegroup/example.ts b/COMMANDS/mod/softban.ts
similarity index 71%
copy from src/commands/examplegroup/example.ts
copy to COMMANDS/mod/softban.ts
index cc1d031..19db3c2 100644
--- a/src/commands/examplegroup/example.ts
+++ b/COMMANDS/mod/softban.ts
@@ -4,15 +4,15 @@
 
 const command = (builder: SlashCommandSubcommandBuilder) =>
     builder
-    .setName("examplesubcommand")
-    .setDescription("An example subcommand")
+    .setName("softban")
+    .setDescription("Softbans a user")
 
 const callback = (interaction: CommandInteraction) => {
-    interaction.reply("Hello, world!");
+    interaction.reply("Command incomplete [mod/softban]");
 }
 
 const check = (interaction: CommandInteraction, defaultCheck: WrappedCheck) => {
-    return interaction.user.id !== "123456789";
+    return true;
 }
 
 export { command };
diff --git a/src/commands/examplegroup/example.ts b/COMMANDS/mod/unban.ts
similarity index 71%
copy from src/commands/examplegroup/example.ts
copy to COMMANDS/mod/unban.ts
index cc1d031..fe2133e 100644
--- a/src/commands/examplegroup/example.ts
+++ b/COMMANDS/mod/unban.ts
@@ -4,15 +4,15 @@
 
 const command = (builder: SlashCommandSubcommandBuilder) =>
     builder
-    .setName("examplesubcommand")
-    .setDescription("An example subcommand")
+    .setName("unban")
+    .setDescription("Unbans a user")
 
 const callback = (interaction: CommandInteraction) => {
-    interaction.reply("Hello, world!");
+    interaction.reply("Command incomplete [mod/unban]");
 }
 
 const check = (interaction: CommandInteraction, defaultCheck: WrappedCheck) => {
-    return interaction.user.id !== "123456789";
+    return true;
 }
 
 export { command };
diff --git a/src/commands/examplegroup/example.ts b/COMMANDS/mod/viewas.ts
similarity index 71%
copy from src/commands/examplegroup/example.ts
copy to COMMANDS/mod/viewas.ts
index cc1d031..fc5474f 100644
--- a/src/commands/examplegroup/example.ts
+++ b/COMMANDS/mod/viewas.ts
@@ -4,15 +4,14 @@
 
 const command = (builder: SlashCommandSubcommandBuilder) =>
     builder
-    .setName("examplesubcommand")
-    .setDescription("An example subcommand")
+    .setDescription("View the server as a specific member")
 
 const callback = (interaction: CommandInteraction) => {
-    interaction.reply("Hello, world!");
+    interaction.reply("Command incomplete [mod/viewas]");
 }
 
 const check = (interaction: CommandInteraction, defaultCheck: WrappedCheck) => {
-    return interaction.user.id !== "123456789";
+    return true;
 }
 
 export { command };
diff --git a/src/commands/examplegroup/example.ts b/COMMANDS/mod/warn.ts
similarity index 71%
copy from src/commands/examplegroup/example.ts
copy to COMMANDS/mod/warn.ts
index cc1d031..f050ef2 100644
--- a/src/commands/examplegroup/example.ts
+++ b/COMMANDS/mod/warn.ts
@@ -4,15 +4,15 @@
 
 const command = (builder: SlashCommandSubcommandBuilder) =>
     builder
-    .setName("examplesubcommand")
-    .setDescription("An example subcommand")
+    .setName("warn")
+    .setDescription("Warns a user")
 
 const callback = (interaction: CommandInteraction) => {
-    interaction.reply("Hello, world!");
+    interaction.reply("Command incomplete [mod/warn]");
 }
 
 const check = (interaction: CommandInteraction, defaultCheck: WrappedCheck) => {
-    return interaction.user.id !== "123456789";
+    return true;
 }
 
 export { command };
diff --git a/COMMANDS/nucleus/_meta.ts b/COMMANDS/nucleus/_meta.ts
new file mode 100644
index 0000000..df978ba
--- /dev/null
+++ b/COMMANDS/nucleus/_meta.ts
@@ -0,0 +1,4 @@
+const name = "nucleus";
+const description = "Commands relating to Nucleus itself";
+
+export { name, description };
\ No newline at end of file
diff --git a/src/commands/examplegroup/example.ts b/COMMANDS/nucleus/ping.ts
similarity index 71%
copy from src/commands/examplegroup/example.ts
copy to COMMANDS/nucleus/ping.ts
index cc1d031..43a5fd7 100644
--- a/src/commands/examplegroup/example.ts
+++ b/COMMANDS/nucleus/ping.ts
@@ -4,15 +4,15 @@
 
 const command = (builder: SlashCommandSubcommandBuilder) =>
     builder
-    .setName("examplesubcommand")
-    .setDescription("An example subcommand")
+    .setName("ping")
+    .setDescription("Gets the bot's ping time")
 
 const callback = (interaction: CommandInteraction) => {
-    interaction.reply("Hello, world!");
+    interaction.reply("Command incomplete [nucleus/ping]");
 }
 
 const check = (interaction: CommandInteraction, defaultCheck: WrappedCheck) => {
-    return interaction.user.id !== "123456789";
+    return true;
 }
 
 export { command };
diff --git a/src/commands/examplegroup/example.ts b/COMMANDS/nucleus/stats.ts
similarity index 71%
copy from src/commands/examplegroup/example.ts
copy to COMMANDS/nucleus/stats.ts
index cc1d031..7f468fa 100644
--- a/src/commands/examplegroup/example.ts
+++ b/COMMANDS/nucleus/stats.ts
@@ -4,15 +4,15 @@
 
 const command = (builder: SlashCommandSubcommandBuilder) =>
     builder
-    .setName("examplesubcommand")
-    .setDescription("An example subcommand")
+    .setName("stats")
+    .setDescription("Gets the bot's statse")
 
 const callback = (interaction: CommandInteraction) => {
-    interaction.reply("Hello, world!");
+    interaction.reply("Command incomplete [nucleus/stats]");
 }
 
 const check = (interaction: CommandInteraction, defaultCheck: WrappedCheck) => {
-    return interaction.user.id !== "123456789";
+    return true;
 }
 
 export { command };
diff --git a/src/commands/examplegroup/example.ts b/COMMANDS/nucleus/suggest.ts
similarity index 71%
copy from src/commands/examplegroup/example.ts
copy to COMMANDS/nucleus/suggest.ts
index cc1d031..e76d49f 100644
--- a/src/commands/examplegroup/example.ts
+++ b/COMMANDS/nucleus/suggest.ts
@@ -4,15 +4,15 @@
 
 const command = (builder: SlashCommandSubcommandBuilder) =>
     builder
-    .setName("examplesubcommand")
-    .setDescription("An example subcommand")
+    .setName("suggest")
+    .setDescription("Sends a suggestion to the developers")
 
 const callback = (interaction: CommandInteraction) => {
-    interaction.reply("Hello, world!");
+    interaction.reply("Command incomplete [nucleus/suggest]");
 }
 
 const check = (interaction: CommandInteraction, defaultCheck: WrappedCheck) => {
-    return interaction.user.id !== "123456789";
+    return true;
 }
 
 export { command };
diff --git a/COMMANDS/privacy.ts b/COMMANDS/privacy.ts
new file mode 100644
index 0000000..dc97370
--- /dev/null
+++ b/COMMANDS/privacy.ts
@@ -0,0 +1,19 @@
+import { CommandInteraction } from "discord.js";
+import { SlashCommandBuilder } from "@discordjs/builders";
+import { WrappedCheck } from "jshaiku";
+
+const command = new SlashCommandBuilder()
+    .setName("privacy")
+    .setDescription("Shows info about Nucleus' privacy options")
+
+const callback = (interaction: CommandInteraction) => {
+    interaction.reply("Command incomplete [privacy]");
+}
+
+const check = (interaction: CommandInteraction, defaultCheck: WrappedCheck) => {
+    return true;
+}
+
+export { command };
+export { callback };
+export { check };
\ No newline at end of file
diff --git a/COMMANDS/role/_meta.ts b/COMMANDS/role/_meta.ts
new file mode 100644
index 0000000..408576f
--- /dev/null
+++ b/COMMANDS/role/_meta.ts
@@ -0,0 +1,4 @@
+const name = "role";
+const description = "Change roles for users";
+
+export { name, description };
\ No newline at end of file
diff --git a/src/commands/examplegroup/example.ts b/COMMANDS/role/add.ts
similarity index 71%
copy from src/commands/examplegroup/example.ts
copy to COMMANDS/role/add.ts
index cc1d031..6fa80a2 100644
--- a/src/commands/examplegroup/example.ts
+++ b/COMMANDS/role/add.ts
@@ -4,15 +4,15 @@
 
 const command = (builder: SlashCommandSubcommandBuilder) =>
     builder
-    .setName("examplesubcommand")
-    .setDescription("An example subcommand")
+    .setName("add")
+    .setDescription("Adds a role to someone")
 
 const callback = (interaction: CommandInteraction) => {
-    interaction.reply("Hello, world!");
+    interaction.reply("Command incomplete [role/add]");
 }
 
 const check = (interaction: CommandInteraction, defaultCheck: WrappedCheck) => {
-    return interaction.user.id !== "123456789";
+    return true;
 }
 
 export { command };
diff --git a/COMMANDS/role/all/_meta.ts b/COMMANDS/role/all/_meta.ts
new file mode 100644
index 0000000..4db116a
--- /dev/null
+++ b/COMMANDS/role/all/_meta.ts
@@ -0,0 +1,4 @@
+const name = "all";
+const description = "Role all users";
+
+export { name, description };
\ No newline at end of file
diff --git a/src/commands/examplegroup/example.ts b/COMMANDS/role/all/add.ts
similarity index 71%
copy from src/commands/examplegroup/example.ts
copy to COMMANDS/role/all/add.ts
index cc1d031..18ab380 100644
--- a/src/commands/examplegroup/example.ts
+++ b/COMMANDS/role/all/add.ts
@@ -4,15 +4,15 @@
 
 const command = (builder: SlashCommandSubcommandBuilder) =>
     builder
-    .setName("examplesubcommand")
-    .setDescription("An example subcommand")
+    .setName("add")
+    .setDescription("Adds a role to everyone")
 
 const callback = (interaction: CommandInteraction) => {
-    interaction.reply("Hello, world!");
+    interaction.reply("Command incomplete [role/all/add]");
 }
 
 const check = (interaction: CommandInteraction, defaultCheck: WrappedCheck) => {
-    return interaction.user.id !== "123456789";
+    return true;
 }
 
 export { command };
diff --git a/src/commands/examplegroup/example.ts b/COMMANDS/role/all/remove.ts
similarity index 71%
copy from src/commands/examplegroup/example.ts
copy to COMMANDS/role/all/remove.ts
index cc1d031..414bfd6 100644
--- a/src/commands/examplegroup/example.ts
+++ b/COMMANDS/role/all/remove.ts
@@ -4,15 +4,15 @@
 
 const command = (builder: SlashCommandSubcommandBuilder) =>
     builder
-    .setName("examplesubcommand")
-    .setDescription("An example subcommand")
+    .setName("add")
+    .setDescription("removes a role from everyone")
 
 const callback = (interaction: CommandInteraction) => {
-    interaction.reply("Hello, world!");
+    interaction.reply("Command incomplete [role/all/remove]");
 }
 
 const check = (interaction: CommandInteraction, defaultCheck: WrappedCheck) => {
-    return interaction.user.id !== "123456789";
+    return true;
 }
 
 export { command };
diff --git a/src/commands/examplegroup/example.ts b/COMMANDS/role/all/toggle.ts
similarity index 68%
copy from src/commands/examplegroup/example.ts
copy to COMMANDS/role/all/toggle.ts
index cc1d031..9b2f3e3 100644
--- a/src/commands/examplegroup/example.ts
+++ b/COMMANDS/role/all/toggle.ts
@@ -4,15 +4,15 @@
 
 const command = (builder: SlashCommandSubcommandBuilder) =>
     builder
-    .setName("examplesubcommand")
-    .setDescription("An example subcommand")
+    .setName("toggle")
+    .setDescription("Adds a role to everyone if they don't have it, removes it if they do")
 
 const callback = (interaction: CommandInteraction) => {
-    interaction.reply("Hello, world!");
+    interaction.reply("Command incomplete [role/all/toggle]");
 }
 
 const check = (interaction: CommandInteraction, defaultCheck: WrappedCheck) => {
-    return interaction.user.id !== "123456789";
+    return true;
 }
 
 export { command };
diff --git a/src/commands/examplegroup/example.ts b/COMMANDS/role/info.ts
similarity index 71%
copy from src/commands/examplegroup/example.ts
copy to COMMANDS/role/info.ts
index cc1d031..d5874bd 100644
--- a/src/commands/examplegroup/example.ts
+++ b/COMMANDS/role/info.ts
@@ -4,15 +4,15 @@
 
 const command = (builder: SlashCommandSubcommandBuilder) =>
     builder
-    .setName("examplesubcommand")
-    .setDescription("An example subcommand")
+    .setName("info")
+    .setDescription("Gets info about a role")
 
 const callback = (interaction: CommandInteraction) => {
-    interaction.reply("Hello, world!");
+    interaction.reply("Command incomplete [role/info]");
 }
 
 const check = (interaction: CommandInteraction, defaultCheck: WrappedCheck) => {
-    return interaction.user.id !== "123456789";
+    return true;
 }
 
 export { command };
diff --git a/src/commands/examplegroup/example.ts b/COMMANDS/role/remove.ts
similarity index 71%
copy from src/commands/examplegroup/example.ts
copy to COMMANDS/role/remove.ts
index cc1d031..c5f44cb 100644
--- a/src/commands/examplegroup/example.ts
+++ b/COMMANDS/role/remove.ts
@@ -4,15 +4,15 @@
 
 const command = (builder: SlashCommandSubcommandBuilder) =>
     builder
-    .setName("examplesubcommand")
-    .setDescription("An example subcommand")
+    .setName("remove")
+    .setDescription("Removes a role from someone")
 
 const callback = (interaction: CommandInteraction) => {
-    interaction.reply("Hello, world!");
+    interaction.reply("Command incomplete [role/remove]");
 }
 
 const check = (interaction: CommandInteraction, defaultCheck: WrappedCheck) => {
-    return interaction.user.id !== "123456789";
+    return true;
 }
 
 export { command };
diff --git a/COMMANDS/settings/_meta.ts b/COMMANDS/settings/_meta.ts
new file mode 100644
index 0000000..63d726e
--- /dev/null
+++ b/COMMANDS/settings/_meta.ts
@@ -0,0 +1,4 @@
+const name = "settings";
+const description = "Change bot settings";
+
+export { name, description };
\ No newline at end of file
diff --git a/src/commands/examplegroup/example.ts b/COMMANDS/settings/all.ts
similarity index 71%
copy from src/commands/examplegroup/example.ts
copy to COMMANDS/settings/all.ts
index cc1d031..0f17545 100644
--- a/src/commands/examplegroup/example.ts
+++ b/COMMANDS/settings/all.ts
@@ -4,15 +4,15 @@
 
 const command = (builder: SlashCommandSubcommandBuilder) =>
     builder
-    .setName("examplesubcommand")
-    .setDescription("An example subcommand")
+    .setName("all")
+    .setDescription("Shows a full UI of all settings")
 
 const callback = (interaction: CommandInteraction) => {
-    interaction.reply("Hello, world!");
+    interaction.reply("Command incomplete [settings/all]");
 }
 
 const check = (interaction: CommandInteraction, defaultCheck: WrappedCheck) => {
-    return interaction.user.id !== "123456789";
+    return true;
 }
 
 export { command };
diff --git a/src/commands/examplegroup/example.ts b/COMMANDS/settings/automation.ts
similarity index 71%
copy from src/commands/examplegroup/example.ts
copy to COMMANDS/settings/automation.ts
index cc1d031..3874f7f 100644
--- a/src/commands/examplegroup/example.ts
+++ b/COMMANDS/settings/automation.ts
@@ -4,15 +4,15 @@
 
 const command = (builder: SlashCommandSubcommandBuilder) =>
     builder
-    .setName("examplesubcommand")
-    .setDescription("An example subcommand")
+    .setName("automation")
+    .setDescription("Shows all automation options")
 
 const callback = (interaction: CommandInteraction) => {
-    interaction.reply("Hello, world!");
+    interaction.reply("Command incomplete [settings/automation]");
 }
 
 const check = (interaction: CommandInteraction, defaultCheck: WrappedCheck) => {
-    return interaction.user.id !== "123456789";
+    return true;
 }
 
 export { command };
diff --git a/COMMANDS/settings/log/_meta.ts b/COMMANDS/settings/log/_meta.ts
new file mode 100644
index 0000000..15a6fd4
--- /dev/null
+++ b/COMMANDS/settings/log/_meta.ts
@@ -0,0 +1,4 @@
+const name = "log";
+const description = "Settings for logging";
+
+export { name, description };
\ No newline at end of file
diff --git a/src/commands/examplegroup/example.ts b/COMMANDS/settings/log/channel.ts
similarity index 71%
copy from src/commands/examplegroup/example.ts
copy to COMMANDS/settings/log/channel.ts
index cc1d031..af570a7 100644
--- a/src/commands/examplegroup/example.ts
+++ b/COMMANDS/settings/log/channel.ts
@@ -4,15 +4,15 @@
 
 const command = (builder: SlashCommandSubcommandBuilder) =>
     builder
-    .setName("examplesubcommand")
-    .setDescription("An example subcommand")
+    .setName("channel")
+    .setDescription("Sets the log channel")
 
 const callback = (interaction: CommandInteraction) => {
-    interaction.reply("Hello, world!");
+    interaction.reply("Command incomplete [settings/log/channel]");
 }
 
 const check = (interaction: CommandInteraction, defaultCheck: WrappedCheck) => {
-    return interaction.user.id !== "123456789";
+    return true;
 }
 
 export { command };
diff --git a/src/commands/examplegroup/example.ts b/COMMANDS/settings/log/events.ts
similarity index 71%
copy from src/commands/examplegroup/example.ts
copy to COMMANDS/settings/log/events.ts
index cc1d031..4f4c9bd 100644
--- a/src/commands/examplegroup/example.ts
+++ b/COMMANDS/settings/log/events.ts
@@ -4,15 +4,15 @@
 
 const command = (builder: SlashCommandSubcommandBuilder) =>
     builder
-    .setName("examplesubcommand")
-    .setDescription("An example subcommand")
+    .setName("events")
+    .setDescription("Sets what events should be logged")
 
 const callback = (interaction: CommandInteraction) => {
-    interaction.reply("Hello, world!");
+    interaction.reply("Command incomplete [settings/log/events]");
 }
 
 const check = (interaction: CommandInteraction, defaultCheck: WrappedCheck) => {
-    return interaction.user.id !== "123456789";
+    return true;
 }
 
 export { command };
diff --git a/src/commands/examplegroup/example.ts b/COMMANDS/settings/log/ignore.ts
similarity index 69%
copy from src/commands/examplegroup/example.ts
copy to COMMANDS/settings/log/ignore.ts
index cc1d031..eea7048 100644
--- a/src/commands/examplegroup/example.ts
+++ b/COMMANDS/settings/log/ignore.ts
@@ -4,15 +4,15 @@
 
 const command = (builder: SlashCommandSubcommandBuilder) =>
     builder
-    .setName("examplesubcommand")
-    .setDescription("An example subcommand")
+    .setName("ignore")
+    .setDescription("Sets which users, channels and roles should be ignored")
 
 const callback = (interaction: CommandInteraction) => {
-    interaction.reply("Hello, world!");
+    interaction.reply("Command incomplete [settings/log/ignore]");
 }
 
 const check = (interaction: CommandInteraction, defaultCheck: WrappedCheck) => {
-    return interaction.user.id !== "123456789";
+    return true;
 }
 
 export { command };
diff --git a/src/commands/examplegroup/example.ts b/COMMANDS/settings/log/ignored.ts
similarity index 70%
copy from src/commands/examplegroup/example.ts
copy to COMMANDS/settings/log/ignored.ts
index cc1d031..df5f7b6 100644
--- a/src/commands/examplegroup/example.ts
+++ b/COMMANDS/settings/log/ignored.ts
@@ -4,15 +4,15 @@
 
 const command = (builder: SlashCommandSubcommandBuilder) =>
     builder
-    .setName("examplesubcommand")
-    .setDescription("An example subcommand")
+    .setName("ignored")
+    .setDescription("Gets the ignored users, channels and roles")
 
 const callback = (interaction: CommandInteraction) => {
-    interaction.reply("Hello, world!");
+    interaction.reply("Command incomplete [settings/log/ignored]");
 }
 
 const check = (interaction: CommandInteraction, defaultCheck: WrappedCheck) => {
-    return interaction.user.id !== "123456789";
+    return true;
 }
 
 export { command };
diff --git a/COMMANDS/settings/mod/_meta.ts b/COMMANDS/settings/mod/_meta.ts
new file mode 100644
index 0000000..713bb48
--- /dev/null
+++ b/COMMANDS/settings/mod/_meta.ts
@@ -0,0 +1,4 @@
+const name = "announcements";
+const description = "Settings for mod messages";
+
+export { name, description };
\ No newline at end of file
diff --git a/src/commands/examplegroup/example.ts b/COMMANDS/settings/mod/channel.ts
similarity index 70%
copy from src/commands/examplegroup/example.ts
copy to COMMANDS/settings/mod/channel.ts
index cc1d031..16230ba 100644
--- a/src/commands/examplegroup/example.ts
+++ b/COMMANDS/settings/mod/channel.ts
@@ -4,15 +4,15 @@
 
 const command = (builder: SlashCommandSubcommandBuilder) =>
     builder
-    .setName("examplesubcommand")
-    .setDescription("An example subcommand")
+    .setName("channel")
+    .setDescription("Sets the channel for staff messages to go to")
 
 const callback = (interaction: CommandInteraction) => {
-    interaction.reply("Hello, world!");
+    interaction.reply("Command incomplete [settings/mod/channel]");
 }
 
 const check = (interaction: CommandInteraction, defaultCheck: WrappedCheck) => {
-    return interaction.user.id !== "123456789";
+    return true;
 }
 
 export { command };
diff --git a/src/commands/examplegroup/example.ts b/COMMANDS/settings/mod/events.ts
similarity index 70%
copy from src/commands/examplegroup/example.ts
copy to COMMANDS/settings/mod/events.ts
index cc1d031..3dc5e99 100644
--- a/src/commands/examplegroup/example.ts
+++ b/COMMANDS/settings/mod/events.ts
@@ -4,15 +4,15 @@
 
 const command = (builder: SlashCommandSubcommandBuilder) =>
     builder
-    .setName("examplesubcommand")
-    .setDescription("An example subcommand")
+    .setName("events")
+    .setDescription("Sets which events mods should be notified about")
 
 const callback = (interaction: CommandInteraction) => {
-    interaction.reply("Hello, world!");
+    interaction.reply("Command incomplete [settings/mod/events]");
 }
 
 const check = (interaction: CommandInteraction, defaultCheck: WrappedCheck) => {
-    return interaction.user.id !== "123456789";
+    return true;
 }
 
 export { command };
diff --git a/src/commands/examplegroup/example.ts b/COMMANDS/settings/tickets.ts
similarity index 71%
copy from src/commands/examplegroup/example.ts
copy to COMMANDS/settings/tickets.ts
index cc1d031..33e1586 100644
--- a/src/commands/examplegroup/example.ts
+++ b/COMMANDS/settings/tickets.ts
@@ -4,15 +4,15 @@
 
 const command = (builder: SlashCommandSubcommandBuilder) =>
     builder
-    .setName("examplesubcommand")
-    .setDescription("An example subcommand")
+    .setName("tickets")
+    .setDescription("Shows settings for tickets")
 
 const callback = (interaction: CommandInteraction) => {
-    interaction.reply("Hello, world!");
+    interaction.reply("Command incomplete [settings/tickets]");
 }
 
 const check = (interaction: CommandInteraction, defaultCheck: WrappedCheck) => {
-    return interaction.user.id !== "123456789";
+    return true;
 }
 
 export { command };
diff --git a/COMMANDS/settings/verify/_meta.ts b/COMMANDS/settings/verify/_meta.ts
new file mode 100644
index 0000000..999c50b
--- /dev/null
+++ b/COMMANDS/settings/verify/_meta.ts
@@ -0,0 +1,4 @@
+const name = "verify";
+const description = "Settings for verification";
+
+export { name, description };
\ No newline at end of file
diff --git a/src/commands/examplegroup/example.ts b/COMMANDS/settings/verify/channel.ts
similarity index 71%
copy from src/commands/examplegroup/example.ts
copy to COMMANDS/settings/verify/channel.ts
index cc1d031..ad881c2 100644
--- a/src/commands/examplegroup/example.ts
+++ b/COMMANDS/settings/verify/channel.ts
@@ -4,15 +4,15 @@
 
 const command = (builder: SlashCommandSubcommandBuilder) =>
     builder
-    .setName("examplesubcommand")
-    .setDescription("An example subcommand")
+    .setName("channel")
+    .setDescription("Sets the verify channel")
 
 const callback = (interaction: CommandInteraction) => {
-    interaction.reply("Hello, world!");
+    interaction.reply("Command incomplete [settings/verify/channel]");
 }
 
 const check = (interaction: CommandInteraction, defaultCheck: WrappedCheck) => {
-    return interaction.user.id !== "123456789";
+    return true;
 }
 
 export { command };
diff --git a/src/commands/examplegroup/example.ts b/COMMANDS/settings/verify/role.ts
similarity index 71%
copy from src/commands/examplegroup/example.ts
copy to COMMANDS/settings/verify/role.ts
index cc1d031..3082c71 100644
--- a/src/commands/examplegroup/example.ts
+++ b/COMMANDS/settings/verify/role.ts
@@ -4,15 +4,15 @@
 
 const command = (builder: SlashCommandSubcommandBuilder) =>
     builder
-    .setName("examplesubcommand")
-    .setDescription("An example subcommand")
+    .setName("role")
+    .setDescription("Sets the role given after verifying")
 
 const callback = (interaction: CommandInteraction) => {
-    interaction.reply("Hello, world!");
+    interaction.reply("Command incomplete [settings/verify/role]");
 }
 
 const check = (interaction: CommandInteraction, defaultCheck: WrappedCheck) => {
-    return interaction.user.id !== "123456789";
+    return true;
 }
 
 export { command };
diff --git a/COMMANDS/tag.ts b/COMMANDS/tag.ts
new file mode 100644
index 0000000..d716670
--- /dev/null
+++ b/COMMANDS/tag.ts
@@ -0,0 +1,19 @@
+import { CommandInteraction } from "discord.js";
+import { SlashCommandBuilder } from "@discordjs/builders";
+import { WrappedCheck } from "jshaiku";
+
+const command = new SlashCommandBuilder()
+    .setName("tag")
+    .setDescription("Manage or get a tag")
+
+const callback = (interaction: CommandInteraction) => {
+    interaction.reply("Command incomplete [tag]");
+}
+
+const check = (interaction: CommandInteraction, defaultCheck: WrappedCheck) => {
+    return true;
+}
+
+export { command };
+export { callback };
+export { check };
\ No newline at end of file
diff --git a/COMMANDS/ticket/_meta.ts b/COMMANDS/ticket/_meta.ts
new file mode 100644
index 0000000..8c21466
--- /dev/null
+++ b/COMMANDS/ticket/_meta.ts
@@ -0,0 +1,4 @@
+const name = "ticket";
+const description = "Manage modmail tickets";
+
+export { name, description };
\ No newline at end of file
diff --git a/src/commands/examplegroup/example.ts b/COMMANDS/ticket/close.ts
similarity index 71%
copy from src/commands/examplegroup/example.ts
copy to COMMANDS/ticket/close.ts
index cc1d031..1e0856d 100644
--- a/src/commands/examplegroup/example.ts
+++ b/COMMANDS/ticket/close.ts
@@ -4,15 +4,15 @@
 
 const command = (builder: SlashCommandSubcommandBuilder) =>
     builder
-    .setName("examplesubcommand")
-    .setDescription("An example subcommand")
+    .setName("close")
+    .setDescription("Closes a ticket")
 
 const callback = (interaction: CommandInteraction) => {
-    interaction.reply("Hello, world!");
+    interaction.reply("Command incomplete [ticket/close]");
 }
 
 const check = (interaction: CommandInteraction, defaultCheck: WrappedCheck) => {
-    return interaction.user.id !== "123456789";
+    return true;
 }
 
 export { command };
diff --git a/src/commands/examplegroup/example.ts b/COMMANDS/ticket/create.ts
similarity index 71%
copy from src/commands/examplegroup/example.ts
copy to COMMANDS/ticket/create.ts
index cc1d031..6f45cc2 100644
--- a/src/commands/examplegroup/example.ts
+++ b/COMMANDS/ticket/create.ts
@@ -4,15 +4,15 @@
 
 const command = (builder: SlashCommandSubcommandBuilder) =>
     builder
-    .setName("examplesubcommand")
-    .setDescription("An example subcommand")
+    .setName("create")
+    .setDescription("Creates a new modmail ticket")
 
 const callback = (interaction: CommandInteraction) => {
-    interaction.reply("Hello, world!");
+    interaction.reply("Command incomplete [ticket/create]");
 }
 
 const check = (interaction: CommandInteraction, defaultCheck: WrappedCheck) => {
-    return interaction.user.id !== "123456789";
+    return true;
 }
 
 export { command };
diff --git a/src/commands/examplegroup/example.ts b/COMMANDS/ticket/delete.ts
similarity index 71%
copy from src/commands/examplegroup/example.ts
copy to COMMANDS/ticket/delete.ts
index cc1d031..587ecf4 100644
--- a/src/commands/examplegroup/example.ts
+++ b/COMMANDS/ticket/delete.ts
@@ -4,15 +4,15 @@
 
 const command = (builder: SlashCommandSubcommandBuilder) =>
     builder
-    .setName("examplesubcommand")
-    .setDescription("An example subcommand")
+    .setName("delete")
+    .setDescription("Deletes a ticket")
 
 const callback = (interaction: CommandInteraction) => {
-    interaction.reply("Hello, world!");
+    interaction.reply("Command incomplete [ticket/delete]");
 }
 
 const check = (interaction: CommandInteraction, defaultCheck: WrappedCheck) => {
-    return interaction.user.id !== "123456789";
+    return true;
 }
 
 export { command };
diff --git a/COMMANDS/user/_meta.ts b/COMMANDS/user/_meta.ts
new file mode 100644
index 0000000..6c14052
--- /dev/null
+++ b/COMMANDS/user/_meta.ts
@@ -0,0 +1,4 @@
+const name = "user";
+const description = "Commands for user info";
+
+export { name, description };
\ No newline at end of file
diff --git a/src/commands/examplegroup/example.ts b/COMMANDS/user/about.ts
similarity index 71%
copy from src/commands/examplegroup/example.ts
copy to COMMANDS/user/about.ts
index cc1d031..9015c13 100644
--- a/src/commands/examplegroup/example.ts
+++ b/COMMANDS/user/about.ts
@@ -4,15 +4,15 @@
 
 const command = (builder: SlashCommandSubcommandBuilder) =>
     builder
-    .setName("examplesubcommand")
-    .setDescription("An example subcommand")
+    .setName("about")
+    .setDescription("Shows info about a user")
 
 const callback = (interaction: CommandInteraction) => {
-    interaction.reply("Hello, world!");
+    interaction.reply("Command incomplete [user/about]");
 }
 
 const check = (interaction: CommandInteraction, defaultCheck: WrappedCheck) => {
-    return interaction.user.id !== "123456789";
+    return true;
 }
 
 export { command };
diff --git a/src/commands/examplegroup/example.ts b/COMMANDS/user/avatar.ts
similarity index 71%
copy from src/commands/examplegroup/example.ts
copy to COMMANDS/user/avatar.ts
index cc1d031..9e22d0c 100644
--- a/src/commands/examplegroup/example.ts
+++ b/COMMANDS/user/avatar.ts
@@ -4,15 +4,15 @@
 
 const command = (builder: SlashCommandSubcommandBuilder) =>
     builder
-    .setName("examplesubcommand")
-    .setDescription("An example subcommand")
+    .setName("avatar")
+    .setDescription("Shows a users avatar")
 
 const callback = (interaction: CommandInteraction) => {
-    interaction.reply("Hello, world!");
+    interaction.reply("Command incomplete [user/avatar]");
 }
 
 const check = (interaction: CommandInteraction, defaultCheck: WrappedCheck) => {
-    return interaction.user.id !== "123456789";
+    return true;
 }
 
 export { command };
diff --git a/COMMANDS/verify.ts b/COMMANDS/verify.ts
new file mode 100644
index 0000000..bb93dde
--- /dev/null
+++ b/COMMANDS/verify.ts
@@ -0,0 +1,19 @@
+import { CommandInteraction } from "discord.js";
+import { SlashCommandBuilder } from "@discordjs/builders";
+import { WrappedCheck } from "jshaiku";
+
+const command = new SlashCommandBuilder()
+    .setName("verify")
+    .setDescription("Get verified in the server")
+
+const callback = (interaction: CommandInteraction) => {
+    interaction.reply("Command incomplete [verify]");
+}
+
+const check = (interaction: CommandInteraction, defaultCheck: WrappedCheck) => {
+    return true;
+}
+
+export { command };
+export { callback };
+export { check };
\ No newline at end of file
diff --git a/package-lock.json b/package-lock.json
index 31dfec9..ab6e74c 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -11,12 +11,37 @@
       "dependencies": {
         "@discordjs/builders": "^0.12.0",
         "discord.js": "^13.6.0",
-        "jshaiku": "file:../../WebstormProjects/haiku",
+        "jshaiku": "file:../haiku",
         "typescript": "^4.5.5"
       }
     },
     "../../WebstormProjects/haiku": {
       "version": "1.0.0",
+      "extraneous": true,
+      "license": "AGPL-3.0",
+      "dependencies": {
+        "@discordjs/builders": "^0.11.0",
+        "@discordjs/rest": "^0.2.0-canary.0",
+        "@types/node-cron": "^3.0.1",
+        "ansi-styles": "^6.1.0",
+        "chalk": "^5.0.0",
+        "discord-api-types": "^0.26.1",
+        "discord.js": "^13.5.1",
+        "node-cron": "^3.0.0"
+      },
+      "devDependencies": {
+        "@babel/core": "^7.16.7",
+        "@babel/preset-env": "^7.16.8",
+        "@babel/preset-typescript": "^7.16.7",
+        "@types/jest": "^27.4.0",
+        "babel-jest": "^27.4.6",
+        "jest": "^27.4.7",
+        "ts-node": "^10.4.0",
+        "typescript": "4.5.4"
+      }
+    },
+    "../haiku": {
+      "version": "1.0.0",
       "license": "AGPL-3.0",
       "dependencies": {
         "@discordjs/builders": "^0.11.0",
@@ -201,7 +226,7 @@
       }
     },
     "node_modules/jshaiku": {
-      "resolved": "../../WebstormProjects/haiku",
+      "resolved": "../haiku",
       "link": true
     },
     "node_modules/mime-db": {
@@ -438,7 +463,7 @@
       }
     },
     "jshaiku": {
-      "version": "file:../../WebstormProjects/haiku",
+      "version": "file:../haiku",
       "requires": {
         "@babel/core": "^7.16.7",
         "@babel/preset-env": "^7.16.8",
diff --git a/package.json b/package.json
index 45019ad..b5b9798 100644
--- a/package.json
+++ b/package.json
@@ -2,7 +2,7 @@
   "dependencies": {
     "@discordjs/builders": "^0.12.0",
     "discord.js": "^13.6.0",
-    "jshaiku": "file:../../WebstormProjects/haiku",
+    "jshaiku": "file:../haiku",
     "typescript": "^4.5.5"
   },
   "name": "nucleus",
diff --git a/src/commands/examplegroup/groupscanhavegroups/_meta.ts b/src/commands/examplegroup/groupscanhavegroups/_meta.ts
deleted file mode 100644
index 0b07053..0000000
--- a/src/commands/examplegroup/groupscanhavegroups/_meta.ts
+++ /dev/null
@@ -1,4 +0,0 @@
-const name = "examplesubgroup";
-const description = "This is an example subgroup with a meta file";
-
-export { name, description };
\ No newline at end of file
diff --git a/src/commands/examplegroup/groupscanhavegroups/example.ts b/src/commands/examplegroup/groupscanhavegroups/example.ts
deleted file mode 100644
index cc1d031..0000000
--- a/src/commands/examplegroup/groupscanhavegroups/example.ts
+++ /dev/null
@@ -1,20 +0,0 @@
-import { CommandInteraction } from "discord.js";
-import { SlashCommandSubcommandBuilder } from "@discordjs/builders";
-import { WrappedCheck } from "jshaiku";
-
-const command = (builder: SlashCommandSubcommandBuilder) =>
-    builder
-    .setName("examplesubcommand")
-    .setDescription("An example subcommand")
-
-const callback = (interaction: CommandInteraction) => {
-    interaction.reply("Hello, world!");
-}
-
-const check = (interaction: CommandInteraction, defaultCheck: WrappedCheck) => {
-    return interaction.user.id !== "123456789";
-}
-
-export { command };
-export { callback };
-export { check };
\ No newline at end of file
diff --git a/src/config.json b/src/config.json
index be1c089..14a32a7 100644
--- a/src/config.json
+++ b/src/config.json
@@ -1,6 +1,6 @@
 {
     "token": "your-token-here",
-    "developmentToken": "NzEzMzIwMzc5MzY3ODE3MjM2.XseZXw.-NeXEfWg25j2nJ5VDWMrjlxigH4",
+    "developmentToken": "Nzc5Mzg4ODU2NTM2NTMwOTg0.X7f0bw.yzZg659UsLtHTfmeTsDXZa7O8K8",
     "managementGuildID": "your-management-guild-id-here",
     "developmentGuildID": "864185037078790195",
     "enableDevelopment": true,
diff --git a/tsconfig.json b/tsconfig.json
index b3c4943..94aa211 100644
--- a/tsconfig.json
+++ b/tsconfig.json
@@ -10,5 +10,5 @@
     },
     "include": [
         "src/**/*"
-    ]
+, "old/commands", "COMMANDS/mod/lock", "COMMANDS/role", "COMMANDS/settings"    ]
 }
\ No newline at end of file
