diff --git a/__tests__/html-gmail-gmail.test.ts b/__tests__/html-gmail-gmail.test.ts
index c0901b7501a23a7e9686aa83b457dcc7b6b48cfe..6b2a782bc4c8fa810613a0a80d39d6d8a40c77bd 100644
--- a/__tests__/html-gmail-gmail.test.ts
+++ b/__tests__/html-gmail-gmail.test.ts
@@ -13,5 +13,5 @@ describe("[HTML] GMail-GMail", () => {
     EMAIL_VENDORS.GMAIL
   );
 
-  describe("One", describeFunction("one", [""]));
+  describe("One", describeFunction("one", ["sssas"]));
 });
diff --git a/__tests__/pseudoplain-gmail-gmail.test.ts b/__tests__/htmltext-gmail-gmail.test.ts
similarity index 100%
rename from __tests__/pseudoplain-gmail-gmail.test.ts
rename to __tests__/htmltext-gmail-gmail.test.ts
diff --git a/__tests__/pseudoplain-gmail-outlook.test.ts b/__tests__/htmltext-gmail-outlook.test.ts
similarity index 100%
rename from __tests__/pseudoplain-gmail-outlook.test.ts
rename to __tests__/htmltext-gmail-outlook.test.ts
diff --git a/__tests__/pseudoplain-outlook-outlook.test.ts b/__tests__/htmltext-outlook-outlook.test.ts
similarity index 100%
rename from __tests__/pseudoplain-outlook-outlook.test.ts
rename to __tests__/htmltext-outlook-outlook.test.ts
diff --git a/__tests__/utils.ts b/__tests__/utils.ts
index ef875f21f5fc9472fed58d6451b6a0d19f10988b..9d0a0aa2734530053f9ec795afe42b0bf5f0bce9 100644
--- a/__tests__/utils.ts
+++ b/__tests__/utils.ts
@@ -8,7 +8,23 @@ const RECEIVED_PLAIN_NAME = "r_plainContent.data";
 import { PlainNormalizer, HTMLNormalizer } from "../src";
 import { expect, test } from "@jest/globals";
 import { DOM } from "@vereign/dom";
-//import { diffStringsUnified } from "jest-diff";
+import { diffStringsUnified } from "jest-diff";
+
+expect.extend({
+  toContainWithDiff(target, source) {
+    let pass = true;
+    try {
+      expect(target).toContain(source);
+    } catch (e) {
+      pass = false;
+    }
+
+    return {
+      pass,
+      message: pass ? () => "Pass" : () => diffStringsUnified(source, target),
+    };
+  },
+});
 
 export const getNormalizedPlain = (
   testCasePath: string
@@ -106,7 +122,10 @@ export const createDescribeHtmlTestCases = (
 
       // expect(receivedHtml.length).toBeGreaterThan(0);
       // expect(sentHtml.length).toBeGreaterThan(0);
-      expect(receivedHtml).toContain(sentHtml);
+
+      // eslint-disable-next-line
+      // @ts-ignore
+      expect(receivedHtml).toContainWithDiff(sentHtml);
     });
   };
 
@@ -136,9 +155,10 @@ export const createDescribePlainTestCases = (testsPath: string) => (
 
     // expect(sentPlain.length).toBeGreaterThan(0);
     // expect(receivedPlain.length).toBeGreaterThan(0);
-    expect(receivedPlain).toContain(sentPlain);
-    // const diff = diffStringsUnified(sentPlain, receivedPlain);
-    // console.log(diff);
+
+    // eslint-disable-next-line
+    // @ts-ignore
+    expect(receivedPlain).toContainWithDiff(sentPlain);
   });
 };
 
diff --git a/src/HTMLNormalizer/strategies/gmail.ts b/src/HTMLNormalizer/strategies/gmail.ts
index fa829354844928993ffec7176dd3e95638c5892b..55f4f9f1ed63dbee1e398f988911f0a8a6f2ae3a 100644
--- a/src/HTMLNormalizer/strategies/gmail.ts
+++ b/src/HTMLNormalizer/strategies/gmail.ts
@@ -3,16 +3,54 @@ import {
   cloneAnchorFromPane,
   pruneElement,
 } from "./common";
+import { ELEMENT_NODE } from "../../constants";
 
 export const pruneGmailElement = (element: HTMLElement): boolean => {
   return pruneElement(element);
 };
 
+const qrCodeContainerIds = { vereignWrapperLink: 1 };
+const removeQrCodeNodes = (document: HTMLDocument) => {
+  const remove = (node: Element) => {
+    let toRemove = [];
+
+    let child = node.firstChild;
+
+    while (child) {
+      if (child.nodeType == ELEMENT_NODE) {
+        toRemove = [...toRemove, ...remove(child as Element)];
+
+        const childElement = child as Element;
+        const id = childElement.getAttribute("id");
+        if (
+          id &&
+          Object.keys(qrCodeContainerIds).find((possibleId) =>
+            id.includes(possibleId)
+          )
+        ) {
+          toRemove.push(childElement);
+        }
+      }
+
+      child = child.nextSibling;
+    }
+
+    return toRemove;
+  };
+
+  const elementsToRemove = remove(document.body);
+  elementsToRemove.forEach((element) =>
+    element.parentNode.removeChild(element)
+  );
+};
+
 export const amendGmailNodes = (document: HTMLDocument): void => {
   // unwindTags(document, "span");
 
+  removeQrCodeNodes(document);
+
   /**
-   * Look for attachments panes and remove everything but liks
+   * Look for attachments panes and remove everything but links
    */
 
   const attachmentsPanes = Array.from(
diff --git a/src/HTMLNormalizer/strategies/outlook.ts b/src/HTMLNormalizer/strategies/outlook.ts
index 2f47a2bda9f0b3097447f32108c5a9d88ca113b5..21d9eda3f93b6c38456900cf2db3be8439179a11 100644
--- a/src/HTMLNormalizer/strategies/outlook.ts
+++ b/src/HTMLNormalizer/strategies/outlook.ts
@@ -28,7 +28,9 @@ export const pruneOutlookElement = (element: HTMLElement): boolean => {
   return !!element.nodeName.toLowerCase().startsWith("o:");
 };
 
-const qrCodeContainerId = "test-for-us";
+const qrCodeContainerIds = {
+  "test-for-us": 1,
+};
 const removeQrCodeNodes = (document: HTMLDocument) => {
   const remove = (node: Element) => {
     let toRemove = [];
@@ -41,7 +43,12 @@ const removeQrCodeNodes = (document: HTMLDocument) => {
 
         const childElement = child as Element;
         const id = childElement.getAttribute("id");
-        if (id && id.includes(qrCodeContainerId)) {
+        if (
+          id &&
+          Object.keys(qrCodeContainerIds).find((possibleId) =>
+            id.includes(possibleId)
+          )
+        ) {
           toRemove.push(childElement.parentNode);
         }
       }
diff --git a/src/PlainNormalizer/PlainNormalizer.ts b/src/PlainNormalizer/PlainNormalizer.ts
index 16a59c9c4a4e9c51e90c521158c8ce468ad40628..2dd46a7495eb78758ae0c46bc6870ae343ee7693 100644
--- a/src/PlainNormalizer/PlainNormalizer.ts
+++ b/src/PlainNormalizer/PlainNormalizer.ts
@@ -8,8 +8,8 @@ export const normalizePlainPart = (text: string): string => {
 
 const removeQRCodes = (s: string): string => {
   return s
-    .replace(/\[qrcode.png]\s*<https:\/\/[\w./?=\-&]+>/g, "")
-    .replace(/<https:\/\/[\w./?=\-&]+>\s*\[qrcode.png]/g, "");
+    .replace(/\[(image:)*qrcode.png]\s*<https:\/\/[\w./?=\-&]+>/g, "")
+    .replace(/<https:\/\/[\w./?=\-&]+>\s*\[(image: )*qrcode.png]/g, "");
 };
 
 const removeListBullets = (s: string): string => {