diff --git a/plugin/pom.xml b/plugin/pom.xml
index fb561f5..d332116 100644
--- a/plugin/pom.xml
+++ b/plugin/pom.xml
@@ -83,6 +83,14 @@
       <version>3.10.2</version>
 	    <scope>test</scope>
     </dependency>
+
+    <!-- Template engine -->
+    <!-- I wasn't able to get this working with jersey-mvc-freemarker ... -->
+    <dependency>
+      <groupId>org.freemarker</groupId>
+      <artifactId>freemarker</artifactId>
+      <version>2.3.30</version>
+    </dependency>
   </dependencies>
   
   <build>
diff --git a/plugin/src/main/java/de/ids_mannheim/korap/plkexport/IdsExportService.java b/plugin/src/main/java/de/ids_mannheim/korap/plkexport/IdsExportService.java
index c0ecfef..f670c1a 100644
--- a/plugin/src/main/java/de/ids_mannheim/korap/plkexport/IdsExportService.java
+++ b/plugin/src/main/java/de/ids_mannheim/korap/plkexport/IdsExportService.java
@@ -1,9 +1,11 @@
 package de.ids_mannheim.korap.plkexport;
 
 import java.io.IOException;
+import java.io.StringWriter;
 import java.lang.Thread;
 import java.io.InputStream;
 import java.net.URLEncoder;
+import java.util.HashMap;
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.Iterator;
@@ -40,19 +42,20 @@
 
 import static de.ids_mannheim.korap.plkexport.Util.*;
 
+// Template engine
+import freemarker.template.Configuration;
+import freemarker.template.Template;
+
 
 @Path("/")
 public class IdsExportService {
 
     Properties properties = ExWSConf.properties(null);
 
-    // Load export string
-    ClassLoader cl = Thread.currentThread().getContextClassLoader();
-    InputStream is1 = cl.getResourceAsStream("assets/export.html");
-    private final String exportStr = streamToString(is1);
-
-    InputStream is2 = cl.getResourceAsStream("assets/export.js");
-    private final String exportJsStr = streamToString(is2);
+    private final ClassLoader cl = Thread.currentThread().getContextClassLoader();
+   
+    InputStream is = cl.getResourceAsStream("assets/export.js");
+    private final String exportJsStr = streamToString(is);
     
     /**
      * WebService calls Kustvakt Search Webservices and returns
@@ -102,7 +105,6 @@
         String port = properties.getProperty("api.port", "8089");
         String host = properties.getProperty("api.host", "localhost");
 
-        // URIBuildernew UriBuilder();
         UriBuilder uri = UriBuilder.fromPath("/api/v1.0/search")
             .host(host)
             .port(Integer.parseInt(port))
@@ -180,8 +182,41 @@
     @Path("export")
     @Produces(MediaType.TEXT_HTML)
     public Response exportHTML () {
+        
+        Configuration cfg = new Configuration();
+        cfg.setClassForTemplateLoading(IdsExportService.class, "/assets/templates");
+        cfg.setDefaultEncoding("UTF-8");
+
+        StringWriter out = new StringWriter();
+        HashMap<String, Object> templateData = new HashMap<String, Object>();
+
+        String scheme = properties.getProperty("asset.scheme", "https");
+        String port = properties.getProperty("asset.port", "");
+        String host = properties.getProperty("asset.host", "korap.ids-mannheim.de");
+
+        UriBuilder uri = UriBuilder.fromPath("")
+            .host(host)
+            .scheme(scheme)
+            ;
+
+        if (port != "") {
+            uri = uri.port(Integer.parseInt(port));
+        }
+
+        templateData.put("assetPath", uri.build());
+
+        try {
+            Template template = cfg.getTemplate("export.ftl");
+            template.process(templateData, out);
+        }
+        catch (Exception e) {
+            return Response
+                .ok(new String("Template not found"))
+                .status(Status.INTERNAL_SERVER_ERROR)
+                .build();
+        }
         return Response
-            .ok(exportStr, MediaType.TEXT_HTML)
+            .ok(out.toString(), "text/html")
             .build();
     };
 
@@ -192,8 +227,8 @@
         return Response
             .ok(exportJsStr, "application/javascript")
             .build();
-    };
-    
+    };    
+
     public String writeRTF (LinkedList list) {
         LinkedList matchlist = list;
         RtfTextPara par = p((" "));
diff --git a/plugin/src/main/java/de/ids_mannheim/korap/plkexport/PluginServer.java b/plugin/src/main/java/de/ids_mannheim/korap/plkexport/PluginServer.java
index 27fa634..cb5a71c 100644
--- a/plugin/src/main/java/de/ids_mannheim/korap/plkexport/PluginServer.java
+++ b/plugin/src/main/java/de/ids_mannheim/korap/plkexport/PluginServer.java
@@ -12,11 +12,14 @@
 import org.eclipse.jetty.servlet.ServletContextHandler;
 import org.eclipse.jetty.servlet.ServletHolder;
 
+import org.glassfish.jersey.servlet.ServletContainer;
+
 public class PluginServer {
     public static void main (String[] args) throws Exception {
 
         ServletContextHandler contextHandler = new ServletContextHandler(
-            ServletContextHandler.NO_SESSIONS);
+            ServletContextHandler.NO_SESSIONS
+            );
         contextHandler.setContextPath("/");
 
         Properties properties = ExWSConf.properties(null);
@@ -36,9 +39,12 @@
         HandlerList handlers = new HandlerList();
         handlers.setHandlers(new Handler[] { contextHandler, new DefaultHandler()});
         jettyServer.setHandler(handlers);
+
+
+        ServletContainer servletContainer = new ServletContainer();        
+        ServletHolder servletHolder = new ServletHolder(servletContainer);
+        contextHandler.addServlet(servletHolder, "/*");
         
-        ServletHolder servletHolder = contextHandler.addServlet(
-                org.glassfish.jersey.servlet.ServletContainer.class, "/*");
         servletHolder.setInitOrder(0);
 
         // Tells the Jersey Servlet which REST service/class to load.
@@ -49,7 +55,13 @@
         try {
             jettyServer.start();
             System.out.println("PluginServer available under: http://" + host+ ":" + portStr);
-            System.out.println("ApiServer expected under: " + properties.getProperty("api.scheme") + "://" + properties.getProperty("api.host")+ ":" + properties.getProperty("api.port"));
+            System.out.println(
+                "ApiServer expected under: " +
+                properties.getProperty("api.scheme") +
+                "://" +
+                properties.getProperty("api.host")+ ":" +
+                properties.getProperty("api.port")
+                );
             jettyServer.join();
         }
         finally {
diff --git a/plugin/src/main/resources/assets/export.html b/plugin/src/main/resources/assets/templates/export.ftl
similarity index 85%
rename from plugin/src/main/resources/assets/export.html
rename to plugin/src/main/resources/assets/templates/export.ftl
index 11adb85..d7efd56 100644
--- a/plugin/src/main/resources/assets/export.html
+++ b/plugin/src/main/resources/assets/templates/export.ftl
@@ -4,10 +4,8 @@
   <head>
     <meta charset="UTF-8">
     <title>Export</title>
-
-    <!-- This is only for testing purposes -->
-    <script src="http://localhost:64543/js/korap-plugin-0.2.1.js"></script>
-    <link type="text/css" rel="stylesheet" href="http://localhost:64543/css/kalamar-plugin-0.2.1.css" />
+    <script src="${assetPath}/js/korap-plugin-0.2.1.js"></script>
+    <link href="${assetPath}/css/kalamar-plugin-0.2.1.css" type="text/css" rel="stylesheet" />
   </head>
   <body>
     <div class="banner" data-note="Experimental"></div>
diff --git a/plugin/src/main/resources/exportPlugin.conf b/plugin/src/main/resources/exportPlugin.conf
index 4e8ecbc..3dd58d9 100644
--- a/plugin/src/main/resources/exportPlugin.conf
+++ b/plugin/src/main/resources/exportPlugin.conf
@@ -1,10 +1,13 @@
-#Configuration file for 
-
-#Server Configuration
+# Server Configuration
 server.port=7777
 server.host=localhost
 server.scheme=https
 
+# API Configuration
 api.port=80
 api.host=korap.ids-mannheim.de
-api.scheme=https
\ No newline at end of file
+api.scheme=https
+
+# Asset Configuration
+asset.host=korap.ids-mannheim.de
+asset.scheme=https
\ No newline at end of file
diff --git a/plugin/src/test/java/de/ids_mannheim/korap/plkexport/IdsExportServiceTest.java b/plugin/src/test/java/de/ids_mannheim/korap/plkexport/IdsExportServiceTest.java
index cc9a96b..f0a89be 100644
--- a/plugin/src/test/java/de/ids_mannheim/korap/plkexport/IdsExportServiceTest.java
+++ b/plugin/src/test/java/de/ids_mannheim/korap/plkexport/IdsExportServiceTest.java
@@ -149,8 +149,10 @@
                 Status.OK.getStatusCode(), responsehtml.getStatus());
         String str = responsehtml.readEntity(String.class);
         assertTrue("HTTP Body", str.contains("<title>Export</title>"));
+        assertTrue("Assets", str.contains("<script src=\"https://korap.ids-mannheim.de/js"));
+        assertTrue("Assets", str.contains("<link href=\"https://korap.ids-mannheim.de/css"));
     }
-
+    
     @Test
     public void testJS () {
         Response responsejs = target("/export.js").request()
