diff --git a/player/matterhorn-engage-theodul-core/src/main/resources/ui/css/core_desktop_style_bottom.css b/player/css/core_desktop_style_bottom.css
similarity index 100%
rename from player/matterhorn-engage-theodul-core/src/main/resources/ui/css/core_desktop_style_bottom.css
rename to player/css/core_desktop_style_bottom.css
diff --git a/player/matterhorn-engage-theodul-core/src/main/resources/ui/css/core_desktop_style_top.css b/player/css/core_desktop_style_top.css
similarity index 100%
rename from player/matterhorn-engage-theodul-core/src/main/resources/ui/css/core_desktop_style_top.css
rename to player/css/core_desktop_style_top.css
diff --git a/player/matterhorn-engage-theodul-core/src/main/resources/ui/css/core_embed_style.css b/player/css/core_embed_style.css
similarity index 100%
rename from player/matterhorn-engage-theodul-core/src/main/resources/ui/css/core_embed_style.css
rename to player/css/core_embed_style.css
diff --git a/player/matterhorn-engage-theodul-core/src/main/resources/ui/css/core_mobile_style.css b/player/css/core_mobile_style.css
similarity index 100%
rename from player/matterhorn-engage-theodul-core/src/main/resources/ui/css/core_mobile_style.css
rename to player/css/core_mobile_style.css
diff --git a/player/matterhorn-engage-theodul-core/src/main/resources/ui/img/pulldown.png b/player/img/pulldown.png
similarity index 100%
rename from player/matterhorn-engage-theodul-core/src/main/resources/ui/img/pulldown.png
rename to player/img/pulldown.png
diff --git a/player/js/engage/core.js b/player/js/engage/core.js
index 2c7a3cc04cd4650502a81d745858bf3e87ae32ff..b4ee15fbf25d6f07bbf1382b707015aa0b6b72fe 100644
--- a/player/js/engage/core.js
+++ b/player/js/engage/core.js
@@ -167,7 +167,7 @@ define(["require", "jquery", "underscore", "backbone", "mousetrap", "bowser", "b
         selectedLanguage = getDefaultLanguage(language);
     }
     console.log("Controls: selecting language " + selectedLanguage);
-    jsonstr += "../../language/" + selectedLanguage + ".json";
+    jsonstr += "language/" + selectedLanguage + ".json";
     $.ajax({
       url: jsonstr,
       dataType: "json",
@@ -364,9 +364,10 @@ define(["require", "jquery", "underscore", "backbone", "mousetrap", "bowser", "b
       }
     },
     log: function (data) {
-      if (this.model.get("isDebug") && window.console) {
         console.log(data);
-      }
+     /* if (this.model.get("isDebug") && window.console) {
+        console.log(data);
+      }*/
     },
     group: function (block) {
       if (this.model.get("isDebug") && window.console) {
@@ -388,18 +389,17 @@ define(["require", "jquery", "underscore", "backbone", "mousetrap", "bowser", "b
           if ($.isArray(plugins)) {
             $.each(plugins, function (index, value) {
               if (value["name"] === pluginName) {
-                evaluated_plugin_path = "../../../plugin/" + value["static-path"] + "/";
+                evaluated_plugin_path = "../../plugin/" + value["static-path"] + "/";
               }
             });
           } else {
-            evaluated_plugin_path = "../../../plugin/" + plugins["static-path"] + "/";
+            evaluated_plugin_path = "../../plugin/" + plugins["static-path"] + "/";
           }
         }
       }
       return evaluated_plugin_path;
     },
     loadCoreUI: function () {
-      console.log("loadcoreui");
       // switch view template and css rules for current player mode
       // link tag for css file
       var cssLinkTag = $("<link>");
@@ -474,13 +474,13 @@ define(["require", "jquery", "underscore", "backbone", "mousetrap", "bowser", "b
               $.each(pluginInfos.get("pluginlist").plugins, function (index, value) {
                 var plugin_name = value["name"];
                 engageCore.log("Core: Loading plugin '" + plugin_name + "' from '" + ("../../../plugin/" + value["static-path"] + "/") + "'...");
-                loadPlugin("../../../plugin/" + value["static-path"] + "/", plugin_name);
+                loadPlugin("../../plugin/" + value["static-path"] + "/", plugin_name);
               });
             } else {
               var plugin_name = pluginInfos.get("pluginlist").plugins["name"];
               plugins_loaded[plugin_name] = false;
               engageCore.log("Core: Loading plugin '" + plugin_name + "' from '" + ("../../../plugin/" + pluginInfos.get("pluginlist").plugins["static-path"] + "/") + "'...");
-              loadPlugin("../../../plugin/" + pluginInfos.get("pluginlist").plugins["static-path"] + "/", plugin_name);
+              loadPlugin("../../plugin/" + pluginInfos.get("pluginlist").plugins["static-path"] + "/", plugin_name);
             }
           }
         }
@@ -505,7 +505,10 @@ define(["require", "jquery", "underscore", "backbone", "mousetrap", "bowser", "b
       this.model.desktop = false;
       this.model.embed = false;
       this.model.mobile = false;
-
+        // core init event
+        this.dispatcher.on(events.coreInit.getName(), function () {
+            engageCore.loadCoreUI();
+        });
       // load plugins done, hide loading and show content
       this.dispatcher.on(events.mediaPackageModelError.getName(), function (str) {
         mediapackageError = true;
diff --git a/player/js/engage/models/pluginInfo.js b/player/js/engage/models/pluginInfo.js
index 01d56aa51c0c385c7054367118cd0cd31b15ec0b..4e164065d950d9db119bedd76cd522bafd871b06 100644
--- a/player/js/engage/models/pluginInfo.js
+++ b/player/js/engage/models/pluginInfo.js
@@ -23,7 +23,7 @@
 define(['jquery', 'backbone'], function($, Backbone) {
     "use strict";
 
-    var PLUGIN_MANAGER_PATH = "/engage/theodul/manager/list.json";
+    var PLUGIN_MANAGER_PATH = "plugin/list.json";
 
     var PluginInfoModel = Backbone.Model.extend({
         // URL of the search enpoint
diff --git a/player/js/engage_init.js b/player/js/engage_init.js
index 9129d446f7de05d8f50d5e1a1b79f34f004c55e8..62094c03836acccf53668095d9bac463f5d8fd89 100644
--- a/player/js/engage_init.js
+++ b/player/js/engage_init.js
@@ -4,7 +4,7 @@ requirejs.config({
     waitSeconds: 50,
     paths: {
         engage: "../engage",
-        plugins: "../plugin/*/static"
+        plugins: "../plugin"
     },
     shim: {
         "bootstrap": {
@@ -36,6 +36,6 @@ requirejs.config({
         }
     }
 });
-var PLUGIN_PATH = "../../plugin/";
+var PLUGIN_PATH = "../plugin/";
 // start core logic
 require(["engage/core"]);
diff --git a/player/matterhorn-engage-theodul-plugin-custom-piwik/src/main/resources/static/main.js b/player/matterhorn-engage-theodul-plugin-custom-piwik/src/main/resources/static/main.js
deleted file mode 100644
index 4a6124476ffab137defd8421a3b23b211f951f21..0000000000000000000000000000000000000000
--- a/player/matterhorn-engage-theodul-plugin-custom-piwik/src/main/resources/static/main.js
+++ /dev/null
@@ -1,326 +0,0 @@
-/**
- * Licensed to The Apereo Foundation under one or more contributor license
- * agreements. See the NOTICE file distributed with this work for additional
- * information regarding copyright ownership.
- *
- *
- * The Apereo Foundation licenses this file to you under the Educational
- * Community License, Version 2.0 (the "License"); you may not use this file
- * except in compliance with the License. You may obtain a copy of the License
- * at:
- *
- *   http://opensource.org/licenses/ecl2.txt
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
- * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the
- * License for the specific language governing permissions and limitations under
- * the License.
- *
- */
-/*jslint browser: true, nomen: true*/
-/*global define*/
-define(["jquery", "backbone", "engage/core"], function($, Backbone, Engage) {
-    "use strict";
-
-    var insertIntoDOM = false;
-    var PLUGIN_NAME = "Engage Plugin Custom Piwik";
-    var PLUGIN_TYPE = "engage_custom";
-    var PLUGIN_VERSION = "1.0";
-    var PLUGIN_TEMPLATE_DESKTOP = "none";
-    var PLUGIN_TEMPLATE_MOBILE = "none";
-    var PLUGIN_TEMPLATE_EMBED = "none";
-    var PLUGIN_STYLES_DESKTOP = [
-        ""
-    ];
-    var PLUGIN_STYLES_EMBED = [
-        ""
-    ];
-    var PLUGIN_STYLES_MOBILE = [
-        ""
-    ];
-
-    var plugin;
-    var events = {
-        plugin_load_done: new Engage.Event("Core:plugin_load_done", "", "handler"),
-        customNotification: new Engage.Event('Notification:customNotification', 'a custom message', 'trigger'),
-        mediaPackageModelError: new Engage.Event("MhConnection:mediaPackageModelError", "", "handler"),
-        mediaPackageLoaded: new Engage.Event("MhConnection:mediaPackageLoaded", "A mediapackage has been loaded", "trigger"),
-        play: new Engage.Event('Video:play', 'plays the video', 'both'),
-        pause: new Engage.Event('Video:pause', 'pauses the video', 'both'),
-        seek: new Engage.Event('Video:seek', 'seek video to a given position in seconds', 'both'),
-        ended: new Engage.Event('Video:ended', 'end of the video', 'trigger'),
-        fullscreenEnable: new Engage.Event('Video:fullscreenEnable', 'go to fullscreen', 'handler'),
-        playbackRateChanged: new Engage.Event('Video:playbackRateChanged', 'The video playback rate changed', 'handler'),
-        qualitySet: new Engage.Event('Video:qualitySet', '', 'handler'),
-        focusVideo: new Engage.Event('Video:focusVideo', 'increases the size of one video', 'handler'),
-        resetLayout: new Engage.Event('Video:resetLayout', 'resets the layout of the videodisplays', 'handler'),
-        zoomChange: new Engage.Event('Video:zoomChange', 'zoom level has changed', 'trigger'),
-        volumeSet: new Engage.Event('Video:volumeSet', 'set the volume', 'handler')
-    };
-
-    var isDesktopMode = false,
-        isEmbedMode = false,
-        isMobileMode = false;
-        translations = [];
-
-    // desktop, embed and mobile logic
-    switch (Engage.model.get("mode")) {
-        case "embed":
-            plugin = {
-                insertIntoDOM: insertIntoDOM,
-                name: PLUGIN_NAME,
-                type: PLUGIN_TYPE,
-                version: PLUGIN_VERSION,
-                styles: PLUGIN_STYLES_EMBED,
-                template: PLUGIN_TEMPLATE_EMBED,
-                events: events
-            };
-            isEmbedMode = true;
-            break;
-        case "mobile":
-            plugin = {
-                insertIntoDOM: insertIntoDOM,
-                name: PLUGIN_NAME,
-                type: PLUGIN_TYPE,
-                version: PLUGIN_VERSION,
-                styles: PLUGIN_STYLES_MOBILE,
-                template: PLUGIN_TEMPLATE_MOBILE,
-                events: events
-            };
-            isMobileMode = true;
-            break;
-        case "desktop":
-        default:
-            plugin = {
-                insertIntoDOM: insertIntoDOM,
-                name: PLUGIN_NAME,
-                type: PLUGIN_TYPE,
-                version: PLUGIN_VERSION,
-                styles: PLUGIN_STYLES_DESKTOP,
-                template: PLUGIN_TEMPLATE_DESKTOP,
-                events: events
-            };
-            isDesktopMode = true;
-            break;
-    }
-
-    /* don't change these variables */
-
-    var server = Engage.model.get("meInfo").get("piwik.server"),
-        tracker,
-        initing = true,
-        mediapackageError = false,
-        allow_tracking = true;
-
-    allow_tracking = ! isDoNotTrackStatus();
-
-    if (server && allow_tracking) {
-      if (server.substr(-1) != '/') server += '/';
-      var siteId = parseInt(Engage.model.get("meInfo").get("piwik.site_id")),
-          heartbeat = parseInt(Engage.model.get("meInfo").get("piwik.heartbeat")),
-          track_events = Engage.model.get("meInfo").get("piwik.track_events"),
-          translations = [];
-
-          if (track_events) track_events = track_events.toLowerCase();
-
-      if (isNaN(siteId)) {
-        siteId = 1;
-      }
-
-      if (isNaN(heartbeat)) {
-        heartbeat = 0;
-      }
-
-
-      // load piwik lib from remote server
-      require([server + "piwik.js"], function(piwik) {
-        Engage.log("Piwik: external piwik lib loaded");
-
-        tracker = Piwik.getTracker( server + "piwik.php", siteId );
-        initTranslate(Engage.model.get("language"), function () {
-          Engage.log('Piwik: Successfully translated.');
-        }, function () {
-          Engage.log('Piwik: Error translating...');
-        });
-
-
-        var mediapackage = Engage.model.get("mediaPackage"),
-            last_zoom_update = 0,
-            zoom_timeout = 2000,
-            volume_changing = false,
-            changed_volume = 1;
-
-        if (tracker && mediapackage && mediapackage.get("ready")) {
-          initTracker(tracker, mediapackage);
-        }
-
-        Engage.on(plugin.events.mediaPackageModelError.getName(), function() {
-          mediapackageError = true;
-        });
-
-        if (tracker) {
-
-          Engage.on(plugin.events.mediaPackageLoaded.getName(), function() {
-            mediapackage = Engage.model.get("mediaPackage");
-            if (mediapackage && mediapackage.get("ready")) {
-              initTracker(tracker, mediapackage);
-            }
-          });
-
-          Engage.on(plugin.events.qualitySet.getName(), function(q) {
-            if (!trackEvent("quality")) return;
-            if (!initing)
-              tracker.trackEvent("Player.Settings","Quality", q);
-           });
-
-          Engage.on(plugin.events.volumeSet.getName(), function(v) {
-            if (!trackEvent("volume")) return;
-            changed_volume = v;
-            if (!initing && !volume_changing) {
-              volume_changing = true;
-              setTimeout(function () {
-                tracker.trackEvent("Player.Settings","Volume", changed_volume);
-                volume_changing = false;
-              }, 1000);
-            }
-          });
-
-          Engage.on(plugin.events.ended.getName(), function() {
-            if (!trackEvent("ended")) return;
-            tracker.trackEvent("Player.Status","Ended");
-          });
-
-          Engage.on(plugin.events.play.getName(), function() {
-            if (!trackEvent("play")) return;
-            tracker.trackEvent("Player.Controls","Play");
-          });
-
-          Engage.on(plugin.events.pause.getName(), function() {
-            if (!trackEvent("pause")) return;
-            tracker.trackEvent("Player.Controls","Pause");
-          });
-
-          Engage.on(plugin.events.seek.getName(), function(time) {
-            if (!trackEvent("seek")) return;
-            tracker.trackEvent("Player.Controls","Seek", time);
-          });
-
-          Engage.on(plugin.events.playbackRateChanged.getName(), function(speed) {
-            if (!trackEvent("playbackrate")) return;
-            tracker.trackEvent("Player.Controls","PlaybackRate", speed);
-          });
-
-          Engage.on(plugin.events.fullscreenEnable.getName(), function() {
-            if (!trackEvent("fullscreen")) return;
-            tracker.trackEvent("Player.View","Fullscreen");
-          });
-
-          Engage.on(plugin.events.focusVideo.getName(), function(focus) {
-            if (!trackEvent("focus")) return;
-            if (!initing)
-                tracker.trackEvent("Player.View","Focus", focus);
-          });
-
-          Engage.on(plugin.events.resetLayout.getName(), function(q) {
-            if (!trackEvent("layout_reset")) return;
-            if (!initing)
-              tracker.trackEvent("Player.View","DefaultLayout");
-          });
-
-          Engage.on(plugin.events.zoomChange.getName(), function() {
-            if (!trackEvent("zoom")) return;
-            var now = new Date().getTime();
-            if (now > (last_zoom_update + zoom_timeout)) {
-              tracker.trackEvent("Player.View","Zoom");
-              last_zoom_update = now;
-            }
-          });
-        }
-
-        function trackEvent(e) {
-          if (! track_events) return false;
-
-          if (track_events.indexOf(e) >= 0) return true;
-        }
-
-      });
-      Engage.log("Piwik: Init");
-    } else {
-      Engage.log("Piwik: tracking not configured");
-    }
-
-    function initTracker(tracker, mediapackage) {
-      if (tracker && mediapackage && !mediapackageError && mediapackage.get("ready")) {
-         var seriesid = "series not set",
-             seriestitle = "series not set",
-             presenter = "presenter unknown";
-
-        if (mediapackage.get("seriesid") && mediapackage.get("seriesid").length > 0) {
-          seriesid = mediapackage.get("seriesid");
-        }
-        if (mediapackage.get("series") && mediapackage.get("series").length > 0) {
-          seriestitle = mediapackage.get("series");
-        }
-        if (mediapackage.get("creator") && mediapackage.get("creator").length > 0) {
-          presenter = mediapackage.get("creator");
-        }
-        tracker.setCustomVariable(1, "event", mediapackage.get("title") + " (" + mediapackage.get("eventid") + ")", "page");
-        tracker.setCustomVariable(2, "series", seriestitle + " (" + seriesid + ")", "page");
-        tracker.setCustomVariable(3, "presenter", presenter, "page");
-        tracker.setCustomVariable(4, "view_mode", Engage.model.get("mode"), "page");
-        tracker.setDocumentTitle(mediapackage.get("title") + " - " + presenter);
-        tracker.trackPageView(mediapackage.get("title") + " - " + presenter);
-        if (heartbeat > 0) tracker.enableHeartBeatTimer(heartbeat);
-        Engage.trigger(plugin.events.customNotification.getName(),
-            translate('piwik_tracking',
-            'Usage data will be collected with Piwik. You can use the Do-Not-Track settings of your browser to prevent this.'));
-        Engage.log("Piwik: Tracker initialized");
-        setTimeout(function () {
-          initing = false;
-        }, 2000);
-      }
-    }
-
-    function initTranslate(language, funcSuccess, funcError) {
-      var path = Engage.getPluginPath('EngagePluginCustomPiwik').replace(/(\.\.\/)/g, '');
-      /* this solution is really bad, fix it... */
-      var jsonstr = window.location.origin + '/engage/theodul/' + path;
-
-      Engage.log('Controls: selecting language ' + language);
-      jsonstr += 'language/' + language + '.json';
-      $.ajax({
-        url: jsonstr,
-        dataType: 'json',
-        success: function (data) {
-          if (data) {
-            data.value_locale = language;
-            translations = data;
-            if (funcSuccess) {
-              funcSuccess(translations);
-            }
-          } else if (funcError) {
-            funcError();
-          }
-        },
-        error: function () {
-          if (funcError) {
-            funcError();
-          }
-        }
-      });
-    }
-
-    function translate(str, strIfNotFound) {
-      return (translations[str] != undefined) ? translations[str] : strIfNotFound;
-    }
-
-    function isDoNotTrackStatus() {
-      if (window.navigator.doNotTrack == 1 || window.navigator.msDoNotTrack == 1 ) {
-        return true;
-      }
-      return false;
-    }
-
-    return plugin;
-});
diff --git a/player/matterhorn-engage-theodul-plugin-controls/src/main/resources/static/language/de-DE.json b/player/plugin/controls/language/de-DE.json
similarity index 100%
rename from player/matterhorn-engage-theodul-plugin-controls/src/main/resources/static/language/de-DE.json
rename to player/plugin/controls/language/de-DE.json
diff --git a/player/matterhorn-engage-theodul-plugin-controls/src/main/resources/static/language/el-GR.json b/player/plugin/controls/language/el-GR.json
similarity index 100%
rename from player/matterhorn-engage-theodul-plugin-controls/src/main/resources/static/language/el-GR.json
rename to player/plugin/controls/language/el-GR.json
diff --git a/player/matterhorn-engage-theodul-plugin-controls/src/main/resources/static/language/en-GB.json b/player/plugin/controls/language/en-GB.json
similarity index 100%
rename from player/matterhorn-engage-theodul-plugin-controls/src/main/resources/static/language/en-GB.json
rename to player/plugin/controls/language/en-GB.json
diff --git a/player/matterhorn-engage-theodul-plugin-controls/src/main/resources/static/language/en-US.json b/player/plugin/controls/language/en-US.json
similarity index 100%
rename from player/matterhorn-engage-theodul-plugin-controls/src/main/resources/static/language/en-US.json
rename to player/plugin/controls/language/en-US.json
diff --git a/player/matterhorn-engage-theodul-plugin-controls/src/main/resources/static/language/es-ES.json b/player/plugin/controls/language/es-ES.json
similarity index 100%
rename from player/matterhorn-engage-theodul-plugin-controls/src/main/resources/static/language/es-ES.json
rename to player/plugin/controls/language/es-ES.json
diff --git a/player/matterhorn-engage-theodul-plugin-controls/src/main/resources/static/language/fr-FR.json b/player/plugin/controls/language/fr-FR.json
similarity index 100%
rename from player/matterhorn-engage-theodul-plugin-controls/src/main/resources/static/language/fr-FR.json
rename to player/plugin/controls/language/fr-FR.json
diff --git a/player/matterhorn-engage-theodul-plugin-controls/src/main/resources/static/language/gl-ES.json b/player/plugin/controls/language/gl-ES.json
similarity index 100%
rename from player/matterhorn-engage-theodul-plugin-controls/src/main/resources/static/language/gl-ES.json
rename to player/plugin/controls/language/gl-ES.json
diff --git a/player/matterhorn-engage-theodul-plugin-controls/src/main/resources/static/language/he-IL.json b/player/plugin/controls/language/he-IL.json
similarity index 100%
rename from player/matterhorn-engage-theodul-plugin-controls/src/main/resources/static/language/he-IL.json
rename to player/plugin/controls/language/he-IL.json
diff --git a/player/matterhorn-engage-theodul-plugin-controls/src/main/resources/static/language/nl-NL.json b/player/plugin/controls/language/nl-NL.json
similarity index 100%
rename from player/matterhorn-engage-theodul-plugin-controls/src/main/resources/static/language/nl-NL.json
rename to player/plugin/controls/language/nl-NL.json
diff --git a/player/matterhorn-engage-theodul-plugin-controls/src/main/resources/static/language/pl-PL.json b/player/plugin/controls/language/pl-PL.json
similarity index 100%
rename from player/matterhorn-engage-theodul-plugin-controls/src/main/resources/static/language/pl-PL.json
rename to player/plugin/controls/language/pl-PL.json
diff --git a/player/matterhorn-engage-theodul-plugin-controls/src/main/resources/static/language/sl-SI.json b/player/plugin/controls/language/sl-SI.json
similarity index 100%
rename from player/matterhorn-engage-theodul-plugin-controls/src/main/resources/static/language/sl-SI.json
rename to player/plugin/controls/language/sl-SI.json
diff --git a/player/matterhorn-engage-theodul-plugin-controls/src/main/resources/static/language/sv-SE.json b/player/plugin/controls/language/sv-SE.json
similarity index 100%
rename from player/matterhorn-engage-theodul-plugin-controls/src/main/resources/static/language/sv-SE.json
rename to player/plugin/controls/language/sv-SE.json
diff --git a/player/matterhorn-engage-theodul-plugin-controls/src/main/resources/static/language/zh-CN.json b/player/plugin/controls/language/zh-CN.json
similarity index 100%
rename from player/matterhorn-engage-theodul-plugin-controls/src/main/resources/static/language/zh-CN.json
rename to player/plugin/controls/language/zh-CN.json
diff --git a/player/matterhorn-engage-theodul-plugin-controls/src/main/resources/static/language/zh-TW.json b/player/plugin/controls/language/zh-TW.json
similarity index 100%
rename from player/matterhorn-engage-theodul-plugin-controls/src/main/resources/static/language/zh-TW.json
rename to player/plugin/controls/language/zh-TW.json
diff --git a/player/matterhorn-engage-theodul-plugin-controls/src/main/resources/static/lib/jqueryui/images/ui-bg_diagonals-thick_18_b81900_40x40.png b/player/plugin/controls/lib/jqueryui/images/ui-bg_diagonals-thick_18_b81900_40x40.png
old mode 100755
new mode 100644
similarity index 100%
rename from player/matterhorn-engage-theodul-plugin-controls/src/main/resources/static/lib/jqueryui/images/ui-bg_diagonals-thick_18_b81900_40x40.png
rename to player/plugin/controls/lib/jqueryui/images/ui-bg_diagonals-thick_18_b81900_40x40.png
diff --git a/player/matterhorn-engage-theodul-plugin-controls/src/main/resources/static/lib/jqueryui/images/ui-bg_diagonals-thick_20_666666_40x40.png b/player/plugin/controls/lib/jqueryui/images/ui-bg_diagonals-thick_20_666666_40x40.png
old mode 100755
new mode 100644
similarity index 100%
rename from player/matterhorn-engage-theodul-plugin-controls/src/main/resources/static/lib/jqueryui/images/ui-bg_diagonals-thick_20_666666_40x40.png
rename to player/plugin/controls/lib/jqueryui/images/ui-bg_diagonals-thick_20_666666_40x40.png
diff --git a/player/matterhorn-engage-theodul-plugin-controls/src/main/resources/static/lib/jqueryui/images/ui-bg_flat_10_000000_40x100.png b/player/plugin/controls/lib/jqueryui/images/ui-bg_flat_10_000000_40x100.png
old mode 100755
new mode 100644
similarity index 100%
rename from player/matterhorn-engage-theodul-plugin-controls/src/main/resources/static/lib/jqueryui/images/ui-bg_flat_10_000000_40x100.png
rename to player/plugin/controls/lib/jqueryui/images/ui-bg_flat_10_000000_40x100.png
diff --git a/player/matterhorn-engage-theodul-plugin-controls/src/main/resources/static/lib/jqueryui/images/ui-bg_glass_100_f6f6f6_1x400.png b/player/plugin/controls/lib/jqueryui/images/ui-bg_glass_100_f6f6f6_1x400.png
old mode 100755
new mode 100644
similarity index 100%
rename from player/matterhorn-engage-theodul-plugin-controls/src/main/resources/static/lib/jqueryui/images/ui-bg_glass_100_f6f6f6_1x400.png
rename to player/plugin/controls/lib/jqueryui/images/ui-bg_glass_100_f6f6f6_1x400.png
diff --git a/player/matterhorn-engage-theodul-plugin-controls/src/main/resources/static/lib/jqueryui/images/ui-bg_glass_100_fdf5ce_1x400.png b/player/plugin/controls/lib/jqueryui/images/ui-bg_glass_100_fdf5ce_1x400.png
old mode 100755
new mode 100644
similarity index 100%
rename from player/matterhorn-engage-theodul-plugin-controls/src/main/resources/static/lib/jqueryui/images/ui-bg_glass_100_fdf5ce_1x400.png
rename to player/plugin/controls/lib/jqueryui/images/ui-bg_glass_100_fdf5ce_1x400.png
diff --git a/player/matterhorn-engage-theodul-plugin-controls/src/main/resources/static/lib/jqueryui/images/ui-bg_glass_65_ffffff_1x400.png b/player/plugin/controls/lib/jqueryui/images/ui-bg_glass_65_ffffff_1x400.png
old mode 100755
new mode 100644
similarity index 100%
rename from player/matterhorn-engage-theodul-plugin-controls/src/main/resources/static/lib/jqueryui/images/ui-bg_glass_65_ffffff_1x400.png
rename to player/plugin/controls/lib/jqueryui/images/ui-bg_glass_65_ffffff_1x400.png
diff --git a/player/matterhorn-engage-theodul-plugin-controls/src/main/resources/static/lib/jqueryui/images/ui-bg_gloss-wave_35_f6a828_500x100.png b/player/plugin/controls/lib/jqueryui/images/ui-bg_gloss-wave_35_f6a828_500x100.png
old mode 100755
new mode 100644
similarity index 100%
rename from player/matterhorn-engage-theodul-plugin-controls/src/main/resources/static/lib/jqueryui/images/ui-bg_gloss-wave_35_f6a828_500x100.png
rename to player/plugin/controls/lib/jqueryui/images/ui-bg_gloss-wave_35_f6a828_500x100.png
diff --git a/player/matterhorn-engage-theodul-plugin-controls/src/main/resources/static/lib/jqueryui/images/ui-bg_highlight-soft_100_eeeeee_1x100.png b/player/plugin/controls/lib/jqueryui/images/ui-bg_highlight-soft_100_eeeeee_1x100.png
old mode 100755
new mode 100644
similarity index 100%
rename from player/matterhorn-engage-theodul-plugin-controls/src/main/resources/static/lib/jqueryui/images/ui-bg_highlight-soft_100_eeeeee_1x100.png
rename to player/plugin/controls/lib/jqueryui/images/ui-bg_highlight-soft_100_eeeeee_1x100.png
diff --git a/player/matterhorn-engage-theodul-plugin-controls/src/main/resources/static/lib/jqueryui/images/ui-bg_highlight-soft_75_ffe45c_1x100.png b/player/plugin/controls/lib/jqueryui/images/ui-bg_highlight-soft_75_ffe45c_1x100.png
old mode 100755
new mode 100644
similarity index 100%
rename from player/matterhorn-engage-theodul-plugin-controls/src/main/resources/static/lib/jqueryui/images/ui-bg_highlight-soft_75_ffe45c_1x100.png
rename to player/plugin/controls/lib/jqueryui/images/ui-bg_highlight-soft_75_ffe45c_1x100.png
diff --git a/player/matterhorn-engage-theodul-plugin-controls/src/main/resources/static/lib/jqueryui/images/ui-icons_222222_256x240.png b/player/plugin/controls/lib/jqueryui/images/ui-icons_222222_256x240.png
old mode 100755
new mode 100644
similarity index 100%
rename from player/matterhorn-engage-theodul-plugin-controls/src/main/resources/static/lib/jqueryui/images/ui-icons_222222_256x240.png
rename to player/plugin/controls/lib/jqueryui/images/ui-icons_222222_256x240.png
diff --git a/player/matterhorn-engage-theodul-plugin-controls/src/main/resources/static/lib/jqueryui/images/ui-icons_228ef1_256x240.png b/player/plugin/controls/lib/jqueryui/images/ui-icons_228ef1_256x240.png
old mode 100755
new mode 100644
similarity index 100%
rename from player/matterhorn-engage-theodul-plugin-controls/src/main/resources/static/lib/jqueryui/images/ui-icons_228ef1_256x240.png
rename to player/plugin/controls/lib/jqueryui/images/ui-icons_228ef1_256x240.png
diff --git a/player/matterhorn-engage-theodul-plugin-controls/src/main/resources/static/lib/jqueryui/images/ui-icons_ef8c08_256x240.png b/player/plugin/controls/lib/jqueryui/images/ui-icons_ef8c08_256x240.png
old mode 100755
new mode 100644
similarity index 100%
rename from player/matterhorn-engage-theodul-plugin-controls/src/main/resources/static/lib/jqueryui/images/ui-icons_ef8c08_256x240.png
rename to player/plugin/controls/lib/jqueryui/images/ui-icons_ef8c08_256x240.png
diff --git a/player/matterhorn-engage-theodul-plugin-controls/src/main/resources/static/lib/jqueryui/images/ui-icons_ffd27a_256x240.png b/player/plugin/controls/lib/jqueryui/images/ui-icons_ffd27a_256x240.png
old mode 100755
new mode 100644
similarity index 100%
rename from player/matterhorn-engage-theodul-plugin-controls/src/main/resources/static/lib/jqueryui/images/ui-icons_ffd27a_256x240.png
rename to player/plugin/controls/lib/jqueryui/images/ui-icons_ffd27a_256x240.png
diff --git a/player/matterhorn-engage-theodul-plugin-controls/src/main/resources/static/lib/jqueryui/images/ui-icons_ffffff_256x240.png b/player/plugin/controls/lib/jqueryui/images/ui-icons_ffffff_256x240.png
old mode 100755
new mode 100644
similarity index 100%
rename from player/matterhorn-engage-theodul-plugin-controls/src/main/resources/static/lib/jqueryui/images/ui-icons_ffffff_256x240.png
rename to player/plugin/controls/lib/jqueryui/images/ui-icons_ffffff_256x240.png
diff --git a/player/matterhorn-engage-theodul-plugin-controls/src/main/resources/static/lib/jqueryui/jquery-ui.css b/player/plugin/controls/lib/jqueryui/jquery-ui.css
old mode 100755
new mode 100644
similarity index 100%
rename from player/matterhorn-engage-theodul-plugin-controls/src/main/resources/static/lib/jqueryui/jquery-ui.css
rename to player/plugin/controls/lib/jqueryui/jquery-ui.css
diff --git a/player/matterhorn-engage-theodul-plugin-controls/src/main/resources/static/lib/jqueryui/jquery-ui.js b/player/plugin/controls/lib/jqueryui/jquery-ui.js
old mode 100755
new mode 100644
similarity index 100%
rename from player/matterhorn-engage-theodul-plugin-controls/src/main/resources/static/lib/jqueryui/jquery-ui.js
rename to player/plugin/controls/lib/jqueryui/jquery-ui.js
diff --git a/player/matterhorn-engage-theodul-plugin-controls/src/main/resources/static/lib/jqueryui/jquery-ui.min.css b/player/plugin/controls/lib/jqueryui/jquery-ui.min.css
old mode 100755
new mode 100644
similarity index 100%
rename from player/matterhorn-engage-theodul-plugin-controls/src/main/resources/static/lib/jqueryui/jquery-ui.min.css
rename to player/plugin/controls/lib/jqueryui/jquery-ui.min.css
diff --git a/player/matterhorn-engage-theodul-plugin-controls/src/main/resources/static/lib/jqueryui/jquery-ui.min.js b/player/plugin/controls/lib/jqueryui/jquery-ui.min.js
old mode 100755
new mode 100644
similarity index 100%
rename from player/matterhorn-engage-theodul-plugin-controls/src/main/resources/static/lib/jqueryui/jquery-ui.min.js
rename to player/plugin/controls/lib/jqueryui/jquery-ui.min.js
diff --git a/player/matterhorn-engage-theodul-plugin-controls/src/main/resources/static/lib/jqueryui/jquery-ui.structure.css b/player/plugin/controls/lib/jqueryui/jquery-ui.structure.css
old mode 100755
new mode 100644
similarity index 100%
rename from player/matterhorn-engage-theodul-plugin-controls/src/main/resources/static/lib/jqueryui/jquery-ui.structure.css
rename to player/plugin/controls/lib/jqueryui/jquery-ui.structure.css
diff --git a/player/matterhorn-engage-theodul-plugin-controls/src/main/resources/static/lib/jqueryui/jquery-ui.structure.min.css b/player/plugin/controls/lib/jqueryui/jquery-ui.structure.min.css
old mode 100755
new mode 100644
similarity index 100%
rename from player/matterhorn-engage-theodul-plugin-controls/src/main/resources/static/lib/jqueryui/jquery-ui.structure.min.css
rename to player/plugin/controls/lib/jqueryui/jquery-ui.structure.min.css
diff --git a/player/matterhorn-engage-theodul-plugin-controls/src/main/resources/static/lib/jqueryui/jquery-ui.theme.css b/player/plugin/controls/lib/jqueryui/jquery-ui.theme.css
old mode 100755
new mode 100644
similarity index 100%
rename from player/matterhorn-engage-theodul-plugin-controls/src/main/resources/static/lib/jqueryui/jquery-ui.theme.css
rename to player/plugin/controls/lib/jqueryui/jquery-ui.theme.css
diff --git a/player/matterhorn-engage-theodul-plugin-controls/src/main/resources/static/lib/jqueryui/jquery-ui.theme.min.css b/player/plugin/controls/lib/jqueryui/jquery-ui.theme.min.css
old mode 100755
new mode 100644
similarity index 100%
rename from player/matterhorn-engage-theodul-plugin-controls/src/main/resources/static/lib/jqueryui/jquery-ui.theme.min.css
rename to player/plugin/controls/lib/jqueryui/jquery-ui.theme.min.css
diff --git a/player/matterhorn-engage-theodul-plugin-controls/src/main/resources/static/main.js b/player/plugin/controls/main.js
similarity index 99%
rename from player/matterhorn-engage-theodul-plugin-controls/src/main/resources/static/main.js
rename to player/plugin/controls/main.js
index bdddd14b1579c927a73f94cd1a5b2e835e76b238..2723562ef453e6510241547b438104a6c134d729 100644
--- a/player/matterhorn-engage-theodul-plugin-controls/src/main/resources/static/main.js
+++ b/player/plugin/controls/main.js
@@ -294,7 +294,7 @@ define(['require', 'jquery', 'underscore', 'backbone', 'basil', 'bootbox', 'enga
 
   function initTranslate(language, funcSuccess, funcError) {
     var path = Engage.getPluginPath('EngagePluginControls').replace(/(\.\.\/)/g, '');
-    var jsonstr = window.location.origin + '/engage/theodul/' + path; // this solution is really bad, fix it...
+    var jsonstr = path; // this solution is really bad, fix it...
 
     Engage.log('Controls: selecting language ' + language);
     jsonstr += 'language/' + language + '.json';
diff --git a/player/matterhorn-engage-theodul-plugin-controls/src/main/resources/static/styles/desktop_bottom.css b/player/plugin/controls/styles/desktop_bottom.css
similarity index 100%
rename from player/matterhorn-engage-theodul-plugin-controls/src/main/resources/static/styles/desktop_bottom.css
rename to player/plugin/controls/styles/desktop_bottom.css
diff --git a/player/matterhorn-engage-theodul-plugin-controls/src/main/resources/static/styles/desktop_top.css b/player/plugin/controls/styles/desktop_top.css
similarity index 100%
rename from player/matterhorn-engage-theodul-plugin-controls/src/main/resources/static/styles/desktop_top.css
rename to player/plugin/controls/styles/desktop_top.css
diff --git a/player/matterhorn-engage-theodul-plugin-controls/src/main/resources/static/styles/embed.css b/player/plugin/controls/styles/embed.css
similarity index 100%
rename from player/matterhorn-engage-theodul-plugin-controls/src/main/resources/static/styles/embed.css
rename to player/plugin/controls/styles/embed.css
diff --git a/player/matterhorn-engage-theodul-plugin-controls/src/main/resources/static/styles/mobile.css b/player/plugin/controls/styles/mobile.css
similarity index 100%
rename from player/matterhorn-engage-theodul-plugin-controls/src/main/resources/static/styles/mobile.css
rename to player/plugin/controls/styles/mobile.css
diff --git a/player/matterhorn-engage-theodul-plugin-controls/src/main/resources/static/templates/desktop_bottom.html b/player/plugin/controls/templates/desktop_bottom.html
similarity index 100%
rename from player/matterhorn-engage-theodul-plugin-controls/src/main/resources/static/templates/desktop_bottom.html
rename to player/plugin/controls/templates/desktop_bottom.html
diff --git a/player/matterhorn-engage-theodul-plugin-controls/src/main/resources/static/templates/desktop_top.html b/player/plugin/controls/templates/desktop_top.html
similarity index 100%
rename from player/matterhorn-engage-theodul-plugin-controls/src/main/resources/static/templates/desktop_top.html
rename to player/plugin/controls/templates/desktop_top.html
diff --git a/player/matterhorn-engage-theodul-plugin-controls/src/main/resources/static/templates/desktop_top_ifbottom.html b/player/plugin/controls/templates/desktop_top_ifbottom.html
similarity index 100%
rename from player/matterhorn-engage-theodul-plugin-controls/src/main/resources/static/templates/desktop_top_ifbottom.html
rename to player/plugin/controls/templates/desktop_top_ifbottom.html
diff --git a/player/matterhorn-engage-theodul-plugin-controls/src/main/resources/static/templates/embed.html b/player/plugin/controls/templates/embed.html
similarity index 100%
rename from player/matterhorn-engage-theodul-plugin-controls/src/main/resources/static/templates/embed.html
rename to player/plugin/controls/templates/embed.html
diff --git a/player/matterhorn-engage-theodul-plugin-controls/src/main/resources/static/templates/mobile.html b/player/plugin/controls/templates/mobile.html
similarity index 100%
rename from player/matterhorn-engage-theodul-plugin-controls/src/main/resources/static/templates/mobile.html
rename to player/plugin/controls/templates/mobile.html
diff --git a/player/matterhorn-engage-theodul-plugin-controls/src/main/resources/static/utils.js b/player/plugin/controls/utils.js
similarity index 100%
rename from player/matterhorn-engage-theodul-plugin-controls/src/main/resources/static/utils.js
rename to player/plugin/controls/utils.js
diff --git a/player/plugin/custom-mhConnection/language/de-DE.json b/player/plugin/custom-mhConnection/language/de-DE.json
new file mode 100644
index 0000000000000000000000000000000000000000..61225060856c37638cc7d1095237af5ae22b6e62
--- /dev/null
+++ b/player/plugin/custom-mhConnection/language/de-DE.json
@@ -0,0 +1,8 @@
+{
+  "value_locale":"de",
+  "error_mediaPackageInformationNotLoaded":"Es gibt zwei mögliche Ursachen für diesen Fehler:",
+  "error_mediaPackageInformationNotLoaded_reason1":"Das Video ist nicht mehr verfügbar",
+  "error_mediaPackageInformationNotLoaded_reason2":"Das Video ist geschützt und Sie müssen sich einloggen",
+  "error_noMediaInformationAvailable":"Es sind keine Medien-Informationen verfügbar.",
+  "error_endpointNotAvailable":"Der Such-Service ist momentan nicht verfügbar."
+}
\ No newline at end of file
diff --git a/player/plugin/custom-mhConnection/language/el-GR.json b/player/plugin/custom-mhConnection/language/el-GR.json
new file mode 100644
index 0000000000000000000000000000000000000000..96a1df787970645c2d545481b785700f5f05ac75
--- /dev/null
+++ b/player/plugin/custom-mhConnection/language/el-GR.json
@@ -0,0 +1,8 @@
+{
+  "value_locale":"en",
+  "error_mediaPackageInformationNotLoaded":"Υπάρχουν δύο πιθανές αιτίες για αυτό το σφάλμα:",
+  "error_mediaPackageInformationNotLoaded_reason1":"Το αρχείο πολυμέσων δεν είναι πια διαθέσιμο",
+  "error_mediaPackageInformationNotLoaded_reason2":"Το αρχείο πολυμέσων προστατεύεται και θα πρέπει να συνδεθείτε",
+  "error_noMediaInformationAvailable":"Οι πληροφορίες του αρχείου πολυμέσων δεν είναι διαθέσιμες.",
+  "error_endpointNotAvailable":"Η υπηρεσία αναζήτησης δεν είναι διαθέσιμη αυτήν τη στιγμή."
+}
\ No newline at end of file
diff --git a/player/plugin/custom-mhConnection/language/en-GB.json b/player/plugin/custom-mhConnection/language/en-GB.json
new file mode 100644
index 0000000000000000000000000000000000000000..00dc5a64bfbfb7eb6dbad0ee72e41247d9ddebcc
--- /dev/null
+++ b/player/plugin/custom-mhConnection/language/en-GB.json
@@ -0,0 +1,8 @@
+{
+  "value_locale":"en",
+  "error_mediaPackageInformationNotLoaded":"There are two possible reasons for this error:",
+  "error_mediaPackageInformationNotLoaded_reason1":"The media is not available any more",
+  "error_mediaPackageInformationNotLoaded_reason2":"The media is protected and you need to log in",
+  "error_noMediaInformationAvailable":"No media information are available.",
+  "error_endpointNotAvailable":"The search service is currently not available."
+}
\ No newline at end of file
diff --git a/player/plugin/custom-mhConnection/language/en-US.json b/player/plugin/custom-mhConnection/language/en-US.json
new file mode 100644
index 0000000000000000000000000000000000000000..90b753a7d13a83ae7d359a3133a47ee6cf16cbb0
--- /dev/null
+++ b/player/plugin/custom-mhConnection/language/en-US.json
@@ -0,0 +1,8 @@
+{
+    "value_locale": "en",
+    "error_mediaPackageInformationNotLoaded": "There are two possible reasons for this error:",
+    "error_mediaPackageInformationNotLoaded_reason1": "The media is not available any more",
+    "error_mediaPackageInformationNotLoaded_reason2": "The media is protected and you need to log in",
+    "error_noMediaInformationAvailable": "No media information are available.",
+    "error_endpointNotAvailable": "The search service is currently not available."
+}
diff --git a/player/plugin/custom-mhConnection/language/es-ES.json b/player/plugin/custom-mhConnection/language/es-ES.json
new file mode 100644
index 0000000000000000000000000000000000000000..812700c7d3d68655139adf60a00d939a673dddad
--- /dev/null
+++ b/player/plugin/custom-mhConnection/language/es-ES.json
@@ -0,0 +1,8 @@
+{
+  "value_locale":"es",
+  "error_mediaPackageInformationNotLoaded":"Hay dos posibles causas para este error:",
+  "error_mediaPackageInformationNotLoaded_reason1":"Los vídeos ya no están disponibles",
+  "error_mediaPackageInformationNotLoaded_reason2":"Los vídeos están protegidos y se requiere iniciar sesión",
+  "error_noMediaInformationAvailable":"No hay información disponible sobre los vídeos.",
+  "error_endpointNotAvailable":"El servicio de búsqueda no está disponible en este momento."
+}
\ No newline at end of file
diff --git a/player/plugin/custom-mhConnection/language/fr-FR.json b/player/plugin/custom-mhConnection/language/fr-FR.json
new file mode 100644
index 0000000000000000000000000000000000000000..4a698bd77523301a31c1557fad4474b23ec2184a
--- /dev/null
+++ b/player/plugin/custom-mhConnection/language/fr-FR.json
@@ -0,0 +1,8 @@
+{
+  "value_locale":"fr",
+  "error_mediaPackageInformationNotLoaded":"Il y a deux raisons possibles pour cette erreur :",
+  "error_mediaPackageInformationNotLoaded_reason1":"Les médias ne sont plus disponible",
+  "error_mediaPackageInformationNotLoaded_reason2":"Les média sont protégés et vous devez vous connecter",
+  "error_noMediaInformationAvailable":"Aucune information disponible sur cette vidéo.",
+  "error_endpointNotAvailable":"Le service de recherche n'est actuellement pas disponible."
+}
\ No newline at end of file
diff --git a/player/plugin/custom-mhConnection/language/gl-ES.json b/player/plugin/custom-mhConnection/language/gl-ES.json
new file mode 100644
index 0000000000000000000000000000000000000000..d67048c150e832c1628e468d0c674147a493f228
--- /dev/null
+++ b/player/plugin/custom-mhConnection/language/gl-ES.json
@@ -0,0 +1,8 @@
+{
+  "value_locale":"gl",
+  "error_mediaPackageInformationNotLoaded":"Hai dúas causas posibles para este erro:",
+  "error_mediaPackageInformationNotLoaded_reason1":"Os vídeos xa non están dispoñibles",
+  "error_mediaPackageInformationNotLoaded_reason2":"Os vídeos están protexidos e requiren iniciar sesión",
+  "error_noMediaInformationAvailable":"Non hai información dispoñible sobre os vídeos.",
+  "error_endpointNotAvailable":"O servizo de busca non está dispoñible nestes momentos."
+}
\ No newline at end of file
diff --git a/player/plugin/custom-mhConnection/language/nl-NL.json b/player/plugin/custom-mhConnection/language/nl-NL.json
new file mode 100644
index 0000000000000000000000000000000000000000..89ce51eb496ca20f06f03ffe52ac1dc0748379c5
--- /dev/null
+++ b/player/plugin/custom-mhConnection/language/nl-NL.json
@@ -0,0 +1,8 @@
+{
+  "value_locale":"en",
+  "error_mediaPackageInformationNotLoaded":"There are two possible reasons for this error:",
+  "error_mediaPackageInformationNotLoaded_reason1":"The media is not available any more",
+  "error_mediaPackageInformationNotLoaded_reason2":"The media is protected and you need to log in",
+  "error_noMediaInformationAvailable":"Er zijn geen mediagegevens beschikbaar.",
+  "error_endpointNotAvailable":"De zoekservice is momenteel niet beschikbaar."
+}
\ No newline at end of file
diff --git a/player/plugin/custom-mhConnection/language/pl-PL.json b/player/plugin/custom-mhConnection/language/pl-PL.json
new file mode 100644
index 0000000000000000000000000000000000000000..39a947a117eb32f0da3099a9e89ab53dec50f949
--- /dev/null
+++ b/player/plugin/custom-mhConnection/language/pl-PL.json
@@ -0,0 +1,8 @@
+{
+  "value_locale":"pl",
+  "error_mediaPackageInformationNotLoaded":"There are two possible reasons for this error:",
+  "error_mediaPackageInformationNotLoaded_reason1":"The media is not available any more",
+  "error_mediaPackageInformationNotLoaded_reason2":"The media is protected and you need to log in",
+  "error_noMediaInformationAvailable":"Brak informacji o mediach.",
+  "error_endpointNotAvailable":"Usługa wyszukiwania jest obecnie niedostępna."
+}
\ No newline at end of file
diff --git a/player/plugin/custom-mhConnection/language/sv-SE.json b/player/plugin/custom-mhConnection/language/sv-SE.json
new file mode 100644
index 0000000000000000000000000000000000000000..68345e228330b138a264478d2b911f584566e37a
--- /dev/null
+++ b/player/plugin/custom-mhConnection/language/sv-SE.json
@@ -0,0 +1,8 @@
+{
+  "value_locale":"sv",
+  "error_mediaPackageInformationNotLoaded":"There are two possible reasons for this error:",
+  "error_mediaPackageInformationNotLoaded_reason1":"The media is not available any more",
+  "error_mediaPackageInformationNotLoaded_reason2":"The media is protected and you need to log in",
+  "error_noMediaInformationAvailable":"Ingen mediainformation tillgänglig.",
+  "error_endpointNotAvailable":"Söktjänsten är inte tillgänglig för tillfället."
+}
\ No newline at end of file
diff --git a/player/plugin/custom-mhConnection/language/zh-CN.json b/player/plugin/custom-mhConnection/language/zh-CN.json
new file mode 100644
index 0000000000000000000000000000000000000000..47681d3e0c97689e4edf2bdeed74a7b0ff832fb7
--- /dev/null
+++ b/player/plugin/custom-mhConnection/language/zh-CN.json
@@ -0,0 +1,8 @@
+{
+  "value_locale":"zh",
+  "error_mediaPackageInformationNotLoaded":"There are two possible reasons for this error:",
+  "error_mediaPackageInformationNotLoaded_reason1":"The media is not available any more",
+  "error_mediaPackageInformationNotLoaded_reason2":"The media is protected and you need to log in",
+  "error_noMediaInformationAvailable":"无可用的媒体信息。",
+  "error_endpointNotAvailable":"搜索服务目前不可用。"
+}
\ No newline at end of file
diff --git a/player/plugin/custom-mhConnection/language/zh-TW.json b/player/plugin/custom-mhConnection/language/zh-TW.json
new file mode 100644
index 0000000000000000000000000000000000000000..bee1472cfa143194062eb5ce38b5905486d70212
--- /dev/null
+++ b/player/plugin/custom-mhConnection/language/zh-TW.json
@@ -0,0 +1,8 @@
+{
+  "value_locale":"zh",
+  "error_mediaPackageInformationNotLoaded":"There are two possible reasons for this error:",
+  "error_mediaPackageInformationNotLoaded_reason1":"The media is not available any more",
+  "error_mediaPackageInformationNotLoaded_reason2":"The media is protected and you need to log in",
+  "error_noMediaInformationAvailable":"沒有可用的媒體信息。",
+  "error_endpointNotAvailable":"搜索服務目前不可用。"
+}
\ No newline at end of file
diff --git a/player/matterhorn-engage-theodul-plugin-custom-mhConnection/src/main/resources/static/main.js b/player/plugin/custom-mhConnection/main.js
similarity index 75%
rename from player/matterhorn-engage-theodul-plugin-custom-mhConnection/src/main/resources/static/main.js
rename to player/plugin/custom-mhConnection/main.js
index d3744e6729a038af8f2f2ee88740ebf03de692b5..2f9168562878544bb90934136722d5808e1ab4d6 100644
--- a/player/matterhorn-engage-theodul-plugin-custom-mhConnection/src/main/resources/static/main.js
+++ b/player/plugin/custom-mhConnection/main.js
@@ -94,15 +94,10 @@ define(["require", "jquery", "backbone", "engage/core"], function(require, $, Ba
             break;
     }
 
-    /* change these variables */
-    var SEARCH_ENDPOINT = "/search/episode.json";
-
     /* don't change these variables */
-    var initCount = 5;
-    var InfoMeModel;
+    var initCount = 3;
     var MediaPackageModel;
     var ViewsModel;
-    var FootprintCollection;
     var mediaPackageID = "";
     var mediaPackage; // mediaPackage data
     var mediaInfo; // media info like video tracks and attachments
@@ -111,7 +106,7 @@ define(["require", "jquery", "backbone", "engage/core"], function(require, $, Ba
 
     function initTranslate(language) {
         var path = Engage.getPluginPath("EngagePluginCustomMhConnection").replace(/(\.\.\/)/g, "");
-        var jsonstr = window.location.origin + "/engage/theodul/" + path; // this solution is really bad, fix it...
+        var jsonstr = path; // this solution is really bad, fix it...
 
         Engage.log("Controls: selecting language " + language);
         jsonstr += "language/" + language + ".json";
@@ -144,32 +139,6 @@ define(["require", "jquery", "backbone", "engage/core"], function(require, $, Ba
         }
     }
 
-    /**
-     * callSearchEndpoint
-     *
-     * @param callback
-     */
-    function callSearchEndpoint(callback) {
-        if (callback === "function") {
-            $.ajax({
-                url: SEARCH_ENDPOINT,
-                data: {
-                    id: mediaPackageID
-                },
-                cache: false
-            }).done(function(data) {
-                // split search results
-                if (data && data["search-results"] && data["search-results"].result) {
-                    mediaPackage = data["search-results"].result;
-                    extractMediaInfo();
-                } else {
-                    Engage.trigger(plugin.events.mediaPackageModelError.getName(), translate("error_endpointNotAvailable", "A requested search endpoint is currently not available."));
-                }
-                callback();
-            });
-        }
-    }
-
     /**
      * Initialize the plugin
      */
@@ -177,10 +146,8 @@ define(["require", "jquery", "backbone", "engage/core"], function(require, $, Ba
         if (!initialized) {
             initialized = true;
             initTranslate(Engage.model.get("language"));
-            Engage.model.set("infoMe", new InfoMeModel());
             Engage.model.set("mediaPackage", new MediaPackageModel());
             Engage.model.set("views", new ViewsModel());
-            Engage.model.set("footprints", new FootprintCollection());
         }
     }
 
@@ -204,25 +171,13 @@ define(["require", "jquery", "backbone", "engage/core"], function(require, $, Ba
 
     Engage.on(plugin.events.getMediaInfo.getName(), function(callback) {
         if (callback === "function") {
-            if (!mediaPackage && !mediaInfo) {
-                callSearchEndpoint(function() {
-                    callback(mediaInfo);
-                });
-            } else {
-                callback(mediaInfo);
-            }
+            callback(mediaInfo);
         }
     });
 
     Engage.on(plugin.events.getMediaPackage.getName(), function(callback) {
         if (callback === "function") {
-            if (!mediaPackage) {
-                callSearchEndpoint(function() {
-                    callback(mediaPackage);
-                });
-            } else {
-                callback(mediaPackage);
-            }
+            callback(mediaPackage);
         }
     });
 
@@ -235,16 +190,6 @@ define(["require", "jquery", "backbone", "engage/core"], function(require, $, Ba
         }
     });
 
-    // load infoMe model
-    require([relative_plugin_path + "models/infoMe"], function(model) {
-        Engage.log("MhConnection: InfoMeModel loaded");
-        InfoMeModel = model;
-        initCount -= 1;
-        if (initCount <= 0) {
-            initPlugin();
-        }
-    });
-
     // load mediaPackage model
     require([relative_plugin_path + "models/mediaPackage"], function(model) {
         Engage.log("MhConnection: MediaPackageModel loaded");
@@ -265,15 +210,5 @@ define(["require", "jquery", "backbone", "engage/core"], function(require, $, Ba
         }
     });
 
-    // load footprint collection
-    require([relative_plugin_path + "collections/footprint"], function(collection) {
-        Engage.log("MhConnection: FootprintCollection loaded");
-        FootprintCollection = collection;
-        initCount -= 1;
-        if (initCount <= 0) {
-            initPlugin();
-        }
-    });
-
     return plugin;
 });
diff --git a/player/plugin/custom-mhConnection/models/mediaPackage.js b/player/plugin/custom-mhConnection/models/mediaPackage.js
new file mode 100644
index 0000000000000000000000000000000000000000..83b94beeaded40826ccab1c19103cc36971b7220
--- /dev/null
+++ b/player/plugin/custom-mhConnection/models/mediaPackage.js
@@ -0,0 +1,83 @@
+/**
+ * Licensed to The Apereo Foundation under one or more contributor license
+ * agreements. See the NOTICE file distributed with this work for additional
+ * information regarding copyright ownership.
+ *
+ *
+ * The Apereo Foundation licenses this file to you under the Educational
+ * Community License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of the License
+ * at:
+ *
+ *   http://opensource.org/licenses/ecl2.txt
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the
+ * License for the specific language governing permissions and limitations under
+ * the License.
+ *
+ */
+/*jslint browser: true, nomen: true*/
+/*global define, CustomEvent*/
+define(["backbone", "engage/core"], function(Backbone, Engage) {
+    "use strict";
+
+    var events = {
+        mediaPackageModelInternalError: new Engage.Event("MhConnection:mediaPackageModelInternalError", "A mediapackage model error occured", "trigger"),
+        mediaPackageLoaded: new Engage.Event("MhConnection:mediaPackageLoaded", "A mediapackage has been loaded", "trigger")
+    };
+
+    var mediaPackageID = Engage.model.get("urlParameters").id;
+    if (!mediaPackageID) {
+        mediaPackageID = "";
+    }
+
+    var MediaPackageModel = Backbone.Model.extend({
+        urlRoot: "",
+        initialize: function() {
+            Engage.log("MhConnection: Init MediaPackage model");
+            this.attributes.tracks = new Array();
+            this.attributes.tracks.push({
+                id: "testid123",
+                url: "http://localhost/moodle/filter/opencastfilter/test.mp4",
+                mimetype: "video/mp4"});
+
+            this.attributes.attachments = new Array();
+            this.attributes.attachments.push();
+
+            // Check types
+            this.attributes.series = "";
+            this.attributes.seriesid = "";
+            this.attributes.title = "";
+            this.attributes.creator = "";
+            this.attributes.date = "";
+            this.attributes.description = "";
+            this.attributes.subject = "";
+            this.attributes.contributor = "";
+            this.attributes.segments = "";
+            this.attributes.eventid = "";
+            this.attributes.ready = true;
+
+            this.trigger("change");
+            Engage.trigger(events.mediaPackageLoaded.getName());
+            Engage.log("MhConnection: Mediapackage Data change event thrown");
+
+            // Check if successful
+            // Engage.log("MhConnection: Mediapackage data not loaded successfully");
+            // Engage.trigger(events.mediaPackageModelInternalError.getName());
+        },
+        defaults: {
+            "title": "",
+            "creator": "",
+            "date": "",
+            "description": "",
+            "subject": "",
+            "tracks": {},
+            "attachments": {},
+            "ready" : false
+        }
+    });
+
+    return MediaPackageModel;
+});
diff --git a/player/plugin/custom-mhConnection/models/views.js b/player/plugin/custom-mhConnection/models/views.js
new file mode 100644
index 0000000000000000000000000000000000000000..6dddecd6d62172c3c9e1f9335daceb57c25df8c0
--- /dev/null
+++ b/player/plugin/custom-mhConnection/models/views.js
@@ -0,0 +1,72 @@
+/**
+ * Licensed to The Apereo Foundation under one or more contributor license
+ * agreements. See the NOTICE file distributed with this work for additional
+ * information regarding copyright ownership.
+ *
+ *
+ * The Apereo Foundation licenses this file to you under the Educational
+ * Community License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of the License
+ * at:
+ *
+ *   http://opensource.org/licenses/ecl2.txt
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the
+ * License for the specific language governing permissions and limitations under
+ * the License.
+ *
+ */
+/*jslint browser: true, nomen: true*/
+/*global define, CustomEvent*/
+define(["jquery", "backbone", "engage/core"], function($, Backbone, Engage) {
+    "use strict";
+
+    var ViewsModel = Backbone.Model.extend({
+        initialize: function() {
+            Engage.log("MhConnection: Init empty Views model");
+        },
+        defaults: {
+            "stats": {
+                "views": 0
+            }
+        }
+    });
+
+    var mediaPackageID = Engage.model.get("urlParameters").id;
+    if (!mediaPackageID) {
+        mediaPackageID = "";
+    }
+
+    var ViewsModel = Backbone.Model.extend({
+        urlRoot: "",
+        initialize: function() {
+            Engage.log("MhConnection: Init Views model");
+            this.put();
+        },
+        put: function() {
+            // TODO
+            Engage.log("MhConnection: Adding user to viewers - Do nothing");
+        },
+        update: function() {
+            // request model data
+            Engage.log("MhConnection: Updating views model");
+            this.fetch({
+                data: {
+                    id: mediaPackageID
+                },
+                success: function(model) {
+                    model.trigger("change");
+                }
+            });
+        },
+        defaults: {
+            "stats": {
+                "views": 0
+            }
+        }
+    });
+
+    return ViewsModel;
+});
diff --git a/player/matterhorn-engage-theodul-plugin-custom-notifications/src/main/resources/static/language/de-DE.json b/player/plugin/custom-notifications/language/de-DE.json
similarity index 100%
rename from player/matterhorn-engage-theodul-plugin-custom-notifications/src/main/resources/static/language/de-DE.json
rename to player/plugin/custom-notifications/language/de-DE.json
diff --git a/player/matterhorn-engage-theodul-plugin-custom-notifications/src/main/resources/static/language/el-GR.json b/player/plugin/custom-notifications/language/el-GR.json
similarity index 100%
rename from player/matterhorn-engage-theodul-plugin-custom-notifications/src/main/resources/static/language/el-GR.json
rename to player/plugin/custom-notifications/language/el-GR.json
diff --git a/player/matterhorn-engage-theodul-plugin-custom-notifications/src/main/resources/static/language/en-GB.json b/player/plugin/custom-notifications/language/en-GB.json
similarity index 100%
rename from player/matterhorn-engage-theodul-plugin-custom-notifications/src/main/resources/static/language/en-GB.json
rename to player/plugin/custom-notifications/language/en-GB.json
diff --git a/player/matterhorn-engage-theodul-plugin-custom-notifications/src/main/resources/static/language/en-US.json b/player/plugin/custom-notifications/language/en-US.json
similarity index 100%
rename from player/matterhorn-engage-theodul-plugin-custom-notifications/src/main/resources/static/language/en-US.json
rename to player/plugin/custom-notifications/language/en-US.json
diff --git a/player/matterhorn-engage-theodul-plugin-custom-notifications/src/main/resources/static/language/es-ES.json b/player/plugin/custom-notifications/language/es-ES.json
similarity index 100%
rename from player/matterhorn-engage-theodul-plugin-custom-notifications/src/main/resources/static/language/es-ES.json
rename to player/plugin/custom-notifications/language/es-ES.json
diff --git a/player/matterhorn-engage-theodul-plugin-custom-notifications/src/main/resources/static/language/fr-FR.json b/player/plugin/custom-notifications/language/fr-FR.json
similarity index 100%
rename from player/matterhorn-engage-theodul-plugin-custom-notifications/src/main/resources/static/language/fr-FR.json
rename to player/plugin/custom-notifications/language/fr-FR.json
diff --git a/player/matterhorn-engage-theodul-plugin-custom-notifications/src/main/resources/static/language/gl-ES.json b/player/plugin/custom-notifications/language/gl-ES.json
similarity index 100%
rename from player/matterhorn-engage-theodul-plugin-custom-notifications/src/main/resources/static/language/gl-ES.json
rename to player/plugin/custom-notifications/language/gl-ES.json
diff --git a/player/matterhorn-engage-theodul-plugin-custom-notifications/src/main/resources/static/language/he-IL.json b/player/plugin/custom-notifications/language/he-IL.json
similarity index 100%
rename from player/matterhorn-engage-theodul-plugin-custom-notifications/src/main/resources/static/language/he-IL.json
rename to player/plugin/custom-notifications/language/he-IL.json
diff --git a/player/matterhorn-engage-theodul-plugin-custom-notifications/src/main/resources/static/language/nl-NL.json b/player/plugin/custom-notifications/language/nl-NL.json
similarity index 100%
rename from player/matterhorn-engage-theodul-plugin-custom-notifications/src/main/resources/static/language/nl-NL.json
rename to player/plugin/custom-notifications/language/nl-NL.json
diff --git a/player/matterhorn-engage-theodul-plugin-custom-notifications/src/main/resources/static/language/pl-PL.json b/player/plugin/custom-notifications/language/pl-PL.json
similarity index 100%
rename from player/matterhorn-engage-theodul-plugin-custom-notifications/src/main/resources/static/language/pl-PL.json
rename to player/plugin/custom-notifications/language/pl-PL.json
diff --git a/player/matterhorn-engage-theodul-plugin-custom-notifications/src/main/resources/static/language/sl-SI.json b/player/plugin/custom-notifications/language/sl-SI.json
similarity index 100%
rename from player/matterhorn-engage-theodul-plugin-custom-notifications/src/main/resources/static/language/sl-SI.json
rename to player/plugin/custom-notifications/language/sl-SI.json
diff --git a/player/matterhorn-engage-theodul-plugin-custom-notifications/src/main/resources/static/language/sv-SE.json b/player/plugin/custom-notifications/language/sv-SE.json
similarity index 100%
rename from player/matterhorn-engage-theodul-plugin-custom-notifications/src/main/resources/static/language/sv-SE.json
rename to player/plugin/custom-notifications/language/sv-SE.json
diff --git a/player/matterhorn-engage-theodul-plugin-custom-notifications/src/main/resources/static/language/zh-CN.json b/player/plugin/custom-notifications/language/zh-CN.json
similarity index 100%
rename from player/matterhorn-engage-theodul-plugin-custom-notifications/src/main/resources/static/language/zh-CN.json
rename to player/plugin/custom-notifications/language/zh-CN.json
diff --git a/player/matterhorn-engage-theodul-plugin-custom-notifications/src/main/resources/static/language/zh-TW.json b/player/plugin/custom-notifications/language/zh-TW.json
similarity index 100%
rename from player/matterhorn-engage-theodul-plugin-custom-notifications/src/main/resources/static/language/zh-TW.json
rename to player/plugin/custom-notifications/language/zh-TW.json
diff --git a/player/matterhorn-engage-theodul-plugin-custom-notifications/src/main/resources/static/lib/alertify/alertify-bootstrap-3.css b/player/plugin/custom-notifications/lib/alertify/alertify-bootstrap-3.css
similarity index 100%
rename from player/matterhorn-engage-theodul-plugin-custom-notifications/src/main/resources/static/lib/alertify/alertify-bootstrap-3.css
rename to player/plugin/custom-notifications/lib/alertify/alertify-bootstrap-3.css
diff --git a/player/matterhorn-engage-theodul-plugin-custom-notifications/src/main/resources/static/lib/alertify/alertify.css b/player/plugin/custom-notifications/lib/alertify/alertify.css
similarity index 100%
rename from player/matterhorn-engage-theodul-plugin-custom-notifications/src/main/resources/static/lib/alertify/alertify.css
rename to player/plugin/custom-notifications/lib/alertify/alertify.css
diff --git a/player/matterhorn-engage-theodul-plugin-custom-notifications/src/main/resources/static/lib/alertify/alertify.js b/player/plugin/custom-notifications/lib/alertify/alertify.js
similarity index 100%
rename from player/matterhorn-engage-theodul-plugin-custom-notifications/src/main/resources/static/lib/alertify/alertify.js
rename to player/plugin/custom-notifications/lib/alertify/alertify.js
diff --git a/player/matterhorn-engage-theodul-plugin-custom-notifications/src/main/resources/static/lib/alertify/alertify.js.map b/player/plugin/custom-notifications/lib/alertify/alertify.js.map
similarity index 100%
rename from player/matterhorn-engage-theodul-plugin-custom-notifications/src/main/resources/static/lib/alertify/alertify.js.map
rename to player/plugin/custom-notifications/lib/alertify/alertify.js.map
diff --git a/player/matterhorn-engage-theodul-plugin-custom-notifications/src/main/resources/static/main.js b/player/plugin/custom-notifications/main.js
similarity index 99%
rename from player/matterhorn-engage-theodul-plugin-custom-notifications/src/main/resources/static/main.js
rename to player/plugin/custom-notifications/main.js
index a88aa5febc01ebfa0e996a21fb83bede0b933a93..d7a827d1196a31c18a71c7cd1876fcf11ab71f42 100644
--- a/player/matterhorn-engage-theodul-plugin-custom-notifications/src/main/resources/static/main.js
+++ b/player/plugin/custom-notifications/main.js
@@ -126,7 +126,7 @@ define(["require", "jquery", "backbone", "engage/core"], function(require, $, Ba
 
     function initTranslate(language, funcSuccess, funcError) {
         var path = Engage.getPluginPath("EngagePluginCustomNotifications").replace(/(\.\.\/)/g, "");
-        var jsonstr = window.location.origin + "/engage/theodul/" + path; // this solution is really bad, fix it...
+        var jsonstr = path; // this solution is really bad, fix it...
 
         Engage.log("Controls: selecting language " + language);
         jsonstr += "language/" + language + ".json";
diff --git a/player/matterhorn-engage-theodul-plugin-custom-notifications/src/main/resources/static/utils.js b/player/plugin/custom-notifications/utils.js
similarity index 100%
rename from player/matterhorn-engage-theodul-plugin-custom-notifications/src/main/resources/static/utils.js
rename to player/plugin/custom-notifications/utils.js
diff --git a/player/matterhorn-engage-theodul-plugin-custom-usertracking/src/main/resources/static/main.js b/player/plugin/custom-usertracking/main.js
similarity index 100%
rename from player/matterhorn-engage-theodul-plugin-custom-usertracking/src/main/resources/static/main.js
rename to player/plugin/custom-usertracking/main.js
diff --git a/player/matterhorn-engage-theodul-plugin-description/src/main/resources/static/language/de-DE.json b/player/plugin/description/language/de-DE.json
similarity index 100%
rename from player/matterhorn-engage-theodul-plugin-description/src/main/resources/static/language/de-DE.json
rename to player/plugin/description/language/de-DE.json
diff --git a/player/matterhorn-engage-theodul-plugin-description/src/main/resources/static/language/el-GR.json b/player/plugin/description/language/el-GR.json
similarity index 100%
rename from player/matterhorn-engage-theodul-plugin-description/src/main/resources/static/language/el-GR.json
rename to player/plugin/description/language/el-GR.json
diff --git a/player/matterhorn-engage-theodul-plugin-description/src/main/resources/static/language/en-GB.json b/player/plugin/description/language/en-GB.json
similarity index 100%
rename from player/matterhorn-engage-theodul-plugin-description/src/main/resources/static/language/en-GB.json
rename to player/plugin/description/language/en-GB.json
diff --git a/player/matterhorn-engage-theodul-plugin-description/src/main/resources/static/language/en-US.json b/player/plugin/description/language/en-US.json
similarity index 100%
rename from player/matterhorn-engage-theodul-plugin-description/src/main/resources/static/language/en-US.json
rename to player/plugin/description/language/en-US.json
diff --git a/player/matterhorn-engage-theodul-plugin-description/src/main/resources/static/language/es-ES.json b/player/plugin/description/language/es-ES.json
similarity index 100%
rename from player/matterhorn-engage-theodul-plugin-description/src/main/resources/static/language/es-ES.json
rename to player/plugin/description/language/es-ES.json
diff --git a/player/matterhorn-engage-theodul-plugin-description/src/main/resources/static/language/fr-FR.json b/player/plugin/description/language/fr-FR.json
similarity index 100%
rename from player/matterhorn-engage-theodul-plugin-description/src/main/resources/static/language/fr-FR.json
rename to player/plugin/description/language/fr-FR.json
diff --git a/player/matterhorn-engage-theodul-plugin-description/src/main/resources/static/language/gl-ES.json b/player/plugin/description/language/gl-ES.json
similarity index 100%
rename from player/matterhorn-engage-theodul-plugin-description/src/main/resources/static/language/gl-ES.json
rename to player/plugin/description/language/gl-ES.json
diff --git a/player/matterhorn-engage-theodul-plugin-description/src/main/resources/static/language/he-IL.json b/player/plugin/description/language/he-IL.json
similarity index 100%
rename from player/matterhorn-engage-theodul-plugin-description/src/main/resources/static/language/he-IL.json
rename to player/plugin/description/language/he-IL.json
diff --git a/player/matterhorn-engage-theodul-plugin-description/src/main/resources/static/language/nl-NL.json b/player/plugin/description/language/nl-NL.json
similarity index 100%
rename from player/matterhorn-engage-theodul-plugin-description/src/main/resources/static/language/nl-NL.json
rename to player/plugin/description/language/nl-NL.json
diff --git a/player/matterhorn-engage-theodul-plugin-description/src/main/resources/static/language/pl-PL.json b/player/plugin/description/language/pl-PL.json
similarity index 100%
rename from player/matterhorn-engage-theodul-plugin-description/src/main/resources/static/language/pl-PL.json
rename to player/plugin/description/language/pl-PL.json
diff --git a/player/matterhorn-engage-theodul-plugin-description/src/main/resources/static/language/sl-SI.json b/player/plugin/description/language/sl-SI.json
similarity index 100%
rename from player/matterhorn-engage-theodul-plugin-description/src/main/resources/static/language/sl-SI.json
rename to player/plugin/description/language/sl-SI.json
diff --git a/player/matterhorn-engage-theodul-plugin-description/src/main/resources/static/language/sv-SE.json b/player/plugin/description/language/sv-SE.json
similarity index 100%
rename from player/matterhorn-engage-theodul-plugin-description/src/main/resources/static/language/sv-SE.json
rename to player/plugin/description/language/sv-SE.json
diff --git a/player/matterhorn-engage-theodul-plugin-description/src/main/resources/static/language/zh-CN.json b/player/plugin/description/language/zh-CN.json
similarity index 100%
rename from player/matterhorn-engage-theodul-plugin-description/src/main/resources/static/language/zh-CN.json
rename to player/plugin/description/language/zh-CN.json
diff --git a/player/matterhorn-engage-theodul-plugin-description/src/main/resources/static/language/zh-TW.json b/player/plugin/description/language/zh-TW.json
similarity index 100%
rename from player/matterhorn-engage-theodul-plugin-description/src/main/resources/static/language/zh-TW.json
rename to player/plugin/description/language/zh-TW.json
diff --git a/player/matterhorn-engage-theodul-plugin-description/src/main/resources/static/main.js b/player/plugin/description/main.js
similarity index 98%
rename from player/matterhorn-engage-theodul-plugin-description/src/main/resources/static/main.js
rename to player/plugin/description/main.js
index 0100a8b834181aa9dc3405002a0c23a48df5f64e..88e82034b9561ca3e1707dbea37443974fcfa1d0 100644
--- a/player/matterhorn-engage-theodul-plugin-description/src/main/resources/static/main.js
+++ b/player/plugin/description/main.js
@@ -101,7 +101,7 @@ define(["require", "jquery", "underscore", "backbone", "engage/core", "moment"],
 
     function initTranslate(language) {
         var path = Engage.getPluginPath("EngagePluginDescription").replace(/(\.\.\/)/g, "");
-        var jsonstr = window.location.origin + "/engage/theodul/" + path; // this solution is really bad, fix it...
+        var jsonstr =path; // this solution is really bad, fix it...
 
         Engage.log("Controls: selecting language " + language);
         jsonstr += "language/" + language + ".json";
diff --git a/player/matterhorn-engage-theodul-plugin-description/src/main/resources/static/styles/desktop.css b/player/plugin/description/styles/desktop.css
similarity index 100%
rename from player/matterhorn-engage-theodul-plugin-description/src/main/resources/static/styles/desktop.css
rename to player/plugin/description/styles/desktop.css
diff --git a/player/matterhorn-engage-theodul-plugin-description/src/main/resources/static/styles/embed.css b/player/plugin/description/styles/embed.css
similarity index 100%
rename from player/matterhorn-engage-theodul-plugin-description/src/main/resources/static/styles/embed.css
rename to player/plugin/description/styles/embed.css
diff --git a/player/matterhorn-engage-theodul-plugin-description/src/main/resources/static/styles/mobile.css b/player/plugin/description/styles/mobile.css
similarity index 100%
rename from player/matterhorn-engage-theodul-plugin-description/src/main/resources/static/styles/mobile.css
rename to player/plugin/description/styles/mobile.css
diff --git a/player/matterhorn-engage-theodul-plugin-description/src/main/resources/static/templates/desktop.html b/player/plugin/description/templates/desktop.html
similarity index 100%
rename from player/matterhorn-engage-theodul-plugin-description/src/main/resources/static/templates/desktop.html
rename to player/plugin/description/templates/desktop.html
diff --git a/player/matterhorn-engage-theodul-plugin-description/src/main/resources/static/templates/embed.html b/player/plugin/description/templates/embed.html
similarity index 100%
rename from player/matterhorn-engage-theodul-plugin-description/src/main/resources/static/templates/embed.html
rename to player/plugin/description/templates/embed.html
diff --git a/player/matterhorn-engage-theodul-plugin-description/src/main/resources/static/templates/mobile.html b/player/plugin/description/templates/mobile.html
similarity index 100%
rename from player/matterhorn-engage-theodul-plugin-description/src/main/resources/static/templates/mobile.html
rename to player/plugin/description/templates/mobile.html
diff --git a/player/plugin/list.json b/player/plugin/list.json
new file mode 100644
index 0000000000000000000000000000000000000000..285ada208c35e0243ff4ad96d61fe90c0058b298
--- /dev/null
+++ b/player/plugin/list.json
@@ -0,0 +1,66 @@
+{
+  "pluginlist":{
+    "plugins":[
+      {
+        "name":"EngagePluginCustomUsertracking",
+        "id":"10",
+        "description":"Custom Plugin to process usertracking footprints",
+        "static-path":"custom-usertracking"
+      },
+      {
+        "name":"EngagePluginTabDescription",
+        "id":"9",
+        "description":"Simple implementation of a tab with the video description",
+        "static-path":"tab-description"
+      },
+      {
+        "name":"EngagePluginCustomNotifications",
+        "id":"8",
+        "description":"Handles Matterhorns Endpoints",
+        "static-path":"custom-notifications"
+      },
+      {
+        "name":"EngagePluginTabShortcuts",
+        "id":"7",
+        "description":"Engage Plugin EngagePluginTabShortcuts",
+        "static-path":"tab-shortcuts"
+      },
+      {
+        "name":"EngagePluginDescription",
+        "id":"6",
+        "description":"Simple engage description plugin",
+        "static-path":"description"
+      },
+      {
+        "name":"EngagePluginVideoVideoJS",
+        "id":"5",
+        "description":"Videodisplay plugin which uses videoJS",
+        "static-path":"video-videojs"
+      },
+      {
+        "name":"EngagePluginTabSlidetext",
+        "id":"4",
+        "description":"Simple implementation of a tab with the text of the slides",
+        "static-path":"tab-slidetext"
+      },
+      {
+        "name":"EngagePluginCustomMhConnection",
+        "id":"3",
+        "description":"Connection",
+        "static-path":"custom-mhConnection"
+      },
+      {
+        "name":"EngagePluginTimelineStatistics",
+        "id":"2",
+        "description":"Implementation timeline plugin to view usertracking stats",
+        "static-path":"timeline-statistics"
+      },
+      {
+        "name":"EngagePluginControls",
+        "id":"1",
+        "description":"Simple implementation of a control bar",
+        "static-path":"controls"
+      }]
+  }
+}
+
diff --git a/player/matterhorn-engage-theodul-plugin-tab-description/src/main/resources/static/language/de-DE.json b/player/plugin/tab-description/language/de-DE.json
similarity index 100%
rename from player/matterhorn-engage-theodul-plugin-tab-description/src/main/resources/static/language/de-DE.json
rename to player/plugin/tab-description/language/de-DE.json
diff --git a/player/matterhorn-engage-theodul-plugin-tab-description/src/main/resources/static/language/el-GR.json b/player/plugin/tab-description/language/el-GR.json
similarity index 100%
rename from player/matterhorn-engage-theodul-plugin-tab-description/src/main/resources/static/language/el-GR.json
rename to player/plugin/tab-description/language/el-GR.json
diff --git a/player/matterhorn-engage-theodul-plugin-tab-description/src/main/resources/static/language/en-GB.json b/player/plugin/tab-description/language/en-GB.json
similarity index 100%
rename from player/matterhorn-engage-theodul-plugin-tab-description/src/main/resources/static/language/en-GB.json
rename to player/plugin/tab-description/language/en-GB.json
diff --git a/player/matterhorn-engage-theodul-plugin-tab-description/src/main/resources/static/language/en-US.json b/player/plugin/tab-description/language/en-US.json
similarity index 100%
rename from player/matterhorn-engage-theodul-plugin-tab-description/src/main/resources/static/language/en-US.json
rename to player/plugin/tab-description/language/en-US.json
diff --git a/player/matterhorn-engage-theodul-plugin-tab-description/src/main/resources/static/language/es-ES.json b/player/plugin/tab-description/language/es-ES.json
similarity index 100%
rename from player/matterhorn-engage-theodul-plugin-tab-description/src/main/resources/static/language/es-ES.json
rename to player/plugin/tab-description/language/es-ES.json
diff --git a/player/matterhorn-engage-theodul-plugin-tab-description/src/main/resources/static/language/fr-FR.json b/player/plugin/tab-description/language/fr-FR.json
similarity index 100%
rename from player/matterhorn-engage-theodul-plugin-tab-description/src/main/resources/static/language/fr-FR.json
rename to player/plugin/tab-description/language/fr-FR.json
diff --git a/player/matterhorn-engage-theodul-plugin-tab-description/src/main/resources/static/language/gl-ES.json b/player/plugin/tab-description/language/gl-ES.json
similarity index 100%
rename from player/matterhorn-engage-theodul-plugin-tab-description/src/main/resources/static/language/gl-ES.json
rename to player/plugin/tab-description/language/gl-ES.json
diff --git a/player/matterhorn-engage-theodul-plugin-tab-description/src/main/resources/static/language/he-IL.json b/player/plugin/tab-description/language/he-IL.json
similarity index 100%
rename from player/matterhorn-engage-theodul-plugin-tab-description/src/main/resources/static/language/he-IL.json
rename to player/plugin/tab-description/language/he-IL.json
diff --git a/player/matterhorn-engage-theodul-plugin-tab-description/src/main/resources/static/language/nl-NL.json b/player/plugin/tab-description/language/nl-NL.json
similarity index 100%
rename from player/matterhorn-engage-theodul-plugin-tab-description/src/main/resources/static/language/nl-NL.json
rename to player/plugin/tab-description/language/nl-NL.json
diff --git a/player/matterhorn-engage-theodul-plugin-tab-description/src/main/resources/static/language/pl-PL.json b/player/plugin/tab-description/language/pl-PL.json
similarity index 100%
rename from player/matterhorn-engage-theodul-plugin-tab-description/src/main/resources/static/language/pl-PL.json
rename to player/plugin/tab-description/language/pl-PL.json
diff --git a/player/matterhorn-engage-theodul-plugin-tab-description/src/main/resources/static/language/sl-SI.json b/player/plugin/tab-description/language/sl-SI.json
similarity index 100%
rename from player/matterhorn-engage-theodul-plugin-tab-description/src/main/resources/static/language/sl-SI.json
rename to player/plugin/tab-description/language/sl-SI.json
diff --git a/player/matterhorn-engage-theodul-plugin-tab-description/src/main/resources/static/language/sv-SE.json b/player/plugin/tab-description/language/sv-SE.json
similarity index 100%
rename from player/matterhorn-engage-theodul-plugin-tab-description/src/main/resources/static/language/sv-SE.json
rename to player/plugin/tab-description/language/sv-SE.json
diff --git a/player/matterhorn-engage-theodul-plugin-tab-description/src/main/resources/static/language/zh-CN.json b/player/plugin/tab-description/language/zh-CN.json
similarity index 100%
rename from player/matterhorn-engage-theodul-plugin-tab-description/src/main/resources/static/language/zh-CN.json
rename to player/plugin/tab-description/language/zh-CN.json
diff --git a/player/matterhorn-engage-theodul-plugin-tab-description/src/main/resources/static/language/zh-TW.json b/player/plugin/tab-description/language/zh-TW.json
similarity index 100%
rename from player/matterhorn-engage-theodul-plugin-tab-description/src/main/resources/static/language/zh-TW.json
rename to player/plugin/tab-description/language/zh-TW.json
diff --git a/player/matterhorn-engage-theodul-plugin-tab-description/src/main/resources/static/main.js b/player/plugin/tab-description/main.js
similarity index 98%
rename from player/matterhorn-engage-theodul-plugin-tab-description/src/main/resources/static/main.js
rename to player/plugin/tab-description/main.js
index 80112a5daaa40b3d2c3aa60b899289e499c85b5d..ec2bd80fc503fb6e2f7b9a59ee6c27aa522996ed 100644
--- a/player/matterhorn-engage-theodul-plugin-tab-description/src/main/resources/static/main.js
+++ b/player/plugin/tab-description/main.js
@@ -105,7 +105,7 @@ define(["jquery", "underscore", "backbone", "engage/core", "moment"], function($
 
     function initTranslate(language) {
         var path = Engage.getPluginPath("EngagePluginTabDescription").replace(/(\.\.\/)/g, "");
-        var jsonstr = window.location.origin + "/engage/theodul/" + path; // this solution is really bad, fix it...
+        var jsonstr = path; // this solution is really bad, fix it...
 
         Engage.log("Controls: selecting language " + language);
         jsonstr += "language/" + language + ".json";
diff --git a/player/matterhorn-engage-theodul-plugin-tab-description/src/main/resources/static/styles/desktop.css b/player/plugin/tab-description/styles/desktop.css
similarity index 100%
rename from player/matterhorn-engage-theodul-plugin-tab-description/src/main/resources/static/styles/desktop.css
rename to player/plugin/tab-description/styles/desktop.css
diff --git a/player/matterhorn-engage-theodul-plugin-tab-description/src/main/resources/static/styles/embed.css b/player/plugin/tab-description/styles/embed.css
similarity index 100%
rename from player/matterhorn-engage-theodul-plugin-tab-description/src/main/resources/static/styles/embed.css
rename to player/plugin/tab-description/styles/embed.css
diff --git a/player/matterhorn-engage-theodul-plugin-tab-description/src/main/resources/static/styles/mobile.css b/player/plugin/tab-description/styles/mobile.css
similarity index 100%
rename from player/matterhorn-engage-theodul-plugin-tab-description/src/main/resources/static/styles/mobile.css
rename to player/plugin/tab-description/styles/mobile.css
diff --git a/player/matterhorn-engage-theodul-plugin-tab-description/src/main/resources/static/templates/desktop.html b/player/plugin/tab-description/templates/desktop.html
similarity index 100%
rename from player/matterhorn-engage-theodul-plugin-tab-description/src/main/resources/static/templates/desktop.html
rename to player/plugin/tab-description/templates/desktop.html
diff --git a/player/matterhorn-engage-theodul-plugin-tab-description/src/main/resources/static/templates/embed.html b/player/plugin/tab-description/templates/embed.html
similarity index 100%
rename from player/matterhorn-engage-theodul-plugin-tab-description/src/main/resources/static/templates/embed.html
rename to player/plugin/tab-description/templates/embed.html
diff --git a/player/matterhorn-engage-theodul-plugin-tab-description/src/main/resources/static/templates/mobile.html b/player/plugin/tab-description/templates/mobile.html
similarity index 100%
rename from player/matterhorn-engage-theodul-plugin-tab-description/src/main/resources/static/templates/mobile.html
rename to player/plugin/tab-description/templates/mobile.html
diff --git a/player/matterhorn-engage-theodul-plugin-tab-shortcuts/src/main/resources/static/main.js b/player/plugin/tab-shortcuts/main.js
similarity index 100%
rename from player/matterhorn-engage-theodul-plugin-tab-shortcuts/src/main/resources/static/main.js
rename to player/plugin/tab-shortcuts/main.js
diff --git a/player/matterhorn-engage-theodul-plugin-tab-shortcuts/src/main/resources/static/styles/desktop.css b/player/plugin/tab-shortcuts/styles/desktop.css
similarity index 100%
rename from player/matterhorn-engage-theodul-plugin-tab-shortcuts/src/main/resources/static/styles/desktop.css
rename to player/plugin/tab-shortcuts/styles/desktop.css
diff --git a/player/matterhorn-engage-theodul-plugin-tab-shortcuts/src/main/resources/static/styles/embed.css b/player/plugin/tab-shortcuts/styles/embed.css
similarity index 100%
rename from player/matterhorn-engage-theodul-plugin-tab-shortcuts/src/main/resources/static/styles/embed.css
rename to player/plugin/tab-shortcuts/styles/embed.css
diff --git a/player/matterhorn-engage-theodul-plugin-tab-shortcuts/src/main/resources/static/styles/mobile.css b/player/plugin/tab-shortcuts/styles/mobile.css
similarity index 100%
rename from player/matterhorn-engage-theodul-plugin-tab-shortcuts/src/main/resources/static/styles/mobile.css
rename to player/plugin/tab-shortcuts/styles/mobile.css
diff --git a/player/matterhorn-engage-theodul-plugin-tab-shortcuts/src/main/resources/static/templates/desktop.html b/player/plugin/tab-shortcuts/templates/desktop.html
similarity index 100%
rename from player/matterhorn-engage-theodul-plugin-tab-shortcuts/src/main/resources/static/templates/desktop.html
rename to player/plugin/tab-shortcuts/templates/desktop.html
diff --git a/player/matterhorn-engage-theodul-plugin-tab-shortcuts/src/main/resources/static/templates/embed.html b/player/plugin/tab-shortcuts/templates/embed.html
similarity index 100%
rename from player/matterhorn-engage-theodul-plugin-tab-shortcuts/src/main/resources/static/templates/embed.html
rename to player/plugin/tab-shortcuts/templates/embed.html
diff --git a/player/matterhorn-engage-theodul-plugin-tab-shortcuts/src/main/resources/static/templates/mobile.html b/player/plugin/tab-shortcuts/templates/mobile.html
similarity index 100%
rename from player/matterhorn-engage-theodul-plugin-tab-shortcuts/src/main/resources/static/templates/mobile.html
rename to player/plugin/tab-shortcuts/templates/mobile.html
diff --git a/player/matterhorn-engage-theodul-plugin-tab-slidetext/src/main/resources/static/language/de-DE.json b/player/plugin/tab-slidetext/language/de-DE.json
similarity index 100%
rename from player/matterhorn-engage-theodul-plugin-tab-slidetext/src/main/resources/static/language/de-DE.json
rename to player/plugin/tab-slidetext/language/de-DE.json
diff --git a/player/matterhorn-engage-theodul-plugin-tab-slidetext/src/main/resources/static/language/el-GR.json b/player/plugin/tab-slidetext/language/el-GR.json
similarity index 100%
rename from player/matterhorn-engage-theodul-plugin-tab-slidetext/src/main/resources/static/language/el-GR.json
rename to player/plugin/tab-slidetext/language/el-GR.json
diff --git a/player/matterhorn-engage-theodul-plugin-tab-slidetext/src/main/resources/static/language/en-GB.json b/player/plugin/tab-slidetext/language/en-GB.json
similarity index 100%
rename from player/matterhorn-engage-theodul-plugin-tab-slidetext/src/main/resources/static/language/en-GB.json
rename to player/plugin/tab-slidetext/language/en-GB.json
diff --git a/player/matterhorn-engage-theodul-plugin-tab-slidetext/src/main/resources/static/language/en-US.json b/player/plugin/tab-slidetext/language/en-US.json
similarity index 100%
rename from player/matterhorn-engage-theodul-plugin-tab-slidetext/src/main/resources/static/language/en-US.json
rename to player/plugin/tab-slidetext/language/en-US.json
diff --git a/player/matterhorn-engage-theodul-plugin-tab-slidetext/src/main/resources/static/language/es-ES.json b/player/plugin/tab-slidetext/language/es-ES.json
similarity index 100%
rename from player/matterhorn-engage-theodul-plugin-tab-slidetext/src/main/resources/static/language/es-ES.json
rename to player/plugin/tab-slidetext/language/es-ES.json
diff --git a/player/matterhorn-engage-theodul-plugin-tab-slidetext/src/main/resources/static/language/fr-FR.json b/player/plugin/tab-slidetext/language/fr-FR.json
similarity index 100%
rename from player/matterhorn-engage-theodul-plugin-tab-slidetext/src/main/resources/static/language/fr-FR.json
rename to player/plugin/tab-slidetext/language/fr-FR.json
diff --git a/player/matterhorn-engage-theodul-plugin-tab-slidetext/src/main/resources/static/language/gl-ES.json b/player/plugin/tab-slidetext/language/gl-ES.json
similarity index 100%
rename from player/matterhorn-engage-theodul-plugin-tab-slidetext/src/main/resources/static/language/gl-ES.json
rename to player/plugin/tab-slidetext/language/gl-ES.json
diff --git a/player/matterhorn-engage-theodul-plugin-tab-slidetext/src/main/resources/static/language/he-IL.json b/player/plugin/tab-slidetext/language/he-IL.json
similarity index 100%
rename from player/matterhorn-engage-theodul-plugin-tab-slidetext/src/main/resources/static/language/he-IL.json
rename to player/plugin/tab-slidetext/language/he-IL.json
diff --git a/player/matterhorn-engage-theodul-plugin-tab-slidetext/src/main/resources/static/language/nl-NL.json b/player/plugin/tab-slidetext/language/nl-NL.json
similarity index 100%
rename from player/matterhorn-engage-theodul-plugin-tab-slidetext/src/main/resources/static/language/nl-NL.json
rename to player/plugin/tab-slidetext/language/nl-NL.json
diff --git a/player/matterhorn-engage-theodul-plugin-tab-slidetext/src/main/resources/static/language/pl-PL.json b/player/plugin/tab-slidetext/language/pl-PL.json
similarity index 100%
rename from player/matterhorn-engage-theodul-plugin-tab-slidetext/src/main/resources/static/language/pl-PL.json
rename to player/plugin/tab-slidetext/language/pl-PL.json
diff --git a/player/matterhorn-engage-theodul-plugin-tab-slidetext/src/main/resources/static/language/sl-SI.json b/player/plugin/tab-slidetext/language/sl-SI.json
similarity index 100%
rename from player/matterhorn-engage-theodul-plugin-tab-slidetext/src/main/resources/static/language/sl-SI.json
rename to player/plugin/tab-slidetext/language/sl-SI.json
diff --git a/player/matterhorn-engage-theodul-plugin-tab-slidetext/src/main/resources/static/language/sv-SE.json b/player/plugin/tab-slidetext/language/sv-SE.json
similarity index 100%
rename from player/matterhorn-engage-theodul-plugin-tab-slidetext/src/main/resources/static/language/sv-SE.json
rename to player/plugin/tab-slidetext/language/sv-SE.json
diff --git a/player/matterhorn-engage-theodul-plugin-tab-slidetext/src/main/resources/static/language/zh-CN.json b/player/plugin/tab-slidetext/language/zh-CN.json
similarity index 100%
rename from player/matterhorn-engage-theodul-plugin-tab-slidetext/src/main/resources/static/language/zh-CN.json
rename to player/plugin/tab-slidetext/language/zh-CN.json
diff --git a/player/matterhorn-engage-theodul-plugin-tab-slidetext/src/main/resources/static/language/zh-TW.json b/player/plugin/tab-slidetext/language/zh-TW.json
similarity index 100%
rename from player/matterhorn-engage-theodul-plugin-tab-slidetext/src/main/resources/static/language/zh-TW.json
rename to player/plugin/tab-slidetext/language/zh-TW.json
diff --git a/player/matterhorn-engage-theodul-plugin-tab-slidetext/src/main/resources/static/main.js b/player/plugin/tab-slidetext/main.js
similarity index 98%
rename from player/matterhorn-engage-theodul-plugin-tab-slidetext/src/main/resources/static/main.js
rename to player/plugin/tab-slidetext/main.js
index 55acd673b3095f2c2d77838402f3703d04a32552..4f8a6b251ab6d5218830719e0f0b5d52fb2ec430 100644
--- a/player/matterhorn-engage-theodul-plugin-tab-slidetext/src/main/resources/static/main.js
+++ b/player/plugin/tab-slidetext/main.js
@@ -107,7 +107,7 @@ define(["require", "jquery", "underscore", "backbone", "engage/core"], function(
 
     function initTranslate(language, funcSuccess, funcError) {
         var path = Engage.getPluginPath("EngagePluginTabSlidetext").replace(/(\.\.\/)/g, "");
-        var jsonstr = window.location.origin + "/engage/theodul/" + path; // this solution is really bad, fix it...
+        var jsonstr = path; // this solution is really bad, fix it...
 
         Engage.log("Controls: selecting language " + language);
         jsonstr += "language/" + language + ".json";
diff --git a/player/matterhorn-engage-theodul-plugin-tab-slidetext/src/main/resources/static/segment.js b/player/plugin/tab-slidetext/segment.js
similarity index 100%
rename from player/matterhorn-engage-theodul-plugin-tab-slidetext/src/main/resources/static/segment.js
rename to player/plugin/tab-slidetext/segment.js
diff --git a/player/matterhorn-engage-theodul-plugin-tab-slidetext/src/main/resources/static/styles/desktop.css b/player/plugin/tab-slidetext/styles/desktop.css
similarity index 100%
rename from player/matterhorn-engage-theodul-plugin-tab-slidetext/src/main/resources/static/styles/desktop.css
rename to player/plugin/tab-slidetext/styles/desktop.css
diff --git a/player/matterhorn-engage-theodul-plugin-tab-slidetext/src/main/resources/static/styles/embed.css b/player/plugin/tab-slidetext/styles/embed.css
similarity index 100%
rename from player/matterhorn-engage-theodul-plugin-tab-slidetext/src/main/resources/static/styles/embed.css
rename to player/plugin/tab-slidetext/styles/embed.css
diff --git a/player/matterhorn-engage-theodul-plugin-tab-slidetext/src/main/resources/static/styles/mobile.css b/player/plugin/tab-slidetext/styles/mobile.css
similarity index 100%
rename from player/matterhorn-engage-theodul-plugin-tab-slidetext/src/main/resources/static/styles/mobile.css
rename to player/plugin/tab-slidetext/styles/mobile.css
diff --git a/player/matterhorn-engage-theodul-plugin-tab-slidetext/src/main/resources/static/templates/desktop.html b/player/plugin/tab-slidetext/templates/desktop.html
similarity index 100%
rename from player/matterhorn-engage-theodul-plugin-tab-slidetext/src/main/resources/static/templates/desktop.html
rename to player/plugin/tab-slidetext/templates/desktop.html
diff --git a/player/matterhorn-engage-theodul-plugin-tab-slidetext/src/main/resources/static/templates/embed.html b/player/plugin/tab-slidetext/templates/embed.html
similarity index 100%
rename from player/matterhorn-engage-theodul-plugin-tab-slidetext/src/main/resources/static/templates/embed.html
rename to player/plugin/tab-slidetext/templates/embed.html
diff --git a/player/matterhorn-engage-theodul-plugin-tab-slidetext/src/main/resources/static/templates/mobile.html b/player/plugin/tab-slidetext/templates/mobile.html
similarity index 100%
rename from player/matterhorn-engage-theodul-plugin-tab-slidetext/src/main/resources/static/templates/mobile.html
rename to player/plugin/tab-slidetext/templates/mobile.html
diff --git a/player/matterhorn-engage-theodul-plugin-tab-slidetext/src/main/resources/static/utils.js b/player/plugin/tab-slidetext/utils.js
similarity index 100%
rename from player/matterhorn-engage-theodul-plugin-tab-slidetext/src/main/resources/static/utils.js
rename to player/plugin/tab-slidetext/utils.js
diff --git a/player/matterhorn-engage-theodul-plugin-timeline-statistics/src/main/resources/static/main.js b/player/plugin/timeline-statistics/main.js
similarity index 100%
rename from player/matterhorn-engage-theodul-plugin-timeline-statistics/src/main/resources/static/main.js
rename to player/plugin/timeline-statistics/main.js
diff --git a/player/matterhorn-engage-theodul-plugin-timeline-statistics/src/main/resources/static/styles/desktop.css b/player/plugin/timeline-statistics/styles/desktop.css
similarity index 100%
rename from player/matterhorn-engage-theodul-plugin-timeline-statistics/src/main/resources/static/styles/desktop.css
rename to player/plugin/timeline-statistics/styles/desktop.css
diff --git a/player/matterhorn-engage-theodul-plugin-timeline-statistics/src/main/resources/static/styles/embed.css b/player/plugin/timeline-statistics/styles/embed.css
similarity index 100%
rename from player/matterhorn-engage-theodul-plugin-timeline-statistics/src/main/resources/static/styles/embed.css
rename to player/plugin/timeline-statistics/styles/embed.css
diff --git a/player/matterhorn-engage-theodul-plugin-timeline-statistics/src/main/resources/static/styles/mobile.css b/player/plugin/timeline-statistics/styles/mobile.css
similarity index 100%
rename from player/matterhorn-engage-theodul-plugin-timeline-statistics/src/main/resources/static/styles/mobile.css
rename to player/plugin/timeline-statistics/styles/mobile.css
diff --git a/player/matterhorn-engage-theodul-plugin-timeline-statistics/src/main/resources/static/templates/desktop.html b/player/plugin/timeline-statistics/templates/desktop.html
similarity index 100%
rename from player/matterhorn-engage-theodul-plugin-timeline-statistics/src/main/resources/static/templates/desktop.html
rename to player/plugin/timeline-statistics/templates/desktop.html
diff --git a/player/matterhorn-engage-theodul-plugin-timeline-statistics/src/main/resources/static/templates/embed.html b/player/plugin/timeline-statistics/templates/embed.html
similarity index 100%
rename from player/matterhorn-engage-theodul-plugin-timeline-statistics/src/main/resources/static/templates/embed.html
rename to player/plugin/timeline-statistics/templates/embed.html
diff --git a/player/matterhorn-engage-theodul-plugin-timeline-statistics/src/main/resources/static/templates/mobile.html b/player/plugin/timeline-statistics/templates/mobile.html
similarity index 100%
rename from player/matterhorn-engage-theodul-plugin-timeline-statistics/src/main/resources/static/templates/mobile.html
rename to player/plugin/timeline-statistics/templates/mobile.html
diff --git a/player/matterhorn-engage-theodul-plugin-video-videojs/src/main/resources/static/language/de-DE.json b/player/plugin/video-videojs/language/de-DE.json
similarity index 100%
rename from player/matterhorn-engage-theodul-plugin-video-videojs/src/main/resources/static/language/de-DE.json
rename to player/plugin/video-videojs/language/de-DE.json
diff --git a/player/matterhorn-engage-theodul-plugin-video-videojs/src/main/resources/static/language/el-GR.json b/player/plugin/video-videojs/language/el-GR.json
similarity index 100%
rename from player/matterhorn-engage-theodul-plugin-video-videojs/src/main/resources/static/language/el-GR.json
rename to player/plugin/video-videojs/language/el-GR.json
diff --git a/player/matterhorn-engage-theodul-plugin-video-videojs/src/main/resources/static/language/en-GB.json b/player/plugin/video-videojs/language/en-GB.json
similarity index 100%
rename from player/matterhorn-engage-theodul-plugin-video-videojs/src/main/resources/static/language/en-GB.json
rename to player/plugin/video-videojs/language/en-GB.json
diff --git a/player/matterhorn-engage-theodul-plugin-video-videojs/src/main/resources/static/language/en-US.json b/player/plugin/video-videojs/language/en-US.json
similarity index 100%
rename from player/matterhorn-engage-theodul-plugin-video-videojs/src/main/resources/static/language/en-US.json
rename to player/plugin/video-videojs/language/en-US.json
diff --git a/player/matterhorn-engage-theodul-plugin-video-videojs/src/main/resources/static/language/es-ES.json b/player/plugin/video-videojs/language/es-ES.json
similarity index 100%
rename from player/matterhorn-engage-theodul-plugin-video-videojs/src/main/resources/static/language/es-ES.json
rename to player/plugin/video-videojs/language/es-ES.json
diff --git a/player/matterhorn-engage-theodul-plugin-video-videojs/src/main/resources/static/language/fr-FR.json b/player/plugin/video-videojs/language/fr-FR.json
similarity index 100%
rename from player/matterhorn-engage-theodul-plugin-video-videojs/src/main/resources/static/language/fr-FR.json
rename to player/plugin/video-videojs/language/fr-FR.json
diff --git a/player/matterhorn-engage-theodul-plugin-video-videojs/src/main/resources/static/language/gl-ES.json b/player/plugin/video-videojs/language/gl-ES.json
similarity index 100%
rename from player/matterhorn-engage-theodul-plugin-video-videojs/src/main/resources/static/language/gl-ES.json
rename to player/plugin/video-videojs/language/gl-ES.json
diff --git a/player/matterhorn-engage-theodul-plugin-video-videojs/src/main/resources/static/language/he-IL.json b/player/plugin/video-videojs/language/he-IL.json
similarity index 100%
rename from player/matterhorn-engage-theodul-plugin-video-videojs/src/main/resources/static/language/he-IL.json
rename to player/plugin/video-videojs/language/he-IL.json
diff --git a/player/matterhorn-engage-theodul-plugin-video-videojs/src/main/resources/static/language/nl-NL.json b/player/plugin/video-videojs/language/nl-NL.json
similarity index 100%
rename from player/matterhorn-engage-theodul-plugin-video-videojs/src/main/resources/static/language/nl-NL.json
rename to player/plugin/video-videojs/language/nl-NL.json
diff --git a/player/matterhorn-engage-theodul-plugin-video-videojs/src/main/resources/static/language/pl-PL.json b/player/plugin/video-videojs/language/pl-PL.json
similarity index 100%
rename from player/matterhorn-engage-theodul-plugin-video-videojs/src/main/resources/static/language/pl-PL.json
rename to player/plugin/video-videojs/language/pl-PL.json
diff --git a/player/matterhorn-engage-theodul-plugin-video-videojs/src/main/resources/static/language/sl-SI.json b/player/plugin/video-videojs/language/sl-SI.json
similarity index 100%
rename from player/matterhorn-engage-theodul-plugin-video-videojs/src/main/resources/static/language/sl-SI.json
rename to player/plugin/video-videojs/language/sl-SI.json
diff --git a/player/matterhorn-engage-theodul-plugin-video-videojs/src/main/resources/static/language/sv-SE.json b/player/plugin/video-videojs/language/sv-SE.json
similarity index 100%
rename from player/matterhorn-engage-theodul-plugin-video-videojs/src/main/resources/static/language/sv-SE.json
rename to player/plugin/video-videojs/language/sv-SE.json
diff --git a/player/matterhorn-engage-theodul-plugin-video-videojs/src/main/resources/static/language/zh-CN.json b/player/plugin/video-videojs/language/zh-CN.json
similarity index 100%
rename from player/matterhorn-engage-theodul-plugin-video-videojs/src/main/resources/static/language/zh-CN.json
rename to player/plugin/video-videojs/language/zh-CN.json
diff --git a/player/matterhorn-engage-theodul-plugin-video-videojs/src/main/resources/static/language/zh-TW.json b/player/plugin/video-videojs/language/zh-TW.json
similarity index 100%
rename from player/matterhorn-engage-theodul-plugin-video-videojs/src/main/resources/static/language/zh-TW.json
rename to player/plugin/video-videojs/language/zh-TW.json
diff --git a/player/matterhorn-engage-theodul-plugin-video-videojs/src/main/resources/static/lib/synchronize-min.js b/player/plugin/video-videojs/lib/synchronize-min.js
similarity index 100%
rename from player/matterhorn-engage-theodul-plugin-video-videojs/src/main/resources/static/lib/synchronize-min.js
rename to player/plugin/video-videojs/lib/synchronize-min.js
diff --git a/player/matterhorn-engage-theodul-plugin-video-videojs/src/main/resources/static/lib/video-js/dash.all.min.js b/player/plugin/video-videojs/lib/video-js/dash.all.min.js
similarity index 100%
rename from player/matterhorn-engage-theodul-plugin-video-videojs/src/main/resources/static/lib/video-js/dash.all.min.js
rename to player/plugin/video-videojs/lib/video-js/dash.all.min.js
diff --git a/player/matterhorn-engage-theodul-plugin-video-videojs/src/main/resources/static/lib/video-js/video-js.css b/player/plugin/video-videojs/lib/video-js/video-js.css
similarity index 100%
rename from player/matterhorn-engage-theodul-plugin-video-videojs/src/main/resources/static/lib/video-js/video-js.css
rename to player/plugin/video-videojs/lib/video-js/video-js.css
diff --git a/player/matterhorn-engage-theodul-plugin-video-videojs/src/main/resources/static/lib/video-js/video-js.min.css b/player/plugin/video-videojs/lib/video-js/video-js.min.css
similarity index 100%
rename from player/matterhorn-engage-theodul-plugin-video-videojs/src/main/resources/static/lib/video-js/video-js.min.css
rename to player/plugin/video-videojs/lib/video-js/video-js.min.css
diff --git a/player/matterhorn-engage-theodul-plugin-video-videojs/src/main/resources/static/lib/video-js/video-js.swf b/player/plugin/video-videojs/lib/video-js/video-js.swf
similarity index 100%
rename from player/matterhorn-engage-theodul-plugin-video-videojs/src/main/resources/static/lib/video-js/video-js.swf
rename to player/plugin/video-videojs/lib/video-js/video-js.swf
diff --git a/player/matterhorn-engage-theodul-plugin-video-videojs/src/main/resources/static/lib/video-js/video.js b/player/plugin/video-videojs/lib/video-js/video.js
similarity index 100%
rename from player/matterhorn-engage-theodul-plugin-video-videojs/src/main/resources/static/lib/video-js/video.js
rename to player/plugin/video-videojs/lib/video-js/video.js
diff --git a/player/matterhorn-engage-theodul-plugin-video-videojs/src/main/resources/static/lib/video-js/video.min.js b/player/plugin/video-videojs/lib/video-js/video.min.js
similarity index 100%
rename from player/matterhorn-engage-theodul-plugin-video-videojs/src/main/resources/static/lib/video-js/video.min.js
rename to player/plugin/video-videojs/lib/video-js/video.min.js
diff --git a/player/matterhorn-engage-theodul-plugin-video-videojs/src/main/resources/static/lib/video-js/videojs-contrib-hls.min.js b/player/plugin/video-videojs/lib/video-js/videojs-contrib-hls.min.js
similarity index 100%
rename from player/matterhorn-engage-theodul-plugin-video-videojs/src/main/resources/static/lib/video-js/videojs-contrib-hls.min.js
rename to player/plugin/video-videojs/lib/video-js/videojs-contrib-hls.min.js
diff --git a/player/matterhorn-engage-theodul-plugin-video-videojs/src/main/resources/static/lib/video-js/videojs-dash.min.js b/player/plugin/video-videojs/lib/video-js/videojs-dash.min.js
similarity index 100%
rename from player/matterhorn-engage-theodul-plugin-video-videojs/src/main/resources/static/lib/video-js/videojs-dash.min.js
rename to player/plugin/video-videojs/lib/video-js/videojs-dash.min.js
diff --git a/player/matterhorn-engage-theodul-plugin-video-videojs/src/main/resources/static/main.js b/player/plugin/video-videojs/main.js
similarity index 99%
rename from player/matterhorn-engage-theodul-plugin-video-videojs/src/main/resources/static/main.js
rename to player/plugin/video-videojs/main.js
index 9875f48f6d9106ea98b85fb1dad4b335bbb47d51..52b7b57d269c1c2346e85bb524457f61e979a8ae 100644
--- a/player/matterhorn-engage-theodul-plugin-video-videojs/src/main/resources/static/main.js
+++ b/player/plugin/video-videojs/main.js
@@ -183,9 +183,8 @@ define(['require', 'jquery', 'underscore', 'backbone', 'basil', 'bowser', 'engag
   var mastervideotype = '';
   var aspectRatio = null;
   var singleVideoPaddingTop = '56.25%';
-  var initCount = 7;
+  var initCount = 5;
   var videoDisplayReady = 0;
-  var infoMeChange = 'change:infoMe';
   var mediapackageError = false;
   var videoDisplayNamePrefix = 'videojs_videodisplay_';
   var id_video_wrapper = 'video_wrapper';
@@ -261,7 +260,7 @@ define(['require', 'jquery', 'underscore', 'backbone', 'basil', 'bowser', 'engag
   function initTranslate(language, funcSuccess, funcError) {
     var path = Engage.getPluginPath('EngagePluginVideoVideoJS').replace(/(\.\.\/)/g, '');
     /* this solution is really bad, fix it... */
-    var jsonstr = window.location.origin + '/engage/theodul/' + path;
+    var jsonstr = path;
 
     Engage.log('Controls: selecting language ' + language);
     jsonstr += 'language/' + language + '.json';
@@ -632,11 +631,6 @@ define(['require', 'jquery', 'underscore', 'backbone', 'basil', 'bowser', 'engag
 
     Engage.on(plugin.events.numberOfVideodisplaysSet.getName(), function (number) {
       var videoDisplays = $('.' + videoDisplayClass);
-      if (Engage.model.get('meInfo').get('hide_video_context_menu')) {
-        videoDisplays.on('contextmenu', function (e) {
-          e.preventDefault();
-        });
-      }
       if (number > 1) {
         selector = '.videoFocused video';
         videoFocused = false;
@@ -2189,8 +2183,8 @@ define(['require', 'jquery', 'underscore', 'backbone', 'basil', 'bowser', 'engag
       }
     }
 
-    var allowedTags = Engage.model.get('meInfo').get('allowedtags');
-    var allowedFormats = Engage.model.get('meInfo').get('allowedformats');
+    var allowedTags;
+    var allowedFormats;
     mediaInfo.tracks = filterTracksByFormat(filterTracksByTag(mediaInfo.tracks, allowedTags), allowedFormats);
 
     return {
@@ -2309,9 +2303,6 @@ define(['require', 'jquery', 'underscore', 'backbone', 'basil', 'bowser', 'engag
     var videoDisplays;
     var duration = 0;
 
-    mastervideotype = Engage.model.get('meInfo').get('mastervideotype').toLowerCase();
-    Engage.log('Video: Master video type is \'' + mastervideotype + '\'');
-
     mediaInfo.tracks = tracks;
     mediaInfo.attachments = attachments;
 
@@ -2471,12 +2462,6 @@ define(['require', 'jquery', 'underscore', 'backbone', 'basil', 'bowser', 'engag
       if (initCount <= 0) {
         initPlugin();
       }
-    })
-    .on(infoMeChange, function () {
-      initCount -= 1;
-      if (initCount <= 0) {
-        initPlugin();
-      }
     });
 
   // all plugins loaded
diff --git a/player/matterhorn-engage-theodul-plugin-video-videojs/src/main/resources/static/models/videoData.js b/player/plugin/video-videojs/models/videoData.js
similarity index 100%
rename from player/matterhorn-engage-theodul-plugin-video-videojs/src/main/resources/static/models/videoData.js
rename to player/plugin/video-videojs/models/videoData.js
diff --git a/player/matterhorn-engage-theodul-plugin-video-videojs/src/main/resources/static/styles/desktop.css b/player/plugin/video-videojs/styles/desktop.css
similarity index 100%
rename from player/matterhorn-engage-theodul-plugin-video-videojs/src/main/resources/static/styles/desktop.css
rename to player/plugin/video-videojs/styles/desktop.css
diff --git a/player/matterhorn-engage-theodul-plugin-video-videojs/src/main/resources/static/styles/embed.css b/player/plugin/video-videojs/styles/embed.css
similarity index 100%
rename from player/matterhorn-engage-theodul-plugin-video-videojs/src/main/resources/static/styles/embed.css
rename to player/plugin/video-videojs/styles/embed.css
diff --git a/player/matterhorn-engage-theodul-plugin-video-videojs/src/main/resources/static/styles/mobile.css b/player/plugin/video-videojs/styles/mobile.css
similarity index 100%
rename from player/matterhorn-engage-theodul-plugin-video-videojs/src/main/resources/static/styles/mobile.css
rename to player/plugin/video-videojs/styles/mobile.css
diff --git a/player/matterhorn-engage-theodul-plugin-video-videojs/src/main/resources/static/templates/desktop.html b/player/plugin/video-videojs/templates/desktop.html
similarity index 100%
rename from player/matterhorn-engage-theodul-plugin-video-videojs/src/main/resources/static/templates/desktop.html
rename to player/plugin/video-videojs/templates/desktop.html
diff --git a/player/matterhorn-engage-theodul-plugin-video-videojs/src/main/resources/static/templates/embed.html b/player/plugin/video-videojs/templates/embed.html
similarity index 100%
rename from player/matterhorn-engage-theodul-plugin-video-videojs/src/main/resources/static/templates/embed.html
rename to player/plugin/video-videojs/templates/embed.html
diff --git a/player/matterhorn-engage-theodul-plugin-video-videojs/src/main/resources/static/templates/mobile.html b/player/plugin/video-videojs/templates/mobile.html
similarity index 100%
rename from player/matterhorn-engage-theodul-plugin-video-videojs/src/main/resources/static/templates/mobile.html
rename to player/plugin/video-videojs/templates/mobile.html
diff --git a/player/matterhorn-engage-theodul-plugin-video-videojs/src/main/resources/static/utils.js b/player/plugin/video-videojs/utils.js
similarity index 100%
rename from player/matterhorn-engage-theodul-plugin-video-videojs/src/main/resources/static/utils.js
rename to player/plugin/video-videojs/utils.js
diff --git a/player/matterhorn-engage-theodul-core/src/main/resources/ui/templates/core_desktop_bottom.html b/player/templates/core_desktop_bottom.html
similarity index 100%
rename from player/matterhorn-engage-theodul-core/src/main/resources/ui/templates/core_desktop_bottom.html
rename to player/templates/core_desktop_bottom.html
diff --git a/player/matterhorn-engage-theodul-core/src/main/resources/ui/templates/core_desktop_top.html b/player/templates/core_desktop_top.html
similarity index 100%
rename from player/matterhorn-engage-theodul-core/src/main/resources/ui/templates/core_desktop_top.html
rename to player/templates/core_desktop_top.html
diff --git a/player/matterhorn-engage-theodul-core/src/main/resources/ui/templates/core_embed.html b/player/templates/core_embed.html
similarity index 100%
rename from player/matterhorn-engage-theodul-core/src/main/resources/ui/templates/core_embed.html
rename to player/templates/core_embed.html
diff --git a/player/matterhorn-engage-theodul-core/src/main/resources/ui/templates/core_mobile.html b/player/templates/core_mobile.html
similarity index 100%
rename from player/matterhorn-engage-theodul-core/src/main/resources/ui/templates/core_mobile.html
rename to player/templates/core_mobile.html