diff --git a/src/commands/settings/automod.ts b/src/commands/settings/automod.ts
index 471af80..7756ae7 100644
--- a/src/commands/settings/automod.ts
+++ b/src/commands/settings/automod.ts
@@ -186,6 +186,8 @@
 
         const embed = new EmojiEmbed()
             .setTitle("Image Settings")
+            .setStatus("Success")
+            // .setEmoji("")  // TODO
             .setDescription(
                 `${emojiFromBoolean(current.NSFW)} **NSFW**\n` + `${emojiFromBoolean(current.size)} **Size**\n`
             )
@@ -657,7 +659,7 @@
         const allowedMenu = new ActionRowBuilder<StringSelectMenuBuilder>().addComponents(
             new StringSelectMenuBuilder()
                 .setCustomId("allowed")
-                .setPlaceholder("Edit exceptions")
+                .setPlaceholder("Edit allowed list")
                 .addOptions(
                     new StringSelectMenuOptionBuilder()
                         .setLabel("Users")
@@ -683,36 +685,33 @@
                     `${emojiFromBoolean(current.roles)} **Roles**\n` +
                     (current.allowed.rolesToMention.length > 0
                         ? `> *Except for ${listToAndMore(
-                              current.allowed.rolesToMention.map((r) => `<@&${r}>`),
-                              3
-                          )}*\n`
+                                current.allowed.rolesToMention.map((r) => `<@&${r}>`),
+                                3
+                            )}*\n`
                         : "") +
                     "\n" +
                     `Except if...\n` +
-                    `> ${
-                        current.allowed.users.length > 0
-                            ? `Member is: ${listToAndMore(
-                                  current.allowed.users.map((u) => `<@${u}>`),
-                                  3
-                              )}\n`
-                            : ""
-                    }` +
-                    `> ${
-                        current.allowed.roles.length > 0
-                            ? `Member has role: ${listToAndMore(
-                                  current.allowed.roles.map((r) => `<@&${r}>`),
-                                  3
-                              )}\n`
-                            : ""
-                    }` +
-                    `> ${
-                        current.allowed.channels.length > 0
-                            ? `In channel: ${listToAndMore(
-                                  current.allowed.channels.map((c) => `<#${c}>`),
-                                  3
-                              )}\n`
-                            : ""
-                    }`
+                    (current.allowed.users.length > 0
+                        ? `> Member is: ${listToAndMore(
+                                current.allowed.users.map((u) => `<@${u}>`),
+                                3
+                            )}\n`
+                        : "") +
+                    (current.allowed.roles.length > 0
+                        ? `> Member has role: ${listToAndMore(
+                                current.allowed.roles.map((r) => `<@&${r}>`),
+                                3
+                            )}\n`
+                        : "") +
+                    (current.allowed.channels.length > 0
+                        ? `> In channel: ${listToAndMore(
+                                current.allowed.channels.map((c) => `<#${c}>`),
+                                3
+                            )}\n`
+                        : "") +
+                    (current.allowed.users.length == 0 || current.allowed.roles.length == 0 || current.allowed.channels.length == 0 ?
+                        "> *No exceptions*\n" : ""
+                    )
             )
             .setStatus("Success")
             .setEmoji("GUILD.SETTINGS.GREEN")
