diff --git a/index.html b/index.html
index 9ccfb3295366a3e9e59283c2da145e5cec44b379..23033cf01e07eb97326d5e11bb9538436bd23e10 100644
--- a/index.html
+++ b/index.html
@@ -49,6 +49,7 @@
         <script type="text/javascript" src="js/authoring/controllers/tabs/contextTabController.js"></script>
         <script type="text/javascript" src="js/authoring/controllers/tabs/generalTabController.js"></script>
         <script type="text/javascript" src="js/authoring/controllers/tabs/locationInfoMapViewController.js"></script>
+        <script type="text/javascript" src="js/authoring/controllers/tabs/metadataTabController.js"></script>
         <script type="text/javascript" src="js/authoring/controllers/tabs/propertiesTabController.js"></script>
 
         <!-- modal window controllers -->
@@ -193,6 +194,7 @@
                     <ul>
                         <li><a id="firstTab" href="#tab1" title="Eigenschaften" class="fui-gear"></a> </li>
                         <li><a href="#tab2" title="Kontextinformationen">K</a></li>
+                        <li><a href="#tab3" title="Metadaten">M</a></li>
                     </ul>
                 </div>
 
@@ -260,27 +262,16 @@
                                     <select id="selectPossibleValues" class="form-control select select-primary select-block mbl" style="min-width: 235px; display: none">
                                     </select>
                                 </div>
-                                <div id="divContextParameters" style="display: none">
+                                <div id="divContextParameter">
                                 </div>
-
-                                <!-- This workaround is needed since select2 only supports elements existent at DOM load. -->
-                                <div id="divContextParameterTemplates" style="display: none">
-                                    <div id="divParameterSelectionTemplate">
-                                        <label class="label-tabs label" for="selectParameterTemplate">Parameter</label>
-                                        <select id="selectParameterTemplate" class="form-control select select-primary select-block mbl" style="min-width: 235px;"></select>
-                                    </div>
-                                    <div id="divParameterInputTemplate">
-                                        <label class="label-tabs label" for="inputTemplate">Parameter</label>
-                                        <input id="inputTemplate" class="form-control">
-                                    </div>
-                                    <div id="divMaps">
+                                <div id="divMapsTemplate" style="display:none">
+                                    <div id="divMaps" style="display:block">
                                         <div class="maps-row">
                                             <input id="pac-input" class="controls" type="text" placeholder="Suchen">
                                             <div id="maps" style="height: 250px;"></div>
                                         </div>
                                     </div>
                                 </div>
-
                                 <div>
                                     <div id="btnConfirmContextInfo" class="btn btn-info">
                                         <b class="fui-check-circle"> </b>
@@ -290,6 +281,30 @@
                             </div>
                         </form>
                     </div>
+                    <div id="tab3" class="tabContents">
+                        <form>
+                            <div>
+                                <div style="padding-bottom: 20px">
+                                    <label class="label-tabs label">Gewählt</label>
+                                    <select id="selectMultiMetaData" class="form-control multiselect multiselect-info" multiple="multiple" style="min-width: 235px">
+                                    </select>
+                                </div>
+                                <div>
+                                    <label class="label-tabs label">Auswahl Metadaten</label>
+                                    <select id="selectMetaData" class="form-control select select-primary select-block mbl" style="min-width: 235px;">
+                                        <option disabled selected>METADATEN</option>
+                                        <!--<option value="0">Bild</option>
+                                        <option value="1">Film</option>
+                                        <option value="2">Text</option>
+                                        <option value="3">Navigation</option>
+                                        <option value="4">Test</option>
+                                        <option value="5">Audio</option>-->
+                                    </select>
+                                </div>
+                            </div>
+
+                        </form>
+                    </div>
                 </div>
 
                 <!-- content of label relations -->
diff --git a/js/authoring/controllers/modalWindows/newScenarioModalWindowController.js b/js/authoring/controllers/modalWindows/newScenarioModalWindowController.js
index 7072dbfdf4601a5d4b301c8e1915760b95138c9f..f18d6f2c6279dc8780735cc6ba210ed6fce5c26b 100644
--- a/js/authoring/controllers/modalWindows/newScenarioModalWindowController.js
+++ b/js/authoring/controllers/modalWindows/newScenarioModalWindowController.js
@@ -5,13 +5,9 @@
 var global_ScenarioLiNumber = 0;
 
 $(function() {
-    // make sure that after pressing enter in modal window "Neues Szenario erstellen"
+    // make sure that after pressing enter in input or modal window "Neues Szenario erstellen"
     // the same steps were gone like clicking on the create button
-    $("#modal-new-szenario").on("keyup", function(e) { return checkScenarioName(e); });
-
-    // make sure that after pressing enter in input "Neues Szenario erstellen"
-    // the same steps were gone like clicking on the create button
-    $("#sname").on("keypress", function(e) { return checkScenarioName(e); });
+    $("#modal-new-szenario, #sname").on("keyup", checkScenarioName );
 
     // set the trigger for the new scenario modal window
     $("#showNewScenario").on("click", showNewScenario);
@@ -38,6 +34,10 @@ function checkScenarioName(e) {
 function showNewScenario() {
     var newScenarioElement = $("#modal-new-szenario");
 
+    newScenarioElement.submit(function(e){
+        e.preventDefault();
+    });
+
     // set focus to scenario name input field
     newScenarioElement.on("shown.bs.modal", function () {
         $("#sname").focus();
diff --git a/js/authoring/controllers/tabs/contextTabController.js b/js/authoring/controllers/tabs/contextTabController.js
index 388170e5571ad0994dd14d1e201cb9938f5a5e22..abe4d30c4fd912e2631c0c4f9a127a4c811c23e1 100644
--- a/js/authoring/controllers/tabs/contextTabController.js
+++ b/js/authoring/controllers/tabs/contextTabController.js
@@ -262,7 +262,6 @@ function showDetailContextInfo() {
     cleanSection("#selectContextInfos");
     cleanSection("#selectOperator");
     cleanSection("#selectPossibleValues");
-    cleanSection("#selectParameterTemplate");
 
     // clean input fields
     $("#formContextInformation")[0].reset();
@@ -272,7 +271,7 @@ function showDetailContextInfo() {
     $("#inputContextValue").css("display", "none");
     $("#selectPossibleValues").css("display", "none");
     $("#s2id_selectPossibleValues").css("display", "none");
-    $("#divContextParameters").css("display", "none");
+    $("#divContextParameter").css("display", "none");
 
     // fill selection "Kontextinformation"
     fillSelectionContextInformation();
@@ -411,8 +410,13 @@ function fillParameterSelection(cp) {
 
     var coordIdentRegex = /CP_.*(LONGITUDE|LATITUDE)/;
 
-    // remove all parameter fields from previous editing
-    cleanSection("#divContextParameters");
+    var id, div, child;
+    var divContextParams = $("#divContextParameter");
+    var divMaps = $("#divMaps");
+
+    // remove all parameter fields from previous editing (except maps div)
+    $("#divMapsTemplate").append(divMaps);
+    cleanSection("#divContextParameter");
 
     // iterate through all parameters
     for (var i in cp) {
@@ -423,71 +427,72 @@ function fillParameterSelection(cp) {
         var type = cp[i].type;
         var possibleValues = cp[i].values;
 
-        // prepare DOM elements
-        var id = "parameter"+i;
-        var divContainer = $("#divContextParameters");
 
         switch (type) {
 
             // type enum needs a drop down selection for only possible values
             case "ENUM":
+                id = "selectParameter" + i;
+                div = createNamedDOMElement("div", "divParameterSelection"+i)
+                    .css("display", "block")
+                    .append(createParameterLabelDOM(id, parameterTranslation));
+                child = createNamedDOMElement("select", id)
+                    .addClass("form-control select select-primary select-block mbl")
+                    .attr("style", "min-width: 235px;");
 
-                // This does not work properly since select2 does not support dynamically added elements yet.
-                // See initContainer() in flat-ui.js --> only gets called on DOM load; does things like addClass "select2-offscreen"
-                // For details see: https://github.com/select2/select2/issues/2830
-
-                var div = $("#divParameterSelectionTemplate").clone();
-                div.attr("id", "divParameter"+i);
-                div.css("display", "block");
-                divContainer.append(div);
-
-                var select = $("#divParameter"+i+" select");
-                select.attr("id",id);
                 // append all possible values
                 for (var j in possibleValues) {
-                    select.append(new Option(translate_parameterValue(possibleValues[j]), j.toString()));
+                    child.append(
+                        $("<option>")
+                            .attr("value", j.toString())
+                            .html(translate_parameterValue(possibleValues[j]))
+                    );
                 }
+                div.append(child);
+                divContextParams.append(div);
+                $("#" + id).select2();
+                $("#" + id).select2("data", {id:"\r",text:"\r"});
                 break;
 
             // type float or integer each need an input field and a specific label
             case "INTEGER":
             case "FLOAT":
-                var div = $("#divParameterInputTemplate").clone();
-                div
-                    .attr("id", "divParameter"+i)
+                id = "inputContextParameter"+i;
+                div = createNamedDOMElement("div", "divParameterInput"+i)
                     .addClass("divParameterInputs")
-                    .css("display", "table-cell");
-
-                var input = $("#inputParameterTemplate").clone()
-                    .attr("id", id)
+                    .css("display", "table-cell")
+                    .append(createParameterLabelDOM(id, parameterTranslation));
+                child = createNamedDOMElement("input", id)
+                    .addClass("form-control")
                     .attr("type", "number")
                     .attr("onkeyup", "getParameterInput(this,"+i+")");
-                div.append(input);
-                setMinMaxDefault(possibleValues[0], input);
-                $("#divContextParameters").append(div);
+                setMinMaxDefault(possibleValues[0], child);
+                div.append(child);
+                divContextParams.append(div);
 
                 // display google maps if coordinates are expected input
                 if (coordIdentRegex.test(parameterOriginal)) {
-                    $("#divMaps").css("display", "block");
-                    $("#divContextParameters").append($("#divMaps"));
+                    divContextParams.append(divMaps);
                     resizeMap();
                 }
                 break;
 
             // type string needs an input field and a specific label
             case "STRING":
-                div.css("display", "block");
-                div.append($("#inputParameterTemplate").clone()
-                    .attr("id", id)
-                    .attr("type", "text"));
-                $("#divContextParameters").append(div);
+                id = "inputParameterString"+i;
+                div = createNamedDOMElement("div", "divParameterString"+i)
+                    .css("display", "block")
+                    .append(createParameterLabelDOM(id, parameterTranslation));
+                child = createNamedDOMElement("input", id)
+                    .addClass("form-control")
+                    .attr("type", "text");
+                div.append(child);
+                divContextParams.append(div);
                 break;
         }
 
-        // update parameter label
-        $("#divParameter"+i+" label").attr("for", id).html(parameterTranslation);
         // show context parameter section
-        $("#divContextParameters").css("display", "block");
+        divContextParams.css("display", "block");
     }
 }
 
@@ -500,7 +505,7 @@ function fillParameterSelection(cp) {
  * */
 function setMinMaxDefault(values, inputField) {
 
-    if (values == undefined)
+    if (typeof values == undefined)
         return;
 
     var min = (values.min != undefined) ? values.min : false;
@@ -782,4 +787,20 @@ function getFirstMatchingClassIndex(contextItem, contextClasses) {
             break;
     }
     return classIndex;
+}
+
+
+/**************************tiny little helper******************************/
+// create any new DOM element with an ID
+function createNamedDOMElement(elem, id) {
+    return $("<"+elem+">")
+        .attr("id", id);
+}
+
+// create a new label (which is also a DOM element)
+function createParameterLabelDOM(elem, label) {
+    return $("<label>")
+        .attr("class", "label-tabs label")
+        .attr("for", elem)
+        .html(label);
 }
\ No newline at end of file