diff --git a/filter.php b/filter.php
index f161ea365e4675dac9e912c87e104896b04bd47a..37948364050988f4e49108804d99c9cfcfce523b 100644
--- a/filter.php
+++ b/filter.php
@@ -75,7 +75,7 @@ class filter_opencast extends moodle_text_filter {
                     $episode = $service->call('episode', $params);
                     file_put_contents($CFG->dirroot . '\filter\opencast\info\episode.json', $episode);
 
-                    $player = filter_opencast_load_player();
+                    $player = '<iframe src="'.$CFG->wwwroot.'/filter/opencast/player/core.html" width="100%" height="400px"></iframe>';
 		            $text = preg_replace('/<video.*<\/video>/', $player, $text, 1);
                 }
             }
diff --git a/lib.php b/lib.php
index 03d2106325ad077942f28ea72a3d778793d5f00c..19fd05ed1490e7caea81adea11f2a9e471578245 100644
--- a/lib.php
+++ b/lib.php
@@ -27,110 +27,5 @@ defined('MOODLE_INTERNAL') || die();
 
 function filter_opencast_load_player() {
     global $CFG;
-    global $PAGE;
-    $PAGE->requires->js_call_amd('filter_opencast/functions','init');
-    $PAGE->requires->js_call_amd('filter_opencast/functions','injectcss', array($CFG->wwwroot.'/filter/opencast/player/css/bootstrap/css/bootstrap.css'));
-    $PAGE->requires->js_call_amd('filter_opencast/functions','injectcss', array($CFG->wwwroot.'/filter/opencast/player/css/core_global_style.css'));
-
-
-    //  $PAGE->requires->js(new moodle_url('/filter/opencast/player/js/engage_init.js'));
-    return '
-<noscript>
-    <div class="noJavaScript">
-        <img src="'.$CFG->wwwroot.'/filter/opencast/player/img/opencast.svg" class="loadingImg"/>
-        <h1>Error</h1>
-        <p id="noJavaScript-container">
-            JavaScript is not enabled in your browser.
-            <br/>
-            Please <a href="http://www.enable-javascript.com" class="noJavaScriptLink" target="_blank">enable
-            JavaScript</a> to display the content of this site correctly.
-        </p>
-    </div>
-</noscript>
-<div id="browserWarning" class="alert alert-danger" role="alert">
-    <h1>Browser not supported</h1>
-    <p>
-        Your browser is not supported by Opencast. Please download a recent version of one of the following browsers to
-        get all of the provided features:
-    </p>
-    <ul>
-        <li>
-            <a href="https://www.mozilla.org/firefox" class="alert-link" target="_blank">Mozilla Firefox
-                <div id="min-firefox-version" class="browser-version">24</div>
-                +</a>
-        </li>
-        <li>
-            <a href="https://www.google.com/chrome" class="alert-link" target="_blank">Google Chrome
-                <div id="min-chrome-version" class="browser-version">30</div>
-                +</a>
-        </li>
-        <li>
-            <a href="http://www.opera.com/download" class="alert-link" target="_blank">Opera
-                <div id="min-opera-version" class="browser-version">20</div>
-                +</a>
-        </li>
-        <li>
-            <a href="https://www.apple.com/safari" class="alert-link" target="_blank">Apple Safari
-                <div id="min-safari-version" class="browser-version">7</div>
-                +</a>
-        </li>
-        <li>
-            <a href="http://windows.microsoft.com/internet-explorer" class="alert-link" target="_blank">Microsoft
-                Internet Explorer
-                <div id="min-msie-version" class="browser-version">11</div>
-                +</a>
-        </li>
-        <li>
-            <a href="https://www.microsoft.com/microsoft-edge" class="alert-link" target="_blank">Microsoft Edge
-                <div id="min-msedge-version" class="browser-version">13</div>
-                +</a>
-        </li>
-    </ul>
-    <p id="customError_btn-container">
-        <button id="btn_tryAnyway" type="button" class="btn btn-primary btn-lg">
-            <span class="glyphicon glyphicon-eye-open"></span>&nbsp;Try it anyway
-        </button>
-    </p>
-</div>
-<div id="customError" class="alert alert-danger" role="alert">
-    <img src="'.$CFG->wwwroot.'/filter/opencast/player/img/opencast.svg" class="loadingImg"/>
-    <h1 id="str_error">Error</h1>
-    <p>
-        <span id="customError_str">An error occurred. Please reload the page.</span>
-    </p>
-    <p id="customError_btn-container">
-        <button id="btn_reloadPage" type="button" class="btn btn-primary btn-lg">
-            <span class="glyphicon glyphicon-repeat"></span>&nbsp;<span id="str_reloadPage">Reload page</span>
-        </button>
-        <button id="btn_login" type="button" class="btn btn-primary btn-lg">
-            <span class="glyphicon glyphicon-log-in"></span>&nbsp;<span id="str_login">Log in</span>
-        </button>
-    </p>
-</div>
-<!-- loading animation container -->
-<div class="loading">
-    <img src="'.$CFG->wwwroot.'/filter/opencast/player/img/opencast.svg" class="loadingImg"/>
-    <div id="loading1">
-        <div class="progress">
-            <div class="progress-bar progress-bar-striped active" id="loadingProgressbar1" role="progressbar"
-                 aria-valuenow="100" aria-valuemin="0" aria-valuemax="100" style="width:100%"></div>
-        </div>
-    </div>
-    <div id="loading2">
-        <div class="progress">
-            <div class="progress-bar active" id="loadingProgressbar2" role="progressbar" aria-valuenow="100"
-                 aria-valuemin="0" aria-valuemax="100" style="width:0%"></div>
-        </div>
-    </div>
-</div>
-<div id="page-cover">
-    <button id="btn_fullscreenCancel" type="button" class="btn btn-default"><span
-            class="glyphicon glyphicon-remove-circle"></span></button>
-</div>
-<!-- global main view -->
-<div id="engage_view"></div>
-
-    ';
-
-
+    return '<iframe src="'.$CFG->wwwroot.'/filter/opencast/player/core.html"></iframe>';
 }
\ No newline at end of file
diff --git a/player/js/engage/core.js b/player/js/engage/core.js
index 532bf79f071050e0a109a6c0897b1c5c6eb8924e..61746c6ef8049d1c33f2696498135398348b0173 100644
--- a/player/js/engage/core.js
+++ b/player/js/engage/core.js
@@ -20,7 +20,7 @@
  */
 /*jslint browser: true, nomen: true*/
 /*global define, CustomEvent*/
-define(["require", "jquery", "underscore", "backbone", "mousetrap", "bowser", "basil", "bootbox", "mousewheel", "engage/models/engage", "engage/event", "core/config"], function (require, $, _, Backbone, Mousetrap, Bowser, Basil, Bootbox, Mousewheel, EngageModel, EngageEvent, cfg) {
+define(["require", "jquery", "underscore", "backbone", "mousetrap", "bowser", "basil", "bootbox", "mousewheel", "engage/models/engage", "engage/event"], function (require, $, _, Backbone, Mousetrap, Bowser, Basil, Bootbox, Mousewheel, EngageModel, EngageEvent) {
   "use strict";
 
   var events = {
@@ -637,7 +637,7 @@ define(["require", "jquery", "underscore", "backbone", "mousetrap", "bowser", "b
       }
     },
     getPluginPath: function (pluginName) {
-      var evaluated_plugin_path = cfg.wwwroot + "/filter/opencast/player/plugin/";
+      var evaluated_plugin_path = "";
       var pluginsInfos = engageCore.model.get("pluginsInfo");
       if (pluginsInfos) {
         var pluginList = pluginsInfos.get("pluginlist");
@@ -646,11 +646,11 @@ define(["require", "jquery", "underscore", "backbone", "mousetrap", "bowser", "b
           if ($.isArray(plugins)) {
             $.each(plugins, function (index, value) {
               if (value["name"] === pluginName) {
-                evaluated_plugin_path += value["static-path"] + "/";
+                evaluated_plugin_path = "../../plugin/" + value["static-path"] + "/";
               }
             });
           } else {
-            evaluated_plugin_path += plugins["static-path"] + "/";
+            evaluated_plugin_path = "../../plugin/" + plugins["static-path"] + "/";
           }
         }
       }
@@ -687,22 +687,22 @@ define(["require", "jquery", "underscore", "backbone", "mousetrap", "bowser", "b
       var view_logic_path = "";
       switch (engageCore.model.get("mode")) {
         case "embed":
-          cssAttr.href = cfg.wwwroot + "/filter/opencast/player/css/core_embed_style.css";
-          core_template = cfg.wwwroot + "/filter/opencast/player/templates/core_embed.html";
-          view_logic_path = cfg.wwwroot + "/filter/opencast/player/js/engage/views/embed.js";
+          cssAttr.href = "css/core_embed_style.css";
+          core_template = "templates/core_embed.html";
+          view_logic_path = "engage/views/embed";
           engageCore.model.embed = true;
           break;
         case "mobile":
-          cssAttr.href = cfg.wwwroot + "/filter/opencast/player/css/core_mobile_style.css";
-          core_template = cfg.wwwroot + "/filter/opencast/player/templates/core_mobile.html";
-          view_logic_path = cfg.wwwroot + "/filter/opencast/player/js/engage/views/mobile.js";
+          cssAttr.href = "css/core_mobile_style.css";
+          core_template = "templates/core_mobile.html";
+          view_logic_path = "engage/views/mobile";
           engageCore.model.mobile = true;
           break;
         case "desktop":
         default:
-          cssAttr.href = engageCore.controls_top ? cfg.wwwroot + "/filter/opencast/player/css/core_desktop_style_top.css" : cfg.wwwroot + "/filter/opencast/player/css/core_desktop_style_bottom.css";
-          core_template = engageCore.controls_top ? cfg.wwwroot + "/filter/opencast/player/templates/core_desktop_top.html" : cfg.wwwroot + "/filter/opencast/player/templates/core_desktop_bottom.html";
-          view_logic_path = cfg.wwwroot + "/filter/opencast/player/js/engage/views/desktop.js";
+          cssAttr.href = engageCore.controls_top ? "css/core_desktop_style_top.css" : "css/core_desktop_style_bottom.css";
+          core_template = engageCore.controls_top ? "templates/core_desktop_top.html" : "templates/core_desktop_bottom.html";
+          view_logic_path = "engage/views/desktop";
           engageCore.model.desktop = true;
           break;
       }
diff --git a/player/js/engage/models/meInfo.js b/player/js/engage/models/meInfo.js
index aa910d016bf51651ff804aacc809023ebb4881d7..73aa6bcadf50e9e568c0e1266de87bc6f55b9567 100644
--- a/player/js/engage/models/meInfo.js
+++ b/player/js/engage/models/meInfo.js
@@ -20,7 +20,7 @@
  */
 /*jslint browser: true, nomen: true*/
 /*global define, CustomEvent*/
-define(['jquery', 'backbone', 'core/config'], function($, Backbone, cfg) {
+define(['jquery', 'backbone'], function($, Backbone) {
     "use strict";
 
     var prop_shortcut = "player.shortcut.",
@@ -47,7 +47,7 @@ define(['jquery', 'backbone', 'core/config'], function($, Backbone, cfg) {
      * Model with information about the current user and the current MH configuration
      */
     var MeInfoModel = Backbone.Model.extend({
-        urlRoot: cfg.wwwroot + "/filter/opencast/info/me.json",
+        urlRoot: "../info/me.json",
         initialize: function() {
             this.fetch({
                 success: function(me) {
diff --git a/player/js/engage/models/pluginInfo.js b/player/js/engage/models/pluginInfo.js
index 44998d5a02c59e5a1af180a9287b23a1a20e94de..4e164065d950d9db119bedd76cd522bafd871b06 100644
--- a/player/js/engage/models/pluginInfo.js
+++ b/player/js/engage/models/pluginInfo.js
@@ -20,10 +20,10 @@
  */
 /*jslint browser: true, nomen: true*/
 /*global define, CustomEvent*/
-define(['jquery', 'backbone', 'core/config'], function($, Backbone, cfg) {
+define(['jquery', 'backbone'], function($, Backbone) {
     "use strict";
 
-    var PLUGIN_MANAGER_PATH = cfg.wwwroot + "/filter/opencast/player/plugin/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 613d155d433483af50b2d137c0386dd4c0156fa4..9280d50025ce907af0485ceaf11b5c9008378309 100644
--- a/player/js/engage_init.js
+++ b/player/js/engage_init.js
@@ -1,45 +1,42 @@
 /* global require.js config */
-define(["core/config"], function(mdlcfg) {
-
-    window.requirejs.config({
-        baseUrl: mdlcfg.wwwroot + "/filter/opencast/player/js/lib",
-        waitSeconds: 50,
-        paths: {
-            engage: mdlcfg.wwwroot + "/filter/opencast/player/js/engage",
-            plugins: mdlcfg.wwwroot + "/filter/opencast/player/plugin"
+requirejs.config({
+    baseUrl: "js/lib",
+    waitSeconds: 50,
+    paths: {
+        engage: "../engage",
+        plugins: "../plugin"
+    },
+    shim: {
+        "bootstrap": {
+            deps: ["jquery"],
+            exports: "Bootstrap"
+        },
+        "backbone": {
+            deps: ["underscore", "jquery"],
+            exports: "Backbone"
+        },
+        "underscore": {
+            exports: "_"
+        },
+        "mousetrap": {
+            exports: "Mousetrap"
+        },
+        "moment": {
+            exports: "Moment"
         },
-        shim: {
-            "bootstrap": {
-                deps: ["jquery"],
-                exports: "Bootstrap"
-            },
-            "backbone": {
-                deps: ["underscore", "jquery"],
-                exports: "Backbone"
-            },
-            "underscore": {
-                exports: "_"
-            },
-            "mousetrap": {
-                exports: "Mousetrap"
-            },
-            "moment": {
-                exports: "Moment"
-            },
-            "basil": {
-                exports: "Basil"
-            },
-            "bowser": {
-                exports: "Bowser"
-            },
-            "bootbox": {
-                deps: ["bootstrap"],
-                exports: "Bootbox"
-            }
+        "basil": {
+            exports: "Basil"
+        },
+        "bowser": {
+            exports: "Bowser"
+        },
+        "bootbox": {
+            deps: ["bootstrap"],
+            exports: "Bootbox"
         }
-    });
+    }
+});
 
-    var PLUGIN_PATH = mdlcfg.wwwroot + "/filter/opencast/player/plugin/";
+var PLUGIN_PATH = "../../plugin/";
 // start core logic
-    require(["engage/core"]);
-});
+require(["engage/core"]);
diff --git a/player/plugin/controls/main.js b/player/plugin/controls/main.js
index 925561480aa52aa20aa3d2f3b34d837fa266d401..32e95a5a54bb570ca785b55985334c0d98f78cd1 100644
--- a/player/plugin/controls/main.js
+++ b/player/plugin/controls/main.js
@@ -1542,7 +1542,7 @@ define(['require', 'jquery', 'underscore', 'backbone', 'basil', 'bootbox', 'enga
 
     // load jquery-ui touch-punch lib in mobile mode
     if (isMobileMode) {
-      require([relative_plugin_path + 'lib/jquery.ui.touch-punch.min.js'], function () {
+      require([relative_plugin_path + 'lib/jquery.ui.touch-punch.min'], function () {
         Engage.log('Controls: Lib jQuery UI Touch Punch loaded');
         initCount -= 1;
         if (initCount <= 0) {
@@ -1554,14 +1554,14 @@ define(['require', 'jquery', 'underscore', 'backbone', 'basil', 'bootbox', 'enga
 
   // load hammer.js lib for gestures on mobile (touch enabled) devices
   if (isMobileMode) {
-    require([relative_plugin_path + 'lib/hammer.min.js'], function () {
+    require([relative_plugin_path + 'lib/hammer.min'], function () {
       Engage.log('Controls: Lib hammer.js loaded');
       initCount -= 1;
       if (initCount <= 0) {
         initPlugin();
       }
 
-      require([relative_plugin_path + 'lib/jquery.hammer.js'], function () {
+      require([relative_plugin_path + 'lib/jquery.hammer'], function () {
         initCount -= 1;
         if (initCount <= 0) {
           initPlugin();
@@ -1571,7 +1571,7 @@ define(['require', 'jquery', 'underscore', 'backbone', 'basil', 'bootbox', 'enga
   }
 
   // load utils class
-  require([relative_plugin_path + "utils.js"], function(utils) {
+  require([relative_plugin_path + "utils"], function(utils) {
       Engage.log("Controls: Utils class loaded");
       Utils = new utils();
       initTranslate(Engage.model.get("language"), function() {