diff --git a/src/_h5ai/js/inc/core/settings.js b/src/_h5ai/js/inc/core/settings.js
index 1b6ef851..2f22923a 100644
--- a/src/_h5ai/js/inc/core/settings.js
+++ b/src/_h5ai/js/inc/core/settings.js
@@ -1,11 +1,9 @@
 
 modulejs.define('core/settings', ['config', '_'], function (config, _) {
 
-	var defaults = {
+	var settings = _.extend({
 			h5aiAbsHref: '/_h5ai/'
-		};
-
-	var settings = _.extend({}, defaults, config.options);
+		}, config.options);
 
 	settings.h5aiAbsHref = settings.h5aiAbsHref.replace(/\/*$/, '/');
 	settings.rootAbsHref = /^(.*\/)[^\/]+\/?$/.exec(settings.h5aiAbsHref)[1];
diff --git a/src/_h5ai/js/inc/ext/autorefresh.js b/src/_h5ai/js/inc/ext/autorefresh.js
index ca9a4dee..7faff453 100644
--- a/src/_h5ai/js/inc/ext/autorefresh.js
+++ b/src/_h5ai/js/inc/ext/autorefresh.js
@@ -1,12 +1,10 @@
 
 modulejs.define('ext/autorefresh', ['_', '$', 'core/settings', 'core/event', 'core/refresh'], function (_, $, allsettings, event, refresh) {
 
-	var defaults = {
+	var settings = _.extend({
 			enabled: false,
 			interval: 5000
-		},
-
-		settings = _.extend({}, defaults, allsettings.autorefresh),
+		}, allsettings.autorefresh),
 
 		heartbeat = function () {
 
diff --git a/src/_h5ai/js/inc/ext/crumb.js b/src/_h5ai/js/inc/ext/crumb.js
index 38185fd4..7913e43c 100644
--- a/src/_h5ai/js/inc/ext/crumb.js
+++ b/src/_h5ai/js/inc/ext/crumb.js
@@ -1,11 +1,9 @@
 
 modulejs.define('ext/crumb', ['_', '$', 'core/settings', 'core/resource', 'core/event', 'core/entry'], function (_, $, allsettings, resource, event, entry) {
 
-	var defaults = {
+	var settings = _.extend({
 			enabled: false
-		},
-
-		settings = _.extend({}, defaults, allsettings.crumb),
+		}, allsettings.crumb),
 
 		template = '<li class="crumb">' +
 						'<a>' +
diff --git a/src/_h5ai/js/inc/ext/custom.js b/src/_h5ai/js/inc/ext/custom.js
index 95be1a5a..46f7ee3d 100644
--- a/src/_h5ai/js/inc/ext/custom.js
+++ b/src/_h5ai/js/inc/ext/custom.js
@@ -1,13 +1,11 @@
 
 modulejs.define('ext/custom', ['_', '$', 'core/settings', 'core/ajax'], function (_, $, allsettings, ajax) {
 
-	var defaults = {
+	var settings = _.extend({
 			enabled: false,
 			header: '_h5ai.header.html',
 			footer: '_h5ai.footer.html'
-		},
-
-		settings = _.extend({}, defaults, allsettings.custom),
+		}, allsettings.custom),
 
 		init = function () {
 
diff --git a/src/_h5ai/js/inc/ext/delete.js b/src/_h5ai/js/inc/ext/delete.js
index 3457cb1b..a59e05b0 100644
--- a/src/_h5ai/js/inc/ext/delete.js
+++ b/src/_h5ai/js/inc/ext/delete.js
@@ -1,11 +1,9 @@
 
 modulejs.define('ext/delete', ['_', '$', 'core/settings', 'core/entry', 'core/event', 'core/resource', 'core/refresh'], function (_, $, allsettings, entry, event, resource, refresh) {
 
-	var defaults = {
+	var settings = _.extend({
 			enabled: false
-		},
-
-		settings = _.extend({}, defaults, allsettings['delete']),
+		}, allsettings['delete']),
 
 		deleteBtnTemplate = '<li id="delete">' +
 									'<a href="#">' +
diff --git a/src/_h5ai/js/inc/ext/download.js b/src/_h5ai/js/inc/ext/download.js
index 49adc625..0481709a 100644
--- a/src/_h5ai/js/inc/ext/download.js
+++ b/src/_h5ai/js/inc/ext/download.js
@@ -1,13 +1,11 @@
 
 modulejs.define('ext/download', ['_', '$', 'core/settings', 'core/resource', 'core/event', 'core/ajax'], function (_, $, allsettings, resource, event, ajax) {
 
-	var defaults = {
+	var settings = _.extend({
 			enabled: false,
 			execution: 'php',
 			format: 'zip'
-		},
-
-		settings = _.extend({}, defaults, allsettings.download),
+		}, allsettings.download),
 
 		// formats = ['tar', 'zip'],
 
diff --git a/src/_h5ai/js/inc/ext/dropbox.js b/src/_h5ai/js/inc/ext/dropbox.js
index 79adde0f..ea56047f 100644
--- a/src/_h5ai/js/inc/ext/dropbox.js
+++ b/src/_h5ai/js/inc/ext/dropbox.js
@@ -1,15 +1,13 @@
 
 modulejs.define('ext/dropbox', ['_', '$', 'core/settings', 'core/entry', 'core/resource', 'core/refresh'], function (_, $, allsettings, entry, resource, refresh) {
 
-	var defaults = {
+	var settings = _.extend({
 			enabled: false,
 			maxfiles: 5,
 			maxfilesize: 20
-		},
+		}, allsettings.dropbox),
 
-		settings = _.extend({}, defaults, allsettings.dropbox),
-
-		template = '<ul id="uploads" />',
+		template = '<ul id="uploads"/>',
 
 		uploadTemplate = '<li class="upload clearfix">' +
 							'<span class="name"/>' +
diff --git a/src/_h5ai/js/inc/ext/filter.js b/src/_h5ai/js/inc/ext/filter.js
index 3718f915..3d2ce0f6 100644
--- a/src/_h5ai/js/inc/ext/filter.js
+++ b/src/_h5ai/js/inc/ext/filter.js
@@ -1,11 +1,9 @@
 
 modulejs.define('ext/filter', ['_', '$', 'core/settings', 'core/resource'], function (_, $, allsettings, resource) {
 
-	var defaults = {
+	var settings = _.extend({
 			enabled: false
-		},
-
-		settings = _.extend({}, defaults, allsettings.filter),
+		}, allsettings.filter),
 
 		template = '<li id="filter">' +
 						'<span class="element">' +
@@ -47,17 +45,6 @@ modulejs.define('ext/filter', ['_', '$', 'core/settings', 'core/resource'], func
 			$(noMatch).fadeOut(duration);
 		},
 
-		checkState = function (focus) {
-
-			var val = $input.val();
-
-			if (val || focus) {
-				$filter.addClass('current');
-			} else {
-				$filter.removeClass('current');
-			}
-		},
-
 		escapeRegExp = function (sequence) {
 
 			return sequence.replace(/[\-\[\]{}()*+?.,\\$\^|#\s]/g, '\\$&');
@@ -75,8 +62,6 @@ modulejs.define('ext/filter', ['_', '$', 'core/settings', 'core/resource'], func
 
 					return escapeRegExp(char);
 				}).join('.*?');
-
-				// return escapeRegExp(part);
 			}).join('|');
 
 			return new RegExp(sequence, 'i');
@@ -88,10 +73,11 @@ modulejs.define('ext/filter', ['_', '$', 'core/settings', 'core/resource'], func
 
 			if (val) {
 				filter(parseFilterSequence(val));
+				$filter.addClass('current');
 			} else {
 				filter();
+				$filter.removeClass('current');
 			}
-			checkState($input.is(':focus'));
 		},
 
 		init = function () {
@@ -100,7 +86,7 @@ modulejs.define('ext/filter', ['_', '$', 'core/settings', 'core/resource'], func
 				return;
 			}
 
-			$filter = $(template);
+			$filter = $(template).appendTo('#navbar');
 			$input = $filter.find('input');
 			$noMatch = $(noMatchTemplate).appendTo('#extended');
 
@@ -108,35 +94,25 @@ modulejs.define('ext/filter', ['_', '$', 'core/settings', 'core/resource'], func
 				.on('click', function () {
 
 					$input.focus();
-				})
-				.appendTo('#navbar');
+				});
 
 			$input
 				.on('focus', function () {
 
-					checkState(true);
+					$filter.addClass('current');
 				})
-				.on('blur', function () {
-
-					checkState(false);
-				})
-				.on('keyup', update);
+				.on('blur keyup', update);
 
 			$(document)
 				.on('keydown', function (event) {
 
 					if (event.which === 27) {
 						$input.attr('value','').blur();
-						checkState(false);
 					}
 				})
 				.on('keypress', function (event) {
 
 					$input.focus();
-				})
-				.on('keyup', function (event) {
-
-					checkState(false);
 				});
 		};
 
diff --git a/src/_h5ai/js/inc/ext/folderstatus.js b/src/_h5ai/js/inc/ext/folderstatus.js
index 4c110db4..09823801 100644
--- a/src/_h5ai/js/inc/ext/folderstatus.js
+++ b/src/_h5ai/js/inc/ext/folderstatus.js
@@ -1,14 +1,10 @@
 
 modulejs.define('ext/folderstatus', ['_', 'core/settings'], function (_, allsettings) {
 
-	var defaults = {
+	var settings = _.extend({
 			enabled: false,
 			folders: {}
-		},
+		}, allsettings.folderstatus);
 
-		settings = _.extend({}, defaults, allsettings.folderstatus),
-
-		folders = settings.enabled ? settings.folders : defaults.folders;
-
-	return folders;
+	return settings.enabled ? settings.folders : {};
 });
diff --git a/src/_h5ai/js/inc/ext/google-analytics.js b/src/_h5ai/js/inc/ext/google-analytics.js
index 60a82d33..7238d855 100644
--- a/src/_h5ai/js/inc/ext/google-analytics.js
+++ b/src/_h5ai/js/inc/ext/google-analytics.js
@@ -1,12 +1,10 @@
 
 modulejs.define('ext/google-analytics', ['_', 'core/settings'], function (_, allsettings) {
 
-	var defaults = {
+	var settings = _.extend({
 			enabled: false,
 			gaq: []
-		},
-
-		settings = _.extend({}, defaults, allsettings['google-analytics']),
+		}, allsettings['google-analytics']),
 
 		init = function () {
 
diff --git a/src/_h5ai/js/inc/ext/l10n.js b/src/_h5ai/js/inc/ext/l10n.js
index c417e734..46d72983 100644
--- a/src/_h5ai/js/inc/ext/l10n.js
+++ b/src/_h5ai/js/inc/ext/l10n.js
@@ -1,11 +1,11 @@
 
 modulejs.define('ext/l10n', ['_', '$', 'core/settings', 'core/langs', 'core/format', 'core/store', 'core/event'], function (_, $, allsettings, langs, format, store, event) {
 
-	var defaults = {
+	var settings = _.extend({
 			enabled: true,
 			lang: 'en',
 			useBrowserLang: true
-		},
+		}, allsettings.l10n),
 
 		defaultTranslations = {
 			lang: 'english',
@@ -26,8 +26,6 @@ modulejs.define('ext/l10n', ['_', '$', 'core/settings', 'core/langs', 'core/form
 			filter: 'filter'
 		},
 
-		settings = _.extend({}, defaults, allsettings.l10n),
-
 		template = '<span id="langSelector">' +
 						'<span class="lang">en</span> - <span class="l10n-lang">english</span>' +
 						'<span class="langOptions"><ul/></span>' +
diff --git a/src/_h5ai/js/inc/ext/link-hover-states.js b/src/_h5ai/js/inc/ext/link-hover-states.js
index dc403b19..f3a84e0c 100644
--- a/src/_h5ai/js/inc/ext/link-hover-states.js
+++ b/src/_h5ai/js/inc/ext/link-hover-states.js
@@ -1,11 +1,9 @@
 
 modulejs.define('ext/link-hover-states', ['_', '$', 'core/settings'], function (_, $, allsettings) {
 
-	var defaults = {
+	var settings = _.extend({
 			enabled: false
-		},
-
-		settings = _.extend({}, defaults, allsettings['link-hover-states']),
+		}, allsettings['link-hover-states']),
 
 		selector = "a[href^='/']",
 
diff --git a/src/_h5ai/js/inc/ext/mode.js b/src/_h5ai/js/inc/ext/mode.js
index 174eb2d3..3ff8e74b 100644
--- a/src/_h5ai/js/inc/ext/mode.js
+++ b/src/_h5ai/js/inc/ext/mode.js
@@ -1,12 +1,10 @@
 
 modulejs.define('ext/mode', ['_', '$', 'core/mode', 'core/settings'], function (_, $, mode, allsettings) {
 
-	var defaults = {
+	var settings = _.extend({
 			enabled: false,
 			display: 0
-		},
-
-		settings = _.extend({}, defaults, allsettings.mode),
+		}, allsettings.mode),
 
 		init = function () {
 
diff --git a/src/_h5ai/js/inc/ext/piwik-analytics.js b/src/_h5ai/js/inc/ext/piwik-analytics.js
index dd73f890..7bc05191 100755
--- a/src/_h5ai/js/inc/ext/piwik-analytics.js
+++ b/src/_h5ai/js/inc/ext/piwik-analytics.js
@@ -1,13 +1,11 @@
 
 modulejs.define('ext/piwik-analytics', ['_', '$', 'core/settings'], function (_, $, allsettings) {
 
-	var defaults = {
+	var settings = _.extend({
 			enabled: false,
 			baseURL: 'not-set',
 			idSite: 0
-		},
-
-		settings = _.extend({}, defaults, allsettings['piwik-analytics']),
+		}, allsettings['piwik-analytics']),
 
 		init = function () {
 
diff --git a/src/_h5ai/js/inc/ext/preview-img.js b/src/_h5ai/js/inc/ext/preview-img.js
index 1f3c93d7..ba015f3c 100644
--- a/src/_h5ai/js/inc/ext/preview-img.js
+++ b/src/_h5ai/js/inc/ext/preview-img.js
@@ -1,12 +1,10 @@
 
 modulejs.define('ext/preview-img', ['_', '$', 'core/settings', 'core/resource', 'core/store', 'core/event', 'core/entry'], function (_, $, allsettings, resource, store, event, entry) {
 
-	var defaults = {
+	var settings = _.extend({
 			enabled: false,
 			types: ['bmp', 'gif', 'ico', 'image', 'jpg', 'png', 'tiff']
-		},
-
-		settings = _.extend({}, defaults, allsettings['preview-img']),
+		}, allsettings['preview-img']),
 
 		template = '<div id="pv-img-overlay" class="noSelection">' +
 						'<div id="pv-img-content">' +
@@ -139,7 +137,7 @@ modulejs.define('ext/preview-img', ['_', '$', 'core/settings', 'core/resource',
 
 					$img.attr('src', src).fadeIn(200);
 
-					// small timeout, so $img is visible and therefor $img.width is available
+					// small timeout, so $img is visible and therefore $img.width is available
 					setTimeout(function () {
 						adjustSize();
 						$('#pv-img-bar-percent').text('' + (100 * $img.width() / width).toFixed(0) + '%');
@@ -199,8 +197,8 @@ modulejs.define('ext/preview-img', ['_', '$', 'core/settings', 'core/resource',
 				onFullscreen();
 			}
 
+			event.preventDefault();
 			event.stopImmediatePropagation();
-			return false;
 		},
 
 		initEntry = function (entry) {
@@ -227,10 +225,7 @@ modulejs.define('ext/preview-img', ['_', '$', 'core/settings', 'core/resource',
 				return;
 			}
 
-			_.each(entry.content, function (e) {
-
-				initEntry(e);
-			});
+			_.each(entry.content, initEntry);
 
 			$(template).appendTo('body');
 			$('#pv-img-bar-prev, #pv-img-prev').on('click', onPrevious);
@@ -264,11 +259,6 @@ modulejs.define('ext/preview-img', ['_', '$', 'core/settings', 'core/resource',
 
 			$('#pv-img-overlay')
 				.on('keydown', onKeydown)
-				.on('click mousedown mousemove keydown keypress', function (event) {
-
-					event.stopImmediatePropagation();
-					return false;
-				})
 				.on('mousemove', function (event) {
 
 					if (isFullscreen) {
@@ -280,12 +270,13 @@ modulejs.define('ext/preview-img', ['_', '$', 'core/settings', 'core/resource',
 							$('#pv-img-bottombar').fadeOut(400);
 						}
 					}
+				})
+				.on('click mousedown mousemove keydown keypress', function (event) {
+
+					event.stopImmediatePropagation();
 				});
 
-			event.sub('entry.created', function (entry) {
-
-				initEntry(entry);
-			});
+			event.sub('entry.created', initEntry);
 
 			$(window).on('resize load', adjustSize);
 		};
diff --git a/src/_h5ai/js/inc/ext/preview-txt.js b/src/_h5ai/js/inc/ext/preview-txt.js
index 534e74d3..4cdfe13b 100644
--- a/src/_h5ai/js/inc/ext/preview-txt.js
+++ b/src/_h5ai/js/inc/ext/preview-txt.js
@@ -1,7 +1,7 @@
 
 modulejs.define('ext/preview-txt', ['_', '$', 'core/settings', 'core/resource', 'core/store', 'core/event', 'core/entry'], function (_, $, allsettings, resource, store, event, entry) {
 
-	var defaults = {
+	var settings = _.extend({
 			enabled: false,
 			types: {
 				authors: 'plain',
@@ -26,9 +26,7 @@ modulejs.define('ext/preview-txt', ['_', '$', 'core/settings', 'core/resource',
 				js: 'js',
 				xml: 'xml'
 			}
-		},
-
-		settings = _.extend({}, defaults, allsettings['preview-txt']),
+		}, allsettings['preview-txt']),
 
 		template = '<div id="pv-txt-overlay" class="noSelection">' +
 						'<div id="pv-txt-close"/>' +
@@ -206,8 +204,8 @@ modulejs.define('ext/preview-txt', ['_', '$', 'core/settings', 'core/resource',
 				onNext();
 			}
 
+			event.preventDefault();
 			event.stopImmediatePropagation();
-			return false;
 		},
 
 		initEntry = function (entry) {
@@ -234,10 +232,7 @@ modulejs.define('ext/preview-txt', ['_', '$', 'core/settings', 'core/resource',
 				return;
 			}
 
-			_.each(entry.content, function (e) {
-
-				initEntry(e);
-			});
+			_.each(entry.content, initEntry);
 
 			$(template).appendTo('body');
 			$('#pv-txt-bar-prev').on('click', onPrevious);
@@ -258,13 +253,9 @@ modulejs.define('ext/preview-txt', ['_', '$', 'core/settings', 'core/resource',
 				.on('click mousedown mousemove keydown keypress', function (event) {
 
 					event.stopImmediatePropagation();
-					return false;
 				});
 
-			event.sub('entry.created', function (entry) {
-
-				initEntry(entry);
-			});
+			event.sub('entry.created', initEntry);
 
 			$(window).on('resize load', adjustSize);
 		};
diff --git a/src/_h5ai/js/inc/ext/qrcode.js b/src/_h5ai/js/inc/ext/qrcode.js
index 99a6bb07..542d5c43 100644
--- a/src/_h5ai/js/inc/ext/qrcode.js
+++ b/src/_h5ai/js/inc/ext/qrcode.js
@@ -1,12 +1,10 @@
 
 modulejs.define('ext/qrcode', ['_', '$', 'modernizr', 'core/settings', 'core/event'], function (_, $, modernizr, allsettings, event) {
 
-	var defaults = {
+	var settings = _.extend({
 			enabled: false,
 			size: 150
-		},
-
-		settings = _.extend({}, defaults, allsettings.qrcode),
+		}, allsettings.qrcode),
 
 		template = '<div id="qrcode"/>',
 
diff --git a/src/_h5ai/js/inc/ext/select.js b/src/_h5ai/js/inc/ext/select.js
index b4683b87..2bf4cbd1 100644
--- a/src/_h5ai/js/inc/ext/select.js
+++ b/src/_h5ai/js/inc/ext/select.js
@@ -1,11 +1,9 @@
 
 modulejs.define('ext/select', ['_', '$', 'core/settings', 'core/event'], function (_, $, allsettings, event) {
 
-	var defaults = {
+	var settings = _.extend({
 			enabled: false
-		},
-
-		settings = _.extend({}, defaults, allsettings.select),
+		}, allsettings.select),
 
 		x = 0, y = 0,
 		l = 0, t = 0, w = 0, h = 0,
diff --git a/src/_h5ai/js/inc/ext/sort.js b/src/_h5ai/js/inc/ext/sort.js
index 35c0a253..389498e5 100644
--- a/src/_h5ai/js/inc/ext/sort.js
+++ b/src/_h5ai/js/inc/ext/sort.js
@@ -1,12 +1,10 @@
 
 modulejs.define('ext/sort', ['_', '$', 'core/settings', 'core/resource', 'core/event', 'core/store'], function (_, $, allsettings, resource, event, store) {
 
-	var defaults = {
+	var settings = _.extend({
 			enabled: false,
 			order: 'na'
-		},
-
-		settings = _.extend({}, defaults, allsettings.sort),
+		}, allsettings.sort),
 
 		storekey = 'h5ai.sortorder',
 
diff --git a/src/_h5ai/js/inc/ext/statusbar.js b/src/_h5ai/js/inc/ext/statusbar.js
index 2e5add4b..7a0d0982 100644
--- a/src/_h5ai/js/inc/ext/statusbar.js
+++ b/src/_h5ai/js/inc/ext/statusbar.js
@@ -1,11 +1,9 @@
 
 modulejs.define('ext/statusbar', ['_', '$', 'core/settings', 'core/format', 'core/event', 'core/entry'], function (_, $, allsettings, format, event, entry) {
 
-	var defaults = {
+	var settings = _.extend({
 			enabled: false
-		},
-
-		settings = _.extend({}, defaults, allsettings.statusbar),
+		}, allsettings.statusbar),
 
 		template = '<span class="statusbar">' +
 						'<span class="status default">' +
diff --git a/src/_h5ai/js/inc/ext/thumbnails.js b/src/_h5ai/js/inc/ext/thumbnails.js
index 8bd87fdc..171f78bd 100644
--- a/src/_h5ai/js/inc/ext/thumbnails.js
+++ b/src/_h5ai/js/inc/ext/thumbnails.js
@@ -1,15 +1,13 @@
 
 modulejs.define('ext/thumbnails', ['_', 'core/settings', 'core/entry', 'core/event', 'core/ajax'], function (_, allsettings, entry, event, ajax) {
 
-	var defaults = {
+	var settings = _.extend({
 			enabled: false,
 			img: ['bmp', 'gif', 'ico', 'image', 'jpg', 'png', 'tiff'],
 			mov: ['video'],
 			doc: ['pdf', 'ps'],
 			delay: 1000
-		},
-
-		settings = _.extend({}, defaults, allsettings.thumbnails),
+		}, allsettings.thumbnails),
 
 		checkEntry = function (entry) {
 
diff --git a/src/_h5ai/js/inc/ext/title.js b/src/_h5ai/js/inc/ext/title.js
index 3bea5c81..f9da90a9 100644
--- a/src/_h5ai/js/inc/ext/title.js
+++ b/src/_h5ai/js/inc/ext/title.js
@@ -1,11 +1,9 @@
 
 modulejs.define('ext/title', ['_', 'core/settings', 'core/entry'], function (_, allsettings, entry) {
 
-	var defaults = {
+	var settings = _.extend({
 			enabled: false
-		},
-
-		settings = _.extend({}, defaults, allsettings.title),
+		}, allsettings.title),
 
 		init = function (entry) {
 
diff --git a/src/_h5ai/js/inc/ext/tree.js b/src/_h5ai/js/inc/ext/tree.js
index 6922c0a5..91875ca9 100644
--- a/src/_h5ai/js/inc/ext/tree.js
+++ b/src/_h5ai/js/inc/ext/tree.js
@@ -1,12 +1,10 @@
 
 modulejs.define('ext/tree', ['_', '$', 'core/settings', 'core/resource', 'core/event', 'core/entry', 'core/parser'], function (_, $, allsettings, resource, event, entry, parser) {
 
-	var defaults = {
+	var settings = _.extend({
 			enabled: false,
 			slide: true
-		},
-
-		settings = _.extend({}, defaults, allsettings.tree),
+		}, allsettings.tree),
 
 		template = '<div class="entry">' +
 						'<span class="indicator none">' +
diff --git a/src/_h5ai/js/inc/view/extended.js b/src/_h5ai/js/inc/view/extended.js
index 3e0ee138..87f3186f 100644
--- a/src/_h5ai/js/inc/view/extended.js
+++ b/src/_h5ai/js/inc/view/extended.js
@@ -1,13 +1,11 @@
 
 modulejs.define('view/extended', ['_', '$', 'core/settings', 'core/resource', 'core/format', 'core/event', 'core/entry'], function (_, $, allsettings, resource, format, event, entry) {
 
-	var defaults = {
+	var settings = _.extend({
 			modes: ['details', 'icons'],
 			setParentFolderLabels: false,
 			binaryPrefix: false
-		},
-
-		settings = _.extend({}, defaults, allsettings.view),
+		}, allsettings.view),
 
 		template = '<li class="entry">' +
 						'<a>' +
diff --git a/src/_h5ai/js/inc/view/spacing.js b/src/_h5ai/js/inc/view/spacing.js
index a559979e..98fd353f 100644
--- a/src/_h5ai/js/inc/view/spacing.js
+++ b/src/_h5ai/js/inc/view/spacing.js
@@ -1,15 +1,13 @@
 
 modulejs.define('view/spacing', ['_', '$', 'core/settings', 'core/event'], function (_, $, allsettings, event) {
 
-	var defaults = {
+	var settings = _.extend({
 			maxWidth: 960,
 			top: 50,
 			right: "auto",
 			bottom: 50,
 			left: "auto"
-		},
-
-		settings = _.extend({}, defaults, allsettings.spacing),
+		}, allsettings.spacing),
 
 		adjustSpacing = function () {
 
diff --git a/src/_h5ai/l10n/ru.json b/src/_h5ai/l10n/ru.json
index e9486958..0bb975ec 100644
--- a/src/_h5ai/l10n/ru.json
+++ b/src/_h5ai/l10n/ru.json
@@ -1,12 +1,19 @@
 {
 	"lang": "русский",
-	"details": "детали",
-	"icons": "иконки",
+	"details": "Детали",
+	"list": "Список",
+	"grid": "Сетка",
+	"icons": "Иконки",
 	"name": "Имя",
 	"lastModified": "Последние изменения",
 	"size": "Размер",
 	"parentDirectory": "Главная директория",
-	"empty": "пусто",
-	"folders": "папки",
-	"files": "файлы"
+	"empty": "Пусто",
+	"folders": "Папки",
+	"files": "Файлы",
+	"download": "Скачать",
+	"noMatch": "Нет совпадений",
+	"dateFormat": "YYYY-MM-DD HH:mm",
+	"filter": "Фильтр",
+	"delete": "Удалить"
 }
\ No newline at end of file
diff --git a/src/_h5ai/php/h5ai-index.php.jade b/src/_h5ai/php/h5ai-index.php.jade
index 8e4e72df..250ac430 100644
--- a/src/_h5ai/php/h5ai-index.php.jade
+++ b/src/_h5ai/php/h5ai-index.php.jade
@@ -3,13 +3,9 @@
 |	$h5ai_php = str_replace("\\", "/", dirname(__FILE__)) . "/inc/H5ai.php";
 |	if (!file_exists($h5ai_php)) {
 |		function find_h5ai($path, $h5ai) {
-|			if (file_exists($path . $h5ai)) {
-|				return $path . $h5ai;
-|			}
+|			if (file_exists($path . $h5ai)) { return $path . $h5ai; }
 |			$parent = str_replace("\\", "/", dirname($path));
-|			if ($parent !== $path) {
-|				return find_h5ai($parent, $h5ai);
-|			}
+|			if ($parent !== $path) { return find_h5ai($parent, $h5ai); }
 |			error_log("h5ai not found: " . __FILE__);
 |		}
 |		$h5ai_php = find_h5ai(str_replace("\\", "/", dirname(__FILE__)), "/_h5ai/php/inc/H5ai.php");