new messageEdit flow
diff --git a/src/events/messageEdit.ts b/src/events/messageEdit.ts
index f41901c..5964df9 100644
--- a/src/events/messageEdit.ts
+++ b/src/events/messageEdit.ts
@@ -1,7 +1,8 @@
 import type { NucleusClient } from "../utils/client.js";
-import { AttachmentBuilder, Message, MessageReference } from "discord.js";
+import { Message, MessageReference, ButtonStyle } from "discord.js";
 import type Discord from "discord.js";
 import * as diff from "diff";
+import addPlural from "../utils/plurals.js";
 
 export const event = "messageUpdate";
 
@@ -9,8 +10,17 @@
     if (newMessage.author.id === client.user!.id) return;
     if (newMessage.author.bot) return;
     if (!newMessage.guild) return;
-    const { log, isLogging, NucleusColors, entry, renderUser, renderDelta, renderNumberDelta, renderChannel } =
-        client.logger;
+    const {
+        log,
+        isLogging,
+        NucleusColors,
+        entry,
+        renderUser,
+        renderDelta,
+        renderNumberDelta,
+        renderChannel,
+        preLog
+    } = client.logger;
     const replyTo: MessageReference | null = newMessage.reference;
     const newContent = newMessage.cleanContent.replaceAll("`", "‘");
     const oldContent = oldMessage.cleanContent.replaceAll("`", "‘");
@@ -63,47 +73,10 @@
         return;
     }
     const differences = diff.diffChars(oldContent, newContent);
-    const green = "\x1B[36m";
-    const red = "\x1B[41m";
-    const skipped = "\x1B[40;33m";
-    const reset = "\x1B[0m";
-    const bold = "\x1B[1m";
-    // console.log(differences);
-    // let contentAdd = "";
-    // let contentRemove = "";
-    // if (differences.map((d) => (d.added || d.removed ? 1 : 0)).filter((f) => f === 1).length > 0) {
-    //     const cutoff = 20;
-    //     differences.forEach((part) => {
-    //         if (!part.added && !part.removed && part.value.length > cutoff) {
-    //             contentAdd +=
-    //                 reset +
-    //                 part.value.slice(0, cutoff / 2) +
-    //                 skipped +
-    //                 `(${part.value.length - cutoff} more)` +
-    //                 reset +
-    //                 part.value.slice(-(cutoff / 2));
-    //             contentRemove +=
-    //                 reset +
-    //                 part.value.slice(0, cutoff / 2) +
-    //                 skipped +
-    //                 `(${part.value.length - cutoff} more)` +
-    //                 reset +
-    //                 part.value.slice(-(cutoff / 2));
-    //         } else {
-    //             if (part.added || part.removed) {
-    //                 part.value = part.value.replaceAll(" ", "▁");
-    //             }
-    //             if (part.added) {
-    //                 contentAdd += green + part.value + reset;
-    //             } else if (part.removed) {
-    //                 contentRemove += red + part.value + reset;
-    //             } else {
-    //                 contentAdd += part.value;
-    //                 contentRemove += part.value;
-    //             }
-    //         }
-    //     });
-    const key = `\n\n${bold}Key:${reset} ${green}Added${reset} | ${red}Removed${reset} | ${skipped}Skipped${reset}`;
+    const charsAdded = differences.filter((x) => x.added).length;
+    const charsRemoved = differences.filter((x) => x.removed).length;
+    const preLogMessage = await preLog(newMessage.guild.id, JSON.stringify(differences, null, 2));
+    if (!preLogMessage) return;
     const data = {
         meta: {
             type: "messageUpdate",
@@ -112,16 +85,10 @@
             color: NucleusColors.yellow,
             emoji: "MESSAGE.EDIT",
             timestamp: newMessage.editedTimestamp,
-            files: [
-                new AttachmentBuilder(Buffer.from(JSON.stringify(differences), "base64"), {
-                    name: "diff.json",
-                    description: "A JSON file containing the differences between the two messages."
-                })
-            ],
-            showDetails: true
+            changes: { messageId: `${preLogMessage.id}`, buttonText: "View Changes", buttonStyle: ButtonStyle.Secondary, buttonId: `log:edit:${preLogMessage.id}` }
         },
         separate: {
-            start: `To read the full log press the button below.\n\`\`\`ansi\n${key}\`\`\``,
+            start: `${charsAdded} ${addPlural(charsAdded, "character")} added, ${charsRemoved} ${addPlural(charsRemoved, "character")} removed`,
             end: `[[Jump to message]](${newMessage.url})`
         },
         list: {