diff --git a/src/commands/settings/automod.ts b/src/commands/settings/automod.ts
index c3cac04..f10cf67 100644
--- a/src/commands/settings/automod.ts
+++ b/src/commands/settings/automod.ts
@@ -8,11 +8,8 @@
     ChannelSelectMenuBuilder,
     ChannelSelectMenuInteraction,
     CommandInteraction,
-    Interaction,
     Message,
-    MessageComponentInteraction,
     ModalBuilder,
-    ModalSubmitInteraction,
     RoleSelectMenuBuilder,
     RoleSelectMenuInteraction,
     StringSelectMenuBuilder,
@@ -317,12 +314,7 @@
                     await i.showModal(modal);
                     let out;
                     try {
-                        out = await modalInteractionCollector(
-                            m,
-                            (m: Interaction) =>
-                                (m as MessageComponentInteraction | ModalSubmitInteraction).channelId === interaction.channelId,
-                            (m) => m.customId === "back"
-                        );
+                        out = await modalInteractionCollector(m, interaction.user);
                     } catch (e) {
                         break;
                     }
@@ -612,12 +604,7 @@
                             await i.showModal(modal);
                             let out;
                             try {
-                                out = await modalInteractionCollector(
-                                    m,
-                                    (m: Interaction) =>
-                                        (m as MessageComponentInteraction | ModalSubmitInteraction).channelId === interaction.channelId,
-                                    (m) => m.customId === "back"
-                                );
+                                out = await modalInteractionCollector(m, interaction.user);
                             } catch (e) {
                                 break;
                             }
@@ -912,7 +899,8 @@
             }
         }
 
-    } while(!closed)
+    } while(!closed);
+    await interaction.deleteReply()
 
 };
 
