diff --git a/Assets/StreamingAssets/ScrollView_Server/build/Drop_facts.js b/Assets/StreamingAssets/ScrollView_Server/build/Drop_facts.js
index 06e13dbf50a7ef63292a5c9d023b2309974d4e81..91cdd624860f44abac90a7b29adc11df96f2379b 100644
--- a/Assets/StreamingAssets/ScrollView_Server/build/Drop_facts.js
+++ b/Assets/StreamingAssets/ScrollView_Server/build/Drop_facts.js
@@ -1,45 +1,20 @@
 "use strict";
-/**
- * @typedef point
- * @type {object}
- * @property {number} x
- * @property {number} y
- * @property {number} z
- */
-/**
- * @typedef {Object} fact
- * @property {string} id Fact id
- * @property {string} s_type Fact type
- * @property {string} label used in unity
- * @property {string | null} _CustomLabel Custom label
- * @property {boolean} hasCustomLabel
- * @property {number} labelId
- */
-/**
- * @property {Point} point
- * @property {Point} normal
- * @property {string} s_type
- * @property {string} label
- * @property {string|null} _CustomLabel
- * @property {boolean} hasCustomLabel
- * @property {number} labelId
- */
-var assignment;
-/** @param {DragEvent} event  */
 function dropHandler(event) {
     // ignore 
-    if (event.dataTransfer === null
-        || event.target === null
-        || !(event.target instanceof HTMLElement)) {
+    console.log("dropHandler", event);
+    if (event.originalEvent === undefined
+        || event.originalEvent.dataTransfer === null
+        || event.target === undefined
+        || !(event.target instanceof HTMLElement
+            || event.target instanceof MathMLElement)) {
         console.log("Ignored illegal DragEvent");
         return;
     }
     event.preventDefault();
-    console.log("dropHandler", event);
-    const data = event.dataTransfer.getData("application/json");
+    const data = event.originalEvent.dataTransfer;
     //const data = event.dataTransfer.getData("text/plain")
-    console.log(`Dropped data: '${event.dataTransfer.types}'`, event.dataTransfer.types);
-    const fact = JSON.parse(data);
+    console.log(`Dropped data: '${data.types}'`, data.types);
+    const fact = JSON.parse(data.getData("application/json"));
     console.warn(`Dropped Fact '${fact.label}':`, fact);
     const target = event.target;
     if (target.dataset.allowedTypes !== undefined) {
@@ -65,26 +40,25 @@ function dropHandler(event) {
 }
 /** @param {MouseEvent} event  */
 function clickHandler(event) {
-    // ignore 
-    if (event.target == null
-        || !(event.target instanceof HTMLElement)) {
-        console.warn("Ignored illegal DragEvent");
+    // ignore. Cannot happen if the event is triggered normally
+    console.log("clickHandler", event);
+    if (!(event.target instanceof HTMLElement
+        || event.target instanceof MathMLElement)) {
+        console.warn("Ignored illegal ClickEvent");
         return;
     }
     event.preventDefault();
-    console.log("clickHandler");
-    console.log("clickHandler", event);
     const target = event.target;
-    switch (event.button) {
-        case 0:
+    switch (event.which) {
+        case 1:
             console.log("Left button clicked");
             target.dataset.factId = undefined;
             target.dispatchEvent(new Event("factUnassigned"));
             break;
-        case 1:
+        case 2:
             console.log("Middle button clicked");
             break;
-        case 2:
+        case 3:
             console.log("Right button clicked");
             if (target.dataset.slotId) {
                 getHint(target.dataset.slotId);
@@ -94,33 +68,30 @@ function clickHandler(event) {
             console.log("Unknown button clicked");
     }
 }
+/** register the drag event listener. Otherwise drop events don't work */
+document.addEventListener("dragover", ev => ev.preventDefault());
+/** select all dropzones and add drop event listeners */
+function addDropZoneEventListeners() {
+    console.log("addDropZoneEventListeners");
+    $('[dropzone="copy"]')
+        .on({
+        drop: dropHandler,
+        mousedown: clickHandler,
+        contextmenu: event => event.preventDefault()
+    });
+}
+//#region Commented out Archive
 /*
 * register the drag event listeners
 */
 //document.addEventListener("dragstart", ev => printHandler(ev, "DragStartEvent"))
 //document.addEventListener("dragenter", ev => printHandler(ev, "DragEnterEvent"))
 //document.addEventListener("drag", ev => printHandler(ev, "DragEvent"))
-document.addEventListener("dragover", ev => ev.preventDefault());
+//document.addEventListener("dragover", ev => ev.preventDefault())
 //document.addEventListener("dragover", ev => printPreventDefaultHandler(ev, "DragOverEvent"))
 //document.addEventListener("dragleave", ev => printHandler(ev, "DragLeaveEvent"))
 //document.addEventListener("dragend", ev => printHandler(ev, "DragEndEvent"))
 // select all dropzones and add drop event listeners
 //let dropZones = document.querySelectorAll('[dropzone="copy"]')
 //dropZones.forEach( dropZone => dropZone.addEventListener("drop", ev => dropHandler(ev, "DropEvent")) )
-/** select all dropzones and add drop event listeners */
-function addDropZoneEventListeners() {
-    console.log("addDropZoneEventListeners");
-    document.querySelectorAll('[dropzone="copy"]')
-        .forEach(dropZone => {
-        if (dropZone instanceof HTMLElement) {
-            dropZone.removeEventListener("drop", dropHandler);
-            dropZone.removeEventListener("click", clickHandler);
-            dropZone.removeEventListener("contextmenu", clickHandler);
-            //dropZone.addEventListener("dragover", ev => ev.preventDefault())
-            dropZone.addEventListener("drop", dropHandler);
-            dropZone.addEventListener("click", clickHandler);
-            dropZone.addEventListener("contextmenu", clickHandler);
-        }
-    });
-}
-//addDropZoneEventListeners()
+//#endregion Commented out Archive
diff --git a/Assets/StreamingAssets/ScrollView_Server/src/Drop_facts.ts b/Assets/StreamingAssets/ScrollView_Server/src/Drop_facts.ts
index d39fc608e92824bdf3022569d3e52b4398cc4176..10683fcf9419b9de48ddb6189c2511f99e2a59cf 100644
--- a/Assets/StreamingAssets/ScrollView_Server/src/Drop_facts.ts
+++ b/Assets/StreamingAssets/ScrollView_Server/src/Drop_facts.ts
@@ -1,21 +1,27 @@
+function dropHandler(event: JQuery.DropEvent) {
     // ignore 
-    if (event.dataTransfer === null
-        || event.target === null
-        || !(event.target instanceof HTMLElement)) {
+    console.log("dropHandler", event)
+    if (event.originalEvent === undefined
+        || event.originalEvent.dataTransfer === null
+        || event.target === undefined
+        || !(event.target instanceof HTMLElement
+            || event.target instanceof MathMLElement)
+    ) {
         console.log("Ignored illegal DragEvent")
         return
     }
+
     event.preventDefault()
-    console.log("dropHandler", event)
+    const data = event.originalEvent.dataTransfer
 
-    const data = event.dataTransfer.getData("application/json")
+    
     //const data = event.dataTransfer.getData("text/plain")
-    console.log(`Dropped data: '${event.dataTransfer.types}'`, event.dataTransfer.types)
+    console.log(`Dropped data: '${data.types}'`, data.types)
 
-    const fact: Fact = JSON.parse(data)
+    const fact: Fact = JSON.parse(data.getData("application/json"))
     console.warn(`Dropped Fact '${fact.label}':`, fact)
 
-    const target: HTMLElement = event.target
+    const target = event.target
 
     if (target.dataset.allowedTypes !== undefined) {
         //const allowedTypesStr = element.dataset["allowed-types"]
@@ -44,27 +50,27 @@
 }
 
 /** @param {MouseEvent} event  */
-function clickHandler(event: MouseEvent) {
-    // ignore 
-    if (event.target == null
-        || !(event.target instanceof HTMLElement)) {
-        console.warn("Ignored illegal DragEvent")
+function clickHandler(event: JQuery.MouseDownEvent) {
+    // ignore. Cannot happen if the event is triggered normally
+    console.debug("clickHandler", event)
+    if (!(event.target instanceof HTMLElement
+            || event.target instanceof MathMLElement)
+    ) {
+        console.warn("Ignored illegal ClickEvent")
         return
     }
     event.preventDefault()
-    console.log("clickHandler")
-    console.log("clickHandler", event)
-    const target: HTMLElement = event.target
-    switch (event.button) {
-        case 0:
+    const target: MathMLElement = event.target
+    switch (event.which) {
+        case 1:
             console.log("Left button clicked")
             target.dataset.factId = undefined
             target.dispatchEvent(new Event("factUnassigned"))
             break
-        case 1:
+        case 2:
             console.log("Middle button clicked")
             break
-        case 2:
+        case 3:
             console.log("Right button clicked")
             if (target.dataset.slotId) {
                 getHint(target.dataset.slotId)
@@ -75,13 +81,30 @@ function clickHandler(event: MouseEvent) {
     }
 }
 
+/** register the drag event listener. Otherwise drop events don't work */
+document.addEventListener("dragover", ev => ev.preventDefault())
+
+/** select all dropzones and add drop event listeners */
+function addDropZoneEventListeners() {
+    console.log("addDropZoneEventListeners")
+    $('[dropzone="copy"]')
+        .on({
+            drop: dropHandler,
+            mousedown: clickHandler,
+            contextmenu: event => event.preventDefault()
+        })
+}
+
+declare function getHint(slotId: string): void;
+
+//#region Commented out Archive
 /*
 * register the drag event listeners
 */
 //document.addEventListener("dragstart", ev => printHandler(ev, "DragStartEvent"))
 //document.addEventListener("dragenter", ev => printHandler(ev, "DragEnterEvent"))
 //document.addEventListener("drag", ev => printHandler(ev, "DragEvent"))
-document.addEventListener("dragover", ev => ev.preventDefault())
+//document.addEventListener("dragover", ev => ev.preventDefault())
 //document.addEventListener("dragover", ev => printPreventDefaultHandler(ev, "DragOverEvent"))
 //document.addEventListener("dragleave", ev => printHandler(ev, "DragLeaveEvent"))
 //document.addEventListener("dragend", ev => printHandler(ev, "DragEndEvent"))
@@ -89,24 +112,4 @@ document.addEventListener("dragover", ev => ev.preventDefault())
 // select all dropzones and add drop event listeners
 //let dropZones = document.querySelectorAll('[dropzone="copy"]')
 //dropZones.forEach( dropZone => dropZone.addEventListener("drop", ev => dropHandler(ev, "DropEvent")) )
-
-/** select all dropzones and add drop event listeners */
-function addDropZoneEventListeners() {
-    console.log("addDropZoneEventListeners")
-    document.querySelectorAll('[dropzone="copy"]')
-        .forEach(dropZone => {
-            if (dropZone instanceof HTMLElement) {
-                dropZone.removeEventListener("drop", dropHandler)
-                dropZone.removeEventListener("click", clickHandler)
-                dropZone.removeEventListener("contextmenu", clickHandler)
-                //dropZone.addEventListener("dragover", ev => ev.preventDefault())
-                dropZone.addEventListener("drop", dropHandler)
-                dropZone.addEventListener("click", clickHandler)
-                dropZone.addEventListener("contextmenu", clickHandler)
-            }
-        })
-}
-
-declare function getHint(slotId: string): void;
-//addDropZoneEventListeners()
 //#endregion Commented out Archive
diff --git a/Assets/StreamingAssets/ScrollView_Server/src/SetScrollContent.ts b/Assets/StreamingAssets/ScrollView_Server/src/SetScrollContent.ts
index 50ceb10314f8407b383481c0da52b1ccbf175628..10e09f9ded9f421697b4a183cb047dc0ecb84eca 100644
--- a/Assets/StreamingAssets/ScrollView_Server/src/SetScrollContent.ts
+++ b/Assets/StreamingAssets/ScrollView_Server/src/SetScrollContent.ts
@@ -52,7 +52,9 @@ function RenderScroll() {
             .html(fact.label)
             .attr("data-allowed-types", fact.type)
     })
+    
     console.log('Scroll rendered', scroll.label.textContent)
+    addDropZoneEventListeners()
 }