diff --git a/assets/cn_default.js b/assets/cn_default.js
index f165d7f0c88391422d56f9b002a0354ead4b5cad..a40d75c8caae452806d0c22b4d60583db75027cd 100644
--- a/assets/cn_default.js
+++ b/assets/cn_default.js
@@ -106,7 +106,7 @@ legend_arrow.append("text")
     .attr("y", 10)
     .attr("dy", ".35em")
     .style("text-anchor", "start")
-    .text(function(d,i){return arrow_group_names[i]});
+    .text(function(d,i) {return arrow_group_names[i]});
 
 /**
 * creates a new simulation
@@ -155,13 +155,13 @@ function failure(graph) {
 * checks at a fixed interval whether the contents of the JSON file have changed 
   and reloads the program if necessary
 */
-var intervalId = window.setInterval(check_if_json_changed, 5000)
+var intervalId = window.setInterval(check_if_json_changed, 1000)
 function check_if_json_changed() {
     d3.json("json_text.json").then(function(graph) {
         newjson_string = JSON.stringify(graph) 
         var newjson = CryptoJS.MD5(newjson_string).toString();
         oldjson=localStorage.getItem("oldjson")
-        if(newjson !== oldjson){
+        if(newjson !== oldjson) {
             localStorage.setItem("oldjson", newjson);
             window.location.reload()
         }
@@ -221,7 +221,7 @@ function update_nodes(nodes) {
     node.append("circle")
         .attr("class", "circle")
         .attr("r", function(d) {return 1.5*r+d.citations*0.15})
-        .style("fill", function(d){ return color(d.group)})
+        .style("fill", function(d) {return color(d.group)})
         .on('click', click_node);
 
     node.append("text")
@@ -264,7 +264,7 @@ function update_marker(color, target) {
 function click_node(node) {
     d3.select(this.parentNode).raise();
     fix_nodes(node);
-    if(to_remove){
+    if(to_remove) {
         d3.select(to_remove).selectAll(".circle").style("stroke","none")
     }
     to_remove = this.parentNode;
@@ -415,10 +415,10 @@ function dragged_node(node) {
 */
 function fix_nodes(this_node) {
     node.each(function(d) {
-      if (this_node != d) {
-        d.fx = d.x;
-        d.fy = d.y;
-      }
+        if (this_node != d) {
+            d.fx = d.x;
+            d.fy = d.y;
+        }
     });
 }
 
@@ -440,8 +440,7 @@ function zoom_to_graph() {
     perc_y = height/(node_bounds.height+100);
     zoom_perc = d3.min([perc_x, perc_y])
     
-    d3.select('svg')
-		.call(zoom.scaleBy, zoom_perc);
+    d3.select('svg').call(zoom.scaleBy, zoom_perc);
 }
 
 /**
@@ -450,99 +449,97 @@ function zoom_to_graph() {
 function reset_view() {
     d3.select('svg')
         .call(zoom.scaleTo, 1)
-    d3.select('svg')
-        .call(zoom.translateTo, 0.5 * width, 0.5 * height);
-    d3.select('svg')
-		.call(zoom.scaleBy, zoom_perc);
+        .call(zoom.translateTo, 0.5 * width, 0.5 * height)
+        .call(zoom.scaleBy, zoom_perc);
 }
 
 /**
-* save svg as png
+* saves svg as png
 */
-function save_svg(){
-	var svgString = get_svg_string(svg.node());
-	svg_string_to_image(svgString, 2*width, 2*height, 'png', save); // passes Blob and filesize String to the callback
+function save_svg() {
+    var svgString = get_svg_string(svg.node());
+    svg_string_to_image(svgString, 2*width, 2*height, 'png', save); // passes Blob and filesize String to the callback
 
-	function save( dataBlob, filesize ){
-		saveAs(dataBlob, 'D3 vis exported to PNG.png'); // FileSaver.js function
-	}
+    function save( dataBlob, filesize ) {
+        saveAs(dataBlob, 'D3 vis exported to PNG.png'); // FileSaver.js function
+    }
 };
 
 /**
-* generate svgString
+* generates svgString
 * @param {object} svgNode - node
 */
 function get_svg_string(svgNode) {
-	svgNode.setAttribute('xlink', 'http://www.w3.org/1999/xlink');
-	var cssStyleText = get_css_styles(svgNode);
-	append_css(cssStyleText, svgNode);
-
-	var serializer = new XMLSerializer();
-	var svgString = serializer.serializeToString(svgNode);
-	svgString = svgString.replace(/(\w+)?:?xlink=/g, 'xmlns:xlink='); // Fix root xlink without namespace
-	svgString = svgString.replace(/NS\d+:href/g, 'xlink:href'); // Safari NS namespace fix
-
-	return svgString;
-
-	function get_css_styles(parentElement) {
-		var selectorTextArr = [];
-
-		// Add Parent element Id and Classes to the list
-		selectorTextArr.push('#' + parentElement.id);
-		for (var c = 0; c < parentElement.classList.length; c++)
-				if (!contains('.'+parentElement.classList[c], selectorTextArr))
-					selectorTextArr.push('.'+parentElement.classList[c]);
-
-		// Add Children element Ids and Classes to the list
-		var nodes = parentElement.getElementsByTagName("*");
-		for (var i = 0; i < nodes.length; i++) {
-			var id = nodes[i].id;
-			if (!contains('#'+id, selectorTextArr))
-				selectorTextArr.push('#' + id);
-
-			var classes = nodes[i].classList;
-			for (var c = 0; c < classes.length; c++)
-				if (!contains('.'+classes[c], selectorTextArr))
-					selectorTextArr.push('.'+classes[c]);
-		}
-
-		// Extract CSS Rules
-		var extractedCSSText = "";
-		for (var i = 0; i < document.styleSheets.length; i++) {
-			var s = document.styleSheets[i];
-			
-			try {
-			    if(!s.cssRules) continue;
-			} 
+    svgNode.setAttribute('xlink', 'http://www.w3.org/1999/xlink');
+    var cssStyleText = get_css_styles(svgNode);
+    append_css(cssStyleText, svgNode);
+
+    var serializer = new XMLSerializer();
+    var svgString = serializer.serializeToString(svgNode);
+    svgString = svgString.replace(/(\w+)?:?xlink=/g, 'xmlns:xlink='); // Fix root xlink without namespace
+    svgString = svgString.replace(/NS\d+:href/g, 'xlink:href'); // Safari NS namespace fix
+
+    return svgString;
+
+    function get_css_styles(parentElement) {
+        var selectorTextArr = [];
+
+        // Add Parent element Id and Classes to the list
+        selectorTextArr.push('#' + parentElement.id);
+        for (var c = 0; c < parentElement.classList.length; c++)
+            if (!contains('.'+parentElement.classList[c], selectorTextArr))
+                selectorTextArr.push('.'+parentElement.classList[c]);
+
+        // Add Children element Ids and Classes to the list
+        var nodes = parentElement.getElementsByTagName("*");
+        for (var i = 0; i < nodes.length; i++) {
+            var id = nodes[i].id;
+            if (!contains('#'+id, selectorTextArr))
+                selectorTextArr.push('#' + id);
+
+            var classes = nodes[i].classList;
+            for (var c = 0; c < classes.length; c++)
+                if (!contains('.'+classes[c], selectorTextArr))
+                    selectorTextArr.push('.'+classes[c]);
+        }
+
+        // Extract CSS Rules
+        var extractedCSSText = "";
+        for (var i = 0; i < document.styleSheets.length; i++) {
+            var s = document.styleSheets[i];
+
+            try {
+                if(!s.cssRules) continue;
+            } 
             catch(e) {
-		    	if(e.name !== 'SecurityError') throw e; // for Firefox
-		    	continue;
-		    	}
-
-			var cssRules = s.cssRules;
-			for (var r = 0; r < cssRules.length; r++) {
-				if (contains(cssRules[r].selectorText, selectorTextArr))
-					extractedCSSText += cssRules[r].cssText;
-			}
-		}
-		return extractedCSSText;
-
-		function contains(str,arr) {
-			return arr.indexOf(str) === -1 ? false : true;
-		}
-	}
-
-	function append_css(cssText, element) {
-		var styleElement = document.createElement("style");
-		styleElement.setAttribute("type","text/css"); 
-		styleElement.innerHTML = cssText;
-		var refNode = element.hasChildNodes() ? element.children[0] : null;
-		element.insertBefore(styleElement, refNode);
-	}
+                if(e.name !== 'SecurityError') throw e; // for Firefox
+                    continue;
+            }
+
+            var cssRules = s.cssRules;
+            for (var r = 0; r < cssRules.length; r++) {
+                if (contains(cssRules[r].selectorText, selectorTextArr))
+                    extractedCSSText += cssRules[r].cssText;
+                }
+            }
+            return extractedCSSText;
+
+            function contains(str,arr) {
+                return arr.indexOf(str) === -1 ? false : true;
+            }
+    }
+
+    function append_css(cssText, element) {
+        var styleElement = document.createElement("style");
+        styleElement.setAttribute("type","text/css"); 
+        styleElement.innerHTML = cssText;
+        var refNode = element.hasChildNodes() ? element.children[0] : null;
+        element.insertBefore(styleElement, refNode);
+    }
 }
 
 /**
-* convert svgString to image and export it
+* converts svgString to image and export it
 * @param {object} svgString - svgString
 * @param {object} width - width of image
 * @param {object} height - height of image
@@ -550,25 +547,25 @@ function get_svg_string(svgNode) {
 * @param {object} callback - callback function 
 */
 function svg_string_to_image( svgString, width, height, format, callback ) {
-	var format = format ? format : 'png';
+    var format = format ? format : 'png';
 
-	var imgsrc = 'data:image/svg+xml;base64,'+ btoa(unescape(encodeURIComponent(svgString))); // Convert SVG string to data URL
+    var imgsrc = 'data:image/svg+xml;base64,'+ btoa(unescape(encodeURIComponent(svgString))); // Convert SVG string to data URL
 
-	var canvas = document.createElement("canvas");
-	var context = canvas.getContext("2d");
+    var canvas = document.createElement("canvas");
+    var context = canvas.getContext("2d");
 
-	canvas.width = width;
-	canvas.height = height;
+    canvas.width = width;
+    canvas.height = height;
 
-	var image = new Image();
-	image.onload = function() {
-		context.clearRect(0, 0, width, height);
-		context.drawImage(image, 0, 0, width, height);
+    var image = new Image();
+    image.onload = function() {
+        context.clearRect(0, 0, width, height);
+        context.drawImage(image, 0, 0, width, height);
 
-		canvas.toBlob(function(blob) {
-			var filesize = Math.round(blob.length/1024) + ' KB';
-			if (callback) callback(blob, filesize);
-		});
-	};
-	image.src = imgsrc;
-}
\ No newline at end of file
+        canvas.toBlob(function(blob) {
+            var filesize = Math.round(blob.length/1024) + ' KB';
+            if (callback) callback(blob, filesize);
+        });
+    };
+    image.src = imgsrc;
+}
diff --git a/assets/cn_timeline.js b/assets/cn_timeline.js
index f51e1bab60fd215a89758905d72e18d1f86eb5a1..176d323f4768fb54e58f7159fda5194941a42de1 100644
--- a/assets/cn_timeline.js
+++ b/assets/cn_timeline.js
@@ -106,7 +106,7 @@ legend_arrow.append("text")
     .attr("y", 10)
     .attr("dy", ".35em")
     .style("text-anchor", "start")
-    .text(function(d,i){return arrow_group_names[i]});
+    .text(function(d,i) {return arrow_group_names[i]});
 
 /**
 * creates a new simulation
@@ -171,13 +171,13 @@ function failure(graph) {
 * checks at a fixed interval whether the contents of the JSON file have changed 
   and reloads the program if necessary
 */
-var intervalId = window.setInterval(check_if_json_changed, 5000)
+var intervalId = window.setInterval(check_if_json_changed, 1000)
 function check_if_json_changed() {
     d3.json("json_text.json").then(function(graph) {
         newjson_string = JSON.stringify(graph) 
         var newjson = CryptoJS.MD5(newjson_string).toString();
         oldjson=localStorage.getItem("oldjson")
-        if(newjson !== oldjson){
+        if(newjson !== oldjson) {
             localStorage.setItem("oldjson", newjson);
             window.location.reload()
         }
@@ -256,7 +256,7 @@ function update_nodes(nodes) {
     node.append("circle")
         .attr("class", "circle")
         .attr("r", function(d) {return 1.5*r+d.citations*0.15})
-        .style("fill", function(d){ return color(d.group)})
+        .style("fill", function(d) {return color(d.group)})
         .on('click', click_node);
 
     node.append("text")
@@ -299,7 +299,7 @@ function update_marker(color, target) {
 function click_node(node) {
     d3.select(this.parentNode).raise();
     fix_nodes(node);
-    if(to_remove){
+    if(to_remove) {
         d3.select(to_remove).selectAll(".circle").style("stroke","none")
     }
     to_remove = this.parentNode;
@@ -448,10 +448,10 @@ function dragged_node(node) {
 */
 function fix_nodes(this_node) {
     node.each(function(d) {
-      if (this_node != d) {
-        d.fx = d.x;
-        d.fy = d.y;
-      }
+        if (this_node != d) {
+            d.fx = d.x;
+            d.fy = d.y;
+        }
     });
 }
 
@@ -475,8 +475,7 @@ function zoom_to_graph() {
     perc_y = height/(node_bounds.height+100);
     zoom_perc = d3.min([perc_x, perc_y])
     
-    d3.select('svg')
-		.call(zoom.scaleBy, zoom_perc);
+    d3.select('svg').call(zoom.scaleBy, zoom_perc);
 }
 
 /**
@@ -485,99 +484,97 @@ function zoom_to_graph() {
 function reset_view() {
     d3.select('svg')
         .call(zoom.scaleTo, 1)
-    d3.select('svg')
-        .call(zoom.translateTo, 0.5 * width, 0.5 * height);
-    d3.select('svg')
-		.call(zoom.scaleBy, zoom_perc);
+        .call(zoom.translateTo, 0.5 * width, 0.5 * height)
+        .call(zoom.scaleBy, zoom_perc);
 }
 
 /**
-* save svg as png
+* saves svg as png
 */
-function save_svg(){
-	var svgString = get_svg_string(svg.node());
-	svg_string_to_image(svgString, 2*width, 2*height, 'png', save); // passes Blob and filesize String to the callback
+function save_svg() {
+    var svgString = get_svg_string(svg.node());
+    svg_string_to_image(svgString, 2*width, 2*height, 'png', save); // passes Blob and filesize String to the callback
 
-	function save( dataBlob, filesize ){
-		saveAs(dataBlob, 'D3 vis exported to PNG.png'); // FileSaver.js function
-	}
+    function save( dataBlob, filesize ) {
+        saveAs(dataBlob, 'D3 vis exported to PNG.png'); // FileSaver.js function
+    }
 };
 
 /**
-* generate svgString
+* generates svgString
 * @param {object} svgNode - node
 */
 function get_svg_string(svgNode) {
-	svgNode.setAttribute('xlink', 'http://www.w3.org/1999/xlink');
-	var cssStyleText = get_css_styles(svgNode);
-	append_css(cssStyleText, svgNode);
-
-	var serializer = new XMLSerializer();
-	var svgString = serializer.serializeToString(svgNode);
-	svgString = svgString.replace(/(\w+)?:?xlink=/g, 'xmlns:xlink='); // Fix root xlink without namespace
-	svgString = svgString.replace(/NS\d+:href/g, 'xlink:href'); // Safari NS namespace fix
-
-	return svgString;
-
-	function get_css_styles(parentElement) {
-		var selectorTextArr = [];
-
-		// Add Parent element Id and Classes to the list
-		selectorTextArr.push('#' + parentElement.id);
-		for (var c = 0; c < parentElement.classList.length; c++)
-				if (!contains('.'+parentElement.classList[c], selectorTextArr))
-					selectorTextArr.push('.'+parentElement.classList[c]);
-
-		// Add Children element Ids and Classes to the list
-		var nodes = parentElement.getElementsByTagName("*");
-		for (var i = 0; i < nodes.length; i++) {
-			var id = nodes[i].id;
-			if (!contains('#'+id, selectorTextArr))
-				selectorTextArr.push('#' + id);
-
-			var classes = nodes[i].classList;
-			for (var c = 0; c < classes.length; c++)
-				if (!contains('.'+classes[c], selectorTextArr))
-					selectorTextArr.push('.'+classes[c]);
-		}
-
-		// Extract CSS Rules
-		var extractedCSSText = "";
-		for (var i = 0; i < document.styleSheets.length; i++) {
-			var s = document.styleSheets[i];
-			
-			try {
-			    if(!s.cssRules) continue;
-			} 
+    svgNode.setAttribute('xlink', 'http://www.w3.org/1999/xlink');
+    var cssStyleText = get_css_styles(svgNode);
+    append_css(cssStyleText, svgNode);
+
+    var serializer = new XMLSerializer();
+    var svgString = serializer.serializeToString(svgNode);
+    svgString = svgString.replace(/(\w+)?:?xlink=/g, 'xmlns:xlink='); // Fix root xlink without namespace
+    svgString = svgString.replace(/NS\d+:href/g, 'xlink:href'); // Safari NS namespace fix
+
+    return svgString;
+
+    function get_css_styles(parentElement) {
+        var selectorTextArr = [];
+
+        // Add Parent element Id and Classes to the list
+        selectorTextArr.push('#' + parentElement.id);
+        for (var c = 0; c < parentElement.classList.length; c++)
+            if (!contains('.'+parentElement.classList[c], selectorTextArr))
+                selectorTextArr.push('.'+parentElement.classList[c]);
+
+        // Add Children element Ids and Classes to the list
+        var nodes = parentElement.getElementsByTagName("*");
+        for (var i = 0; i < nodes.length; i++) {
+            var id = nodes[i].id;
+            if (!contains('#'+id, selectorTextArr))
+                selectorTextArr.push('#' + id);
+
+            var classes = nodes[i].classList;
+            for (var c = 0; c < classes.length; c++)
+                if (!contains('.'+classes[c], selectorTextArr))
+                    selectorTextArr.push('.'+classes[c]);
+        }
+
+        // Extract CSS Rules
+        var extractedCSSText = "";
+        for (var i = 0; i < document.styleSheets.length; i++) {
+            var s = document.styleSheets[i];
+
+            try {
+                if(!s.cssRules) continue;
+            } 
             catch(e) {
-		    	if(e.name !== 'SecurityError') throw e; // for Firefox
-		    	continue;
-		    }
-
-			var cssRules = s.cssRules;
-			for (var r = 0; r < cssRules.length; r++) {
-				if (contains(cssRules[r].selectorText, selectorTextArr))
-					extractedCSSText += cssRules[r].cssText;
-			}
-		}
-		return extractedCSSText;
-
-		function contains(str,arr) {
-			return arr.indexOf(str) === -1 ? false : true;
-		}
-	}
-
-	function append_css(cssText, element) {
-		var styleElement = document.createElement("style");
-		styleElement.setAttribute("type","text/css"); 
-		styleElement.innerHTML = cssText;
-		var refNode = element.hasChildNodes() ? element.children[0] : null;
-		element.insertBefore(styleElement, refNode);
-	}
+                if(e.name !== 'SecurityError') throw e; // for Firefox
+                    continue;
+            }
+
+            var cssRules = s.cssRules;
+            for (var r = 0; r < cssRules.length; r++) {
+                if (contains(cssRules[r].selectorText, selectorTextArr))
+                    extractedCSSText += cssRules[r].cssText;
+                }
+            }
+            return extractedCSSText;
+
+            function contains(str,arr) {
+                return arr.indexOf(str) === -1 ? false : true;
+            }
+    }
+
+    function append_css(cssText, element) {
+        var styleElement = document.createElement("style");
+        styleElement.setAttribute("type","text/css"); 
+        styleElement.innerHTML = cssText;
+        var refNode = element.hasChildNodes() ? element.children[0] : null;
+        element.insertBefore(styleElement, refNode);
+    }
 }
 
 /**
-* convert svgString to image and export it
+* converts svgString to image and export it
 * @param {object} svgString - svgString
 * @param {object} width - width of image
 * @param {object} height - height of image
@@ -585,25 +582,25 @@ function get_svg_string(svgNode) {
 * @param {object} callback - callback function 
 */
 function svg_string_to_image( svgString, width, height, format, callback ) {
-	var format = format ? format : 'png';
+    var format = format ? format : 'png';
 
-	var imgsrc = 'data:image/svg+xml;base64,'+ btoa(unescape(encodeURIComponent(svgString))); // Convert SVG string to data URL
+    var imgsrc = 'data:image/svg+xml;base64,'+ btoa(unescape(encodeURIComponent(svgString))); // Convert SVG string to data URL
 
-	var canvas = document.createElement("canvas");
-	var context = canvas.getContext("2d");
+    var canvas = document.createElement("canvas");
+    var context = canvas.getContext("2d");
 
-	canvas.width = width;
-	canvas.height = height;
+    canvas.width = width;
+    canvas.height = height;
 
-	var image = new Image();
-	image.onload = function() {
-		context.clearRect(0, 0, width, height);
-		context.drawImage(image, 0, 0, width, height);
+    var image = new Image();
+    image.onload = function() {
+        context.clearRect(0, 0, width, height);
+        context.drawImage(image, 0, 0, width, height);
 
-		canvas.toBlob(function(blob) {
-			var filesize = Math.round(blob.length/1024) + ' KB';
-			if (callback) callback(blob, filesize);
-		});
-	};
-	image.src = imgsrc;
-}
\ No newline at end of file
+        canvas.toBlob(function(blob) {
+            var filesize = Math.round(blob.length/1024) + ' KB';
+            if (callback) callback(blob, filesize);
+        });
+    };
+    image.src = imgsrc;
+}