diff --git a/plugins/org.eclipse.epsilon.picto/src/org/eclipse/epsilon/picto/transformers/HtmlContentTransformer.java b/plugins/org.eclipse.epsilon.picto/src/org/eclipse/epsilon/picto/transformers/HtmlContentTransformer.java
index d2a7060..3c7e43c 100644
--- a/plugins/org.eclipse.epsilon.picto/src/org/eclipse/epsilon/picto/transformers/HtmlContentTransformer.java
+++ b/plugins/org.eclipse.epsilon.picto/src/org/eclipse/epsilon/picto/transformers/HtmlContentTransformer.java
@@ -14,14 +14,23 @@
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.List;
+
 import javax.xml.xpath.XPath;
 import javax.xml.xpath.XPathConstants;
 import javax.xml.xpath.XPathFactory;
+
 import org.eclipse.epsilon.common.util.StringUtil;
 import org.eclipse.epsilon.picto.PictoView;
 import org.eclipse.epsilon.picto.ViewContent;
 import org.eclipse.epsilon.picto.XmlHelper;
-import org.eclipse.epsilon.picto.transformers.elements.*;
+import org.eclipse.epsilon.picto.transformers.elements.AbsoluteLinkElementTransformer;
+import org.eclipse.epsilon.picto.transformers.elements.AbsolutePathElementTransformer;
+import org.eclipse.epsilon.picto.transformers.elements.HtmlElementTransformer;
+import org.eclipse.epsilon.picto.transformers.elements.HtmlElementTransformerExtensionPointManager;
+import org.eclipse.epsilon.picto.transformers.elements.MermaidRendererHeadAppender;
+import org.eclipse.epsilon.picto.transformers.elements.MetroHeadAppender;
+import org.eclipse.epsilon.picto.transformers.elements.PictoViewElementTransformer;
+import org.eclipse.epsilon.picto.transformers.elements.RenderCodeElementTransformer;
 import org.w3c.dom.Document;
 import org.w3c.dom.Element;
 import org.w3c.dom.Node;
@@ -40,7 +49,6 @@
 			new AbsoluteLinkElementTransformer("a",  "href"),
 			new PictoViewElementTransformer(), 
 			new RenderCodeElementTransformer(),
-			new KatexAutorenderHeadAppender(),
 			new MermaidRendererHeadAppender(),
 			new MetroHeadAppender()
 		));
diff --git a/plugins/org.eclipse.epsilon.picto/src/org/eclipse/epsilon/picto/transformers/elements/KatexAutorenderHeadAppender.java b/plugins/org.eclipse.epsilon.picto/src/org/eclipse/epsilon/picto/transformers/elements/KatexAutorenderHeadAppender.java
deleted file mode 100644
index 31acbf7..0000000
--- a/plugins/org.eclipse.epsilon.picto/src/org/eclipse/epsilon/picto/transformers/elements/KatexAutorenderHeadAppender.java
+++ /dev/null
@@ -1,48 +0,0 @@
-/*********************************************************************
-* Copyright (c) 2020 The University of York.
-*
-* This program and the accompanying materials are made
-* available under the terms of the Eclipse Public License 2.0
-* which is available at https://www.eclipse.org/legal/epl-2.0/
-*
-* SPDX-License-Identifier: EPL-2.0
-**********************************************************************/
-package org.eclipse.epsilon.picto.transformers.elements;
-
-import org.w3c.dom.DOMException;
-import org.w3c.dom.Document;
-import org.w3c.dom.Element;
-
-/**
- * 
- * @author Sina Madani
- * @since 2.2
- */
-public class KatexAutorenderHeadAppender extends AppendingElementTransformer {
-
-	@Override
-	public String getXPath() {
-		return "//head[1]";
-	}
-	
-	@Override
-	protected void append(Element root, Document document) throws DOMException {
-		String cdn = "https://cdn.jsdelivr.net/npm/katex@0.12.0/dist/";
-		Element css = document.createElement("link");
-		css.setAttribute("rel", "stylesheet");
-		css.setAttribute("href", cdn+"katex.min.css");
-		root.appendChild(css);
-		
-		Element katex = document.createElement("script");
-		katex.setAttribute("defer", "defer");
-		katex.setAttribute("src", cdn+"katex.min.js");
-		root.appendChild(katex);
-		
-		Element autorender = document.createElement("script");
-		autorender.setAttribute("defer", "defer");
-		autorender.setAttribute("src", cdn+"contrib/auto-render.min.js");
-		autorender.setAttribute("onload", "renderMathInElement(document.body);");
-		root.appendChild(autorender);
-	}
-
-}
