diff --git a/README.md b/README.md
index a7bd3f9..7935e3d 100644
--- a/README.md
+++ b/README.md
@@ -2,7 +2,9 @@
 The source code of the Chrome "Translate Selected Text" extension.
 
 ## Do you want to help to translate this extension's UI?
-If you want to help bring this extension into your native language, you can, and I wold really appreciate it! Just go to the following website and start translating :)
+If you want to help bring this extension into your native language, you can, and
+I would really appreciate it! Just go to the following website and start
+translating :)
 
 * [Translate Selected Text - Crowdin](https://crowdin.com/project/translateselectedtext)
 
@@ -10,7 +12,9 @@
 
 ## Special thanks
 Special thanks to:
-* All the users who use the extension every day and who trust the model of developing simple extensions which do not request any privacy-breaking permissions.
+* All the users who use the extension every day and who trust the model of
+developing simple extensions which do not request any privacy-breaking
+permissions.
 * Alexander Simkin for the Russian translation.
 * BrowserStack for allowing me to use their awesome services in order to test the extension in multiple versions of Chrome and in different operating systems.
 
diff --git a/isolangs.json b/isolangs.json
deleted file mode 100644
index 440b11b..0000000
--- a/isolangs.json
+++ /dev/null
@@ -1,418 +0,0 @@
-{
-    "af":{
-        "name":"Afrikaans",
-        "nativeName":"Afrikaans"
-    },
-    "sq":{
-        "name":"Albanian",
-        "nativeName":"Shqip"
-    },
-    "am":{
-        "name":"Amharic",
-        "nativeName":"አማርኛ"
-    },
-    "ar":{
-        "name":"Arabic",
-        "nativeName":"العربية"
-    },
-    "hy":{
-        "name":"Armenian",
-        "nativeName":"Հայերեն"
-    },
-    "az":{
-        "name":"Azerbaijani",
-        "nativeName":"azərbaycan dili"
-    },
-    "eu":{
-        "name":"Basque",
-        "nativeName":"euskara"
-    },
-    "be":{
-        "name":"Belarusian",
-        "nativeName":"Беларуская"
-    },
-    "bn":{
-        "name":"Bengali",
-        "nativeName":"বাংলা"
-    },
-    "bs":{
-        "name":"Bosnian",
-        "nativeName":"bosanski jezik"
-    },
-    "bg":{
-        "name":"Bulgarian",
-        "nativeName":"български език"
-    },
-    "ca":{
-        "name":"Catalan",
-        "nativeName":"Català"
-    },
-    "ceb":{
-        "name":"Cebuano",
-        "nativeName":"Bisaya"
-    },
-    "ny":{
-        "name":"Chichewa",
-        "nativeName":"chiCheŵa"
-    },
-    "zh":{
-        "name":"Chinese",
-        "nativeName":"中文 (Zhōngwén)"
-    },
-    "co":{
-        "name":"Corsican",
-        "nativeName":"corsu"
-    },
-    "hr":{
-        "name":"Croatian",
-        "nativeName":"hrvatski"
-    },
-    "cs":{
-        "name":"Czech",
-        "nativeName":"česky"
-    },
-    "da":{
-        "name":"Danish",
-        "nativeName":"dansk"
-    },
-    "nl":{
-        "name":"Dutch",
-        "nativeName":"Nederlands"
-    },
-    "en":{
-        "name":"English",
-        "nativeName":"English"
-    },
-    "eo":{
-        "name":"Esperanto",
-        "nativeName":"Esperanto"
-    },
-    "et":{
-        "name":"Estonian",
-        "nativeName":"eesti"
-    },
-    "tl":{
-        "name":"Filipino",
-        "nativeName":"Pilipino"
-    },
-    "fi":{
-        "name":"Finnish",
-        "nativeName":"suomi"
-    },
-    "fr":{
-        "name":"French",
-        "nativeName":"français"
-    },
-    "fy":{
-        "name":"Frisian",
-        "nativeName":"Frysk"
-    },
-    "gl":{
-        "name":"Galician",
-        "nativeName":"Galego"
-    },
-    "ka":{
-        "name":"Georgian",
-        "nativeName":"ქართული"
-    },
-    "de":{
-        "name":"German",
-        "nativeName":"Deutsch"
-    },
-    "el":{
-        "name":"Greek",
-        "nativeName":"Ελληνικά"
-    },
-    "gu":{
-        "name":"Gujarati",
-        "nativeName":"ગુજરાતી"
-    },
-    "ht":{
-        "name":"Haitian Creole",
-        "nativeName":"Kreyòl ayisyen"
-    },
-    "ha":{
-        "name":"Hausa",
-        "nativeName":"Hausa"
-    },
-    "haw":{
-        "name":"Hawaiian",
-        "nativeName":"Hausa"
-    },
-    "iw":{
-        "name":"Hebrew",
-        "nativeName":"עברית"
-    },
-    "hi":{
-        "name":"Hindi",
-        "nativeName":"हिन्दी, हिंदी"
-    },
-    "hmn":{
-        "name":"Hmong",
-        "nativeName":"lus Hmoob"
-    },
-    "hu":{
-        "name":"Hungarian",
-        "nativeName":"Magyar"
-    },
-    "is":{
-        "name":"Icelandic",
-        "nativeName":"Íslenska"
-    },
-    "ig":{
-        "name":"Igbo",
-        "nativeName":"Asụsụ Igbo"
-    },
-    "id":{
-        "name":"Indonesian",
-        "nativeName":"Bahasa Indonesia"
-    },
-    "ga":{
-        "name":"Irish",
-        "nativeName":"Gaeilge"
-    },
-    "it":{
-        "name":"Italian",
-        "nativeName":"Italiano"
-    },
-    "ja":{
-        "name":"Japanese",
-        "nativeName":"日本語 (にほんご／にっぽんご)"
-    },
-    "jv":{
-        "name":"Javanese",
-        "nativeName":"basa Jawa"
-    },
-    "kn":{
-        "name":"Kannada",
-        "nativeName":"ಕನ್ನಡ"
-    },
-    "kk":{
-        "name":"Kazakh",
-        "nativeName":"Қазақ тілі"
-    },
-    "km":{
-        "name":"Khmer",
-        "nativeName":"ភាសាខ្មែរ"
-    },
-    "ko":{
-        "name":"Korean",
-        "nativeName":"한국어 (韓國語)"
-    },
-    "ku":{
-        "name":"Kurdish (Kurmanji)",
-        "nativeName":"Kurdî"
-    },
-    "ky":{
-        "name":"Kyrgyz",
-        "nativeName":"кыргыз тили"
-    },
-    "lo":{
-        "name":"Lao",
-        "nativeName":"ພາສາລາວ"
-    },
-    "la":{
-        "name":"Latin",
-        "nativeName":"latine"
-    },
-    "lv":{
-        "name":"Latvian",
-        "nativeName":"latviešu valoda"
-    },
-    "lt":{
-        "name":"Lithuanian",
-        "nativeName":"lietuvių kalba"
-    },
-    "lb":{
-        "name":"Luxembourgish",
-        "nativeName":"Lëtzebuergesch"
-    },
-    "mk":{
-        "name":"Macedonian",
-        "nativeName":"македонски јазик"
-    },
-    "mg":{
-        "name":"Malagasy",
-        "nativeName":"Malagasy fiteny"
-    },
-    "ms":{
-        "name":"Malay",
-        "nativeName":"bahasa Melayu"
-    },
-    "ml":{
-        "name":"Malayalam",
-        "nativeName":"മലയാളം"
-    },
-    "mt":{
-        "name":"Maltese",
-        "nativeName":"Malti"
-    },
-    "mi":{
-        "name":"Māori",
-        "nativeName":"te reo Māori"
-    },
-    "mr":{
-        "name":"Marathi",
-        "nativeName":"मराठी"
-    },
-    "mn":{
-        "name":"Mongolian",
-        "nativeName":"монгол"
-    },
-    "my":{
-        "name":"Myanmar",
-        "nativeName":"ဗမာစာ"
-    },
-    "ne":{
-        "name":"Nepali",
-        "nativeName":"नेपाली"
-    },
-    "no":{
-        "name":"Norwegian",
-        "nativeName":"Norsk"
-    },
-    "ps":{
-        "name":"Pashto",
-        "nativeName":"پښتو"
-    },
-    "fa":{
-        "name":"Persian",
-        "nativeName":"فارسی"
-    },
-    "pl":{
-        "name":"Polish",
-        "nativeName":"polski"
-    },
-    "pt":{
-        "name":"Portuguese",
-        "nativeName":"Português"
-    },
-    "pa":{
-        "name":"Punjabi",
-        "nativeName":"ਪੰਜਾਬ"
-    },
-    "ro":{
-        "name":"Romanian",
-        "nativeName":"română"
-    },
-    "ru":{
-        "name":"Russian",
-        "nativeName":"русский язык"
-    },
-    "sm":{
-        "name":"Samoan",
-        "nativeName":"gagana faa Samoa"
-    },
-    "gd":{
-        "name":"Scots Gaelic",
-        "nativeName":"Gàidhlig"
-    },
-    "sr":{
-        "name":"Serbian",
-        "nativeName":"српски језик"
-    },
-    "st":{
-        "name":"Sesotho",
-        "nativeName":"Sesotho"
-    },
-    "sn":{
-        "name":"Shona",
-        "nativeName":"chiShona"
-    },
-    "sd":{
-        "name":"Sindhi",
-        "nativeName":"सिन्धी"
-    },
-    "si":{
-        "name":"Sinhala",
-        "nativeName":"සිංහල"
-    },
-    "sk":{
-        "name":"Slovak",
-        "nativeName":"slovenčina"
-    },
-    "sl":{
-        "name":"Slovenian",
-        "nativeName":"slovenščina"
-    },
-    "so":{
-        "name":"Somali",
-        "nativeName":"Soomaaliga"
-    },
-    "es":{
-        "name":"Spanish",
-        "nativeName":"español"
-    },
-    "su":{
-        "name":"Sundanese",
-        "nativeName":"Basa Sunda"
-    },
-    "sw":{
-        "name":"Swahili",
-        "nativeName":"Kiswahili"
-    },
-    "sv":{
-        "name":"Swedish",
-        "nativeName":"svenska"
-    },
-    "tg":{
-        "name":"Tajik",
-        "nativeName":"тоҷикӣ"
-    },
-    "ta":{
-        "name":"Tamil",
-        "nativeName":"தமிழ்"
-    },
-    "te":{
-        "name":"Telugu",
-        "nativeName":"తెలుగు"
-    },
-    "th":{
-        "name":"Thai",
-        "nativeName":"ไทย"
-    },
-    "tr":{
-        "name":"Turkish",
-        "nativeName":"Türkçe"
-    },
-    "uk":{
-        "name":"Ukrainian",
-        "nativeName":"українська"
-    },
-    "ur":{
-        "name":"Urdu",
-        "nativeName":"اردو"
-    },
-    "uz":{
-        "name":"Uzbek",
-        "nativeName":"zbek"
-    },
-    "vi":{
-        "name":"Vietnamese",
-        "nativeName":"Tiếng Việt"
-    },
-    "cy":{
-        "name":"Welsh",
-        "nativeName":"Cymraeg"
-    },
-    "xh":{
-        "name":"Xhosa",
-        "nativeName":"isiXhosa"
-    },
-    "yi":{
-        "name":"Yiddish",
-        "nativeName":"ייִדיש"
-    },
-    "yo":{
-        "name":"Yoruba",
-        "nativeName":"Yorùbá"
-    },
-    "za":{
-        "name":"Zhuang, Chuang",
-        "nativeName":"Saɯ cueŋƅ"
-    },
-    "zu":{
-        "name":"Zulu",
-        "nativeName":"isiZulu"
-    }
-}
diff --git a/src/background.js b/src/background.js
index 3c34a89..ed86f66 100644
--- a/src/background.js
+++ b/src/background.js
@@ -1,53 +1,64 @@
-// To generate isoLangs, edit code at isolangs.json and use Closure to minimize it
-var isoLangs={af:{name:"Afrikaans",nativeName:"Afrikaans"},sq:{name:"Albanian",nativeName:"Shqip"},am:{name:"Amharic",nativeName:"\u12a0\u121b\u122d\u129b"},ar:{name:"Arabic",nativeName:"\u0627\u0644\u0639\u0631\u0628\u064a\u0629"},hy:{name:"Armenian",nativeName:"\u0540\u0561\u0575\u0565\u0580\u0565\u0576"},az:{name:"Azerbaijani",nativeName:"az\u0259rbaycan dili"},eu:{name:"Basque",nativeName:"euskara"},be:{name:"Belarusian",nativeName:"\u0411\u0435\u043b\u0430\u0440\u0443\u0441\u043a\u0430\u044f"},
-bn:{name:"Bengali",nativeName:"\u09ac\u09be\u0982\u09b2\u09be"},bs:{name:"Bosnian",nativeName:"bosanski jezik"},bg:{name:"Bulgarian",nativeName:"\u0431\u044a\u043b\u0433\u0430\u0440\u0441\u043a\u0438 \u0435\u0437\u0438\u043a"},ca:{name:"Catalan",nativeName:"Catal\u00e0"},ceb:{name:"Cebuano",nativeName:"Bisaya"},ny:{name:"Chichewa",nativeName:"chiChe\u0175a"},zh:{name:"Chinese",nativeName:"\u4e2d\u6587 (Zh\u014dngw\u00e9n)"},co:{name:"Corsican",nativeName:"corsu"},hr:{name:"Croatian",nativeName:"hrvatski"},
-cs:{name:"Czech",nativeName:"\u010desky"},da:{name:"Danish",nativeName:"dansk"},nl:{name:"Dutch",nativeName:"Nederlands"},en:{name:"English",nativeName:"English"},eo:{name:"Esperanto",nativeName:"Esperanto"},et:{name:"Estonian",nativeName:"eesti"},tl:{name:"Filipino",nativeName:"Pilipino"},fi:{name:"Finnish",nativeName:"suomi"},fr:{name:"French",nativeName:"fran\u00e7ais"},fy:{name:"Frisian",nativeName:"Frysk"},gl:{name:"Galician",nativeName:"Galego"},ka:{name:"Georgian",nativeName:"\u10e5\u10d0\u10e0\u10d7\u10e3\u10da\u10d8"},
-de:{name:"German",nativeName:"Deutsch"},el:{name:"Greek",nativeName:"\u0395\u03bb\u03bb\u03b7\u03bd\u03b9\u03ba\u03ac"},gu:{name:"Gujarati",nativeName:"\u0a97\u0ac1\u0a9c\u0ab0\u0abe\u0aa4\u0ac0"},ht:{name:"Haitian Creole",nativeName:"Krey\u00f2l ayisyen"},ha:{name:"Hausa",nativeName:"Hausa"},haw:{name:"Hawaiian",nativeName:"Hausa"},iw:{name:"Hebrew",nativeName:"\u05e2\u05d1\u05e8\u05d9\u05ea"},hi:{name:"Hindi",nativeName:"\u0939\u093f\u0928\u094d\u0926\u0940, \u0939\u093f\u0902\u0926\u0940"},hmn:{name:"Hmong",
-nativeName:"lus Hmoob"},hu:{name:"Hungarian",nativeName:"Magyar"},is:{name:"Icelandic",nativeName:"\u00cdslenska"},ig:{name:"Igbo",nativeName:"As\u1ee5s\u1ee5 Igbo"},id:{name:"Indonesian",nativeName:"Bahasa Indonesia"},ga:{name:"Irish",nativeName:"Gaeilge"},it:{name:"Italian",nativeName:"Italiano"},ja:{name:"Japanese",nativeName:"\u65e5\u672c\u8a9e (\u306b\u307b\u3093\u3054\uff0f\u306b\u3063\u307d\u3093\u3054)"},jv:{name:"Javanese",nativeName:"basa Jawa"},kn:{name:"Kannada",nativeName:"\u0c95\u0ca8\u0ccd\u0ca8\u0ca1"},
-kk:{name:"Kazakh",nativeName:"\u049a\u0430\u0437\u0430\u049b \u0442\u0456\u043b\u0456"},km:{name:"Khmer",nativeName:"\u1797\u17b6\u179f\u17b6\u1781\u17d2\u1798\u17c2\u179a"},ko:{name:"Korean",nativeName:"\ud55c\uad6d\uc5b4 (\u97d3\u570b\u8a9e)"},ku:{name:"Kurdish (Kurmanji)",nativeName:"Kurd\u00ee"},ky:{name:"Kyrgyz",nativeName:"\u043a\u044b\u0440\u0433\u044b\u0437 \u0442\u0438\u043b\u0438"},lo:{name:"Lao",nativeName:"\u0e9e\u0eb2\u0eaa\u0eb2\u0ea5\u0eb2\u0ea7"},la:{name:"Latin",nativeName:"latine"},
-lv:{name:"Latvian",nativeName:"latvie\u0161u valoda"},lt:{name:"Lithuanian",nativeName:"lietuvi\u0173 kalba"},lb:{name:"Luxembourgish",nativeName:"L\u00ebtzebuergesch"},mk:{name:"Macedonian",nativeName:"\u043c\u0430\u043a\u0435\u0434\u043e\u043d\u0441\u043a\u0438 \u0458\u0430\u0437\u0438\u043a"},mg:{name:"Malagasy",nativeName:"Malagasy fiteny"},ms:{name:"Malay",nativeName:"bahasa Melayu"},ml:{name:"Malayalam",nativeName:"\u0d2e\u0d32\u0d2f\u0d3e\u0d33\u0d02"},mt:{name:"Maltese",nativeName:"Malti"},
-mi:{name:"M\u0101ori",nativeName:"te reo M\u0101ori"},mr:{name:"Marathi",nativeName:"\u092e\u0930\u093e\u0920\u0940"},mn:{name:"Mongolian",nativeName:"\u043c\u043e\u043d\u0433\u043e\u043b"},my:{name:"Myanmar",nativeName:"\u1017\u1019\u102c\u1005\u102c"},ne:{name:"Nepali",nativeName:"\u0928\u0947\u092a\u093e\u0932\u0940"},no:{name:"Norwegian",nativeName:"Norsk"},ps:{name:"Pashto",nativeName:"\u067e\u069a\u062a\u0648"},fa:{name:"Persian",nativeName:"\u0641\u0627\u0631\u0633\u06cc"},pl:{name:"Polish",
-nativeName:"polski"},pt:{name:"Portuguese",nativeName:"Portugu\u00eas"},pa:{name:"Punjabi",nativeName:"\u0a2a\u0a70\u0a1c\u0a3e\u0a2c"},ro:{name:"Romanian",nativeName:"rom\u00e2n\u0103"},ru:{name:"Russian",nativeName:"\u0440\u0443\u0441\u0441\u043a\u0438\u0439 \u044f\u0437\u044b\u043a"},sm:{name:"Samoan",nativeName:"gagana faa Samoa"},gd:{name:"Scots Gaelic",nativeName:"G\u00e0idhlig"},sr:{name:"Serbian",nativeName:"\u0441\u0440\u043f\u0441\u043a\u0438 \u0458\u0435\u0437\u0438\u043a"},st:{name:"Sesotho",
-nativeName:"Sesotho"},sn:{name:"Shona",nativeName:"chiShona"},sd:{name:"Sindhi",nativeName:"\u0938\u093f\u0928\u094d\u0927\u0940"},si:{name:"Sinhala",nativeName:"\u0dc3\u0dd2\u0d82\u0dc4\u0dbd"},sk:{name:"Slovak",nativeName:"sloven\u010dina"},sl:{name:"Slovenian",nativeName:"sloven\u0161\u010dina"},so:{name:"Somali",nativeName:"Soomaaliga"},es:{name:"Spanish",nativeName:"espa\u00f1ol"},su:{name:"Sundanese",nativeName:"Basa Sunda"},sw:{name:"Swahili",nativeName:"Kiswahili"},sv:{name:"Swedish",nativeName:"svenska"},
-tg:{name:"Tajik",nativeName:"\u0442\u043e\u04b7\u0438\u043a\u04e3"},ta:{name:"Tamil",nativeName:"\u0ba4\u0bae\u0bbf\u0bb4\u0bcd"},te:{name:"Telugu",nativeName:"\u0c24\u0c46\u0c32\u0c41\u0c17\u0c41"},th:{name:"Thai",nativeName:"\u0e44\u0e17\u0e22"},tr:{name:"Turkish",nativeName:"T\u00fcrk\u00e7e"},uk:{name:"Ukrainian",nativeName:"\u0443\u043a\u0440\u0430\u0457\u043d\u0441\u044c\u043a\u0430"},ur:{name:"Urdu",nativeName:"\u0627\u0631\u062f\u0648"},uz:{name:"Uzbek",nativeName:"zbek"},vi:{name:"Vietnamese",
-nativeName:"Ti\u1ebfng Vi\u1ec7t"},cy:{name:"Welsh",nativeName:"Cymraeg"},xh:{name:"Xhosa",nativeName:"isiXhosa"},yi:{name:"Yiddish",nativeName:"\u05d9\u05d9\u05b4\u05d3\u05d9\u05e9"},yo:{name:"Yoruba",nativeName:"Yor\u00f9b\u00e1"},za:{name:"Zhuang, Chuang",nativeName:"Sa\u026f cue\u014b\u0185"},zu:{name:"Zulu",nativeName:"isiZulu"}};
-
-var array_elements = new Array(), translator_tab = false, translator_window = false;
+var array_elements = [], translator_tab = null, translator_window = null;
 
 function isEmpty(obj) {
-    return Object.keys(obj).length === 0;
+	return Object.keys(obj).length === 0;
 }
 
-function click(info, tab) {
-	chrome.storage.sync.get("uniquetab", function(items) {
-		var settings_tab = {'url': 'https://translate.google.com/#auto/'+array_elements[info.menuItemId]['langCode']+'/'+encodeURIComponent(info.selectionText)};
-		if (translator_tab && items.uniquetab == "yep") {
-			chrome.tabs.update(translator_tab, settings_tab, function(tab){
-				chrome.tabs.highlight({'windowId': tab.windowId, 'tabs': tab.index}, function() {
-					chrome.windows.update(tab.windowId, {focused: true}, function() {});
-				});
+function getTranslationUrl(lang, text) {
+	var params = new URLSearchParams({
+		sl: 'auto',
+		tl: lang,
+		text: text,
+		op: 'translate',
+	});
+	return 'https://translate.google.com/?' + params.toString();
+}
+
+function translationClick(info, tab) {
+	console.log(info.selectionText);
+	chrome.storage.sync.get('uniquetab', items => {
+		var url = getTranslationUrl(
+		    array_elements[info.menuItemId]['langCode'], info.selectionText);
+		var settings_tab = {url};
+		if (translator_tab && items.uniquetab == 'yep') {
+			chrome.tabs.update(translator_tab, settings_tab, tab => {
+				chrome.tabs.highlight(
+				    {
+					    windowId: tab.windowId,
+					    tabs: tab.index,
+				    },
+				    _ => {
+					    chrome.windows.update(tab.windowId, {
+						    focused: true,
+					    });
+				    });
 			});
-		} else if (items.uniquetab == "panel") {
-			chrome.windows.create({
-				type: 'panel', url: 'https://translate.google.com/#auto/'+array_elements[info.menuItemId]['langCode']+'/'+encodeURIComponent(info.selectionText), width: 1000, height: 382}, function(tab) {
-					translator_window = tab.windowId;
-					translator_tab = tab.id;
-					chrome.windows.onRemoved.addListener(function (windowId) {
-						if (windowId == translator_window) {
-							translator_window = false;
-							translator_tab = false;
-						}
-					});
-				}
-			);
+		} else if (items.uniquetab == 'panel') {
+			chrome.windows.create(
+			    {
+				    type: 'panel',
+				    url,
+				    width: 1000,
+				    height: 382,
+			    },
+			    function(tab) {
+				    translator_window = tab.windowId;
+				    translator_tab = tab.id;
+				    chrome.windows.onRemoved.addListener(function(windowId) {
+					    if (windowId == translator_window) {
+						    translator_window = null;
+						    translator_tab = null;
+					    }
+				    });
+			    });
 		} else {
 			chrome.tabs.create(settings_tab, function(tab) {
 				translator_window = tab.windowId;
 				translator_tab = tab.id;
-				chrome.tabs.onRemoved.addListener(function (tabId, removeInfo) {
+				chrome.tabs.onRemoved.addListener(function(tabId, removeInfo) {
 					if (tabId == translator_tab) {
-						translator_window = false;
-						translator_tab = false;
+						translator_window = null;
+						translator_tab = null;
 					}
 				});
 			});
@@ -55,25 +66,30 @@
 	});
 }
 
-function click2(info, tab) {
+function openOptionsPage() {
 	if (chrome.runtime.openOptionsPage) {
 		// New way to open options pages, if supported (Chrome 42+).
 		chrome.runtime.openOptionsPage();
 	} else {
-		chrome.tabs.create({'url': 'chrome-extension://'+chrome.i18n.getMessage("@@extension_id")+'/options.html', 'active': true}, function(tab) {
-			chrome.windows.update(tab.windowId, {'focused': true}, function() {});
-		});
+		chrome.tabs.create(
+		    {
+			    'url': 'chrome-extension://' +
+			        chrome.i18n.getMessage('@@extension_id') + '/options.html',
+			    'active': true
+		    },
+		    tab => {
+			    chrome.windows.update(tab.windowId, {focused: true});
+		    });
 	}
-
 }
 
 function createmenus() {
-	chrome.storage.sync.get("translateinto", function(items) {
+	chrome.storage.sync.get('translateinto', function(items) {
 		chrome.contextMenus.removeAll();
 
 		var count = 0, singleone = true;
 
-		for (var language in items.translateinto) {
+		for (var language of Object.keys(items.translateinto)) {
 			if (count == 0) {
 				count++;
 			} else {
@@ -83,130 +99,168 @@
 		}
 
 		if (singleone) {
-			for (var language_id in items.translateinto) {
+			for (var language_id of Object.keys(items.translateinto)) {
 				var language = items.translateinto[language_id];
 				var languagem = isoLangs[language];
-				var title = languagem.name + " ("+languagem.nativeName+")";
-				var parent = chrome.contextMenus.create({"id": "tr_single_parent", "title": chrome.i18n.getMessage("contextmenu_title2", languagem.name), "contexts": ["selection"]});
-				array_elements[parent] = new Array();
-				array_elements[parent]["langCode"] = language;
-				array_elements[parent]["langName"] = languagem.name;
-				array_elements[parent]["langNativeName"] = language.nativeName;
+				var id = chrome.contextMenus.create({
+					'id': 'tr_single_parent',
+					'title': chrome.i18n.getMessage('contextmenu_title2', languagem.name),
+					'contexts': ['selection'],
+				});
+				array_elements[id] = new Array();
+				array_elements[id]['langCode'] = language;
 			}
 		} else {
-			var parent = chrome.contextMenus.create({"id": "parent", "title": chrome.i18n.getMessage("contextmenu_title"), "contexts": ["selection"]});
-			for (var language_id in items.translateinto) {
+			var parentEl = chrome.contextMenus.create({
+				'id': 'parent',
+				'title': chrome.i18n.getMessage('contextmenu_title'),
+				'contexts': ['selection']
+			});
+			for (var language_id of Object.keys(items.translateinto)) {
 				var language = items.translateinto[language_id];
 				var languagem = isoLangs[language];
-				var title = languagem.name + " ("+languagem.nativeName+")";
-				var id = chrome.contextMenus.create({"id": "tr_language_"+language, "title": title, "parentId": parent, "contexts":["selection"]});
+				var title = languagem.name + ' (' + languagem.nativeName + ')';
+				var id = chrome.contextMenus.create({
+					'id': 'tr_language_' + language,
+					'title': title,
+					'parentId': parentEl,
+					'contexts': ['selection']
+				});
 				array_elements[id] = new Array();
-				array_elements[id]["langCode"] = language;
-				array_elements[id]["langName"] = languagem.name;
-				array_elements[id]["langNativeName"] = language.nativeName;
+				array_elements[id]['langCode'] = language;
 			}
-			var id = chrome.contextMenus.create({"id": "tr_separator", "type": "separator","parentId": parent, "contexts":["selection"]});
-			var id = chrome.contextMenus.create({"id": "tr_options", "title": chrome.i18n.getMessage("contextmenu_edit"), "parentId": parent, "contexts":["selection"]});
+			chrome.contextMenus.create({
+				'id': 'tr_separator',
+				'type': 'separator',
+				'parentId': parentEl,
+				'contexts': ['selection']
+			});
+			chrome.contextMenus.create({
+				'id': 'tr_options',
+				'title': chrome.i18n.getMessage('contextmenu_edit'),
+				'parentId': parentEl,
+				'contexts': ['selection']
+			});
 		}
 	});
 }
 
 chrome.runtime.onInstalled.addListener(function(details) {
 	chrome.storage.sync.get(null, function(items) {
-		if (details.reason == "install") {
+		if (details.reason == 'install') {
 			if (isEmpty(items)) {
-				var settings = {'translateinto': {}, 'uniquetab': ''}, default_language = chrome.i18n.getMessage("@@ui_locale").split("_")[0];
-				if (isoLangs[default_language] != "undefined") {
+				var settings = {'translateinto': {}, 'uniquetab': ''},
+				    default_language =
+				        chrome.i18n.getMessage('@@ui_locale').split('_')[0];
+
+				if (isoLangs[default_language] != 'undefined') {
 					settings.translateinto[default_language] = default_language;
 				}
+
 				chrome.storage.sync.set(settings, function() {
-					chrome.notifications.create("install", {
-						type: "basic",
-						iconUrl: "icons/translate-128.png",
-						title: chrome.i18n.getMessage("notification_install_title"),
-						message: chrome.i18n.getMessage("notification_install_message"),
+					chrome.notifications.create('install', {
+						type: 'basic',
+						iconUrl: 'icons/translate-128.png',
+						title: chrome.i18n.getMessage('notification_install_title'),
+						message: chrome.i18n.getMessage('notification_install_message'),
 						isClickable: true
-					}, function(id) {});
+					});
 				});
 			}
 		}
-		if (details.reason == "update") {
-			var version = details.previousVersion.split(".");
-			if (version[0] == "0" && version[1] < "6") {
-				var settings = {'languages': {}, 'uniquetab': ''}, default_language = chrome.i18n.getMessage("@@ui_locale").split("_")[0];
-				if (isoLangs[default_language] != "undefined") {
+		if (details.reason == 'update') {
+			var version = details.previousVersion.split('.');
+
+			// Updating from a version previous to v0.6
+			if (version[0] == '0' && version[1] < '6') {
+				var settings = {
+					languages: {},
+					uniquetab: '',
+				};
+				var default_language =
+				    chrome.i18n.getMessage('@@ui_locale').split('_')[0];
+
+				if (isoLangs[default_language] != 'undefined')
 					settings.languages[default_language] = default_language;
-				}
+
 				chrome.storage.sync.set(settings, function() {
-					chrome.notifications.create("upgradedtostorage", {
-						type: "basic",
-						iconUrl: "icons/translate-128.png",
-						title: chrome.i18n.getMessage("notification_upgradedtostorage_title"),
-						message: chrome.i18n.getMessage("notification_upgradedtostorage_message"),
-						isClickable: true
-					}, function(id) {});
+					chrome.notifications.create('upgradedtostorage', {
+						type: 'basic',
+						iconUrl: 'icons/translate-128.png',
+						title:
+						    chrome.i18n.getMessage('notification_upgradedtostorage_title'),
+						message: chrome.i18n.getMessage(
+						    'notification_upgradedtostorage_message'),
+						isClickable: true,
+					});
 				});
 			}
-			if (version[0] == "0" && version[1] < "7") {
+
+			// Updating from a version previous to v0.7
+			if (version[0] == '0' && version[1] < '7') {
 				items.translateinto = {};
 				var i = 0;
 				for (var language in items.languages) {
 					items.translateinto[i] = items.languages[language];
 					i++;
 				}
-				delete(items.languages);
-				chrome.storage.sync.set(items, function() {
-					chrome.notifications.create("reorder", {
-						type: "basic",
-						iconUrl: "icons/translate-128.png",
-						title: chrome.i18n.getMessage("notification_reorder_title"),
-						message: chrome.i18n.getMessage("notification_reorder_message"),
+				delete items.languages;
+				chrome.storage.sync.set(items, _ => {
+					chrome.notifications.create('reorder', {
+						type: 'basic',
+						iconUrl: 'icons/translate-128.png',
+						title: chrome.i18n.getMessage('notification_reorder_title'),
+						message: chrome.i18n.getMessage('notification_reorder_message'),
 						isClickable: true
-					}, function(id) {});
+					});
 				});
 			}
 		}
 	});
 });
 
-chrome.storage.onChanged.addListener(function(changes, areaName) {
-	if (areaName == "sync")
-		createmenus();
+chrome.storage.onChanged.addListener((changes, areaName) => {
+	if (areaName == 'sync') createmenus();
 });
 
-chrome.storage.sync.get(null, function(items) {
+chrome.storage.sync.get(null, items => {
 	if (items.translateinto) {
 		createmenus();
 	} else {
 		chrome.contextMenus.removeAll();
-		var parent = chrome.contextMenus.create({"id": "tr_parent", "title": chrome.i18n.getMessage("contextmenu_title"), "contexts":["selection"]});
-		var id = chrome.contextMenus.create({"id": "tr_options", "title": chrome.i18n.getMessage("contextmenu_edit"), "parentId": parent, "contexts":["selection"]});
+		var parent = chrome.contextMenus.create({
+			'id': 'tr_parent',
+			'title': chrome.i18n.getMessage('contextmenu_title'),
+			'contexts': ['selection']
+		});
+		var id = chrome.contextMenus.create({
+			'id': 'tr_options',
+			'title': chrome.i18n.getMessage('contextmenu_edit'),
+			'parentId': parent,
+			'contexts': ['selection']
+		});
 	}
 });
 
-chrome.notifications.onClicked.addListener(function(notification_id) {
-	switch(notification_id) {
-		case "install":
-		click2();
-		break;
-
-		case "upgradedtostorage":
-		click2();
-		break;
-
-		case "reorder":
-		click2();
-		break;
+chrome.notifications.onClicked.addListener(notification_id => {
+	switch (notification_id) {
+		case 'install':
+		case 'upgradedtostorage':
+		case 'reorder':
+			openOptionsPage();
+			break;
 	}
-	chrome.notifications.clear(notification_id, function() {
-
-	});
+	chrome.notifications.clear(notification_id);
 });
 
-chrome.contextMenus.onClicked.addListener(function(info, tab) {
-	if (info.menuItemId == "tr_options") {
-		click2(info, tab);
+chrome.contextMenus.onClicked.addListener((info, tab) => {
+	if (info.menuItemId == 'tr_options') {
+		openOptionsPage();
 	} else {
-		click(info, tab);
+		translationClick(info, tab);
 	}
 });
+
+chrome.browserAction.onClicked.addListener(_ => {
+	openOptionsPage();
+});
diff --git a/src/js/common.js b/src/js/common.js
new file mode 100644
index 0000000..8289ced
--- /dev/null
+++ b/src/js/common.js
@@ -0,0 +1,106 @@
+var isoLangs = {
+  'af': {'name': 'Afrikaans', 'nativeName': 'Afrikaans'},
+  'sq': {'name': 'Albanian', 'nativeName': 'Shqip'},
+  'am': {'name': 'Amharic', 'nativeName': 'አማርኛ'},
+  'ar': {'name': 'Arabic', 'nativeName': 'العربية'},
+  'hy': {'name': 'Armenian', 'nativeName': 'Հայերեն'},
+  'az': {'name': 'Azerbaijani', 'nativeName': 'azərbaycan dili'},
+  'eu': {'name': 'Basque', 'nativeName': 'euskara'},
+  'be': {'name': 'Belarusian', 'nativeName': 'Беларуская'},
+  'bn': {'name': 'Bengali', 'nativeName': 'বাংলা'},
+  'bs': {'name': 'Bosnian', 'nativeName': 'bosanski jezik'},
+  'bg': {'name': 'Bulgarian', 'nativeName': 'български език'},
+  'ca': {'name': 'Catalan', 'nativeName': 'Català'},
+  'ceb': {'name': 'Cebuano', 'nativeName': 'Bisaya'},
+  'ny': {'name': 'Chichewa', 'nativeName': 'chiCheŵa'},
+  'zh': {'name': 'Chinese', 'nativeName': '中文 (Zhōngwén)'},
+  'co': {'name': 'Corsican', 'nativeName': 'corsu'},
+  'hr': {'name': 'Croatian', 'nativeName': 'hrvatski'},
+  'cs': {'name': 'Czech', 'nativeName': 'česky'},
+  'da': {'name': 'Danish', 'nativeName': 'dansk'},
+  'nl': {'name': 'Dutch', 'nativeName': 'Nederlands'},
+  'en': {'name': 'English', 'nativeName': 'English'},
+  'eo': {'name': 'Esperanto', 'nativeName': 'Esperanto'},
+  'et': {'name': 'Estonian', 'nativeName': 'eesti'},
+  'tl': {'name': 'Filipino', 'nativeName': 'Pilipino'},
+  'fi': {'name': 'Finnish', 'nativeName': 'suomi'},
+  'fr': {'name': 'French', 'nativeName': 'français'},
+  'fy': {'name': 'Frisian', 'nativeName': 'Frysk'},
+  'gl': {'name': 'Galician', 'nativeName': 'Galego'},
+  'ka': {'name': 'Georgian', 'nativeName': 'ქართული'},
+  'de': {'name': 'German', 'nativeName': 'Deutsch'},
+  'el': {'name': 'Greek', 'nativeName': 'Ελληνικά'},
+  'gu': {'name': 'Gujarati', 'nativeName': 'ગુજરાતી'},
+  'ht': {'name': 'Haitian Creole', 'nativeName': 'Kreyòl ayisyen'},
+  'ha': {'name': 'Hausa', 'nativeName': 'Hausa'},
+  'haw': {'name': 'Hawaiian', 'nativeName': 'Hausa'},
+  'iw': {'name': 'Hebrew', 'nativeName': 'עברית'},
+  'hi': {'name': 'Hindi', 'nativeName': 'हिन्दी, हिंदी'},
+  'hmn': {'name': 'Hmong', 'nativeName': 'lus Hmoob'},
+  'hu': {'name': 'Hungarian', 'nativeName': 'Magyar'},
+  'is': {'name': 'Icelandic', 'nativeName': 'Íslenska'},
+  'ig': {'name': 'Igbo', 'nativeName': 'Asụsụ Igbo'},
+  'id': {'name': 'Indonesian', 'nativeName': 'Bahasa Indonesia'},
+  'ga': {'name': 'Irish', 'nativeName': 'Gaeilge'},
+  'it': {'name': 'Italian', 'nativeName': 'Italiano'},
+  'ja': {'name': 'Japanese', 'nativeName': '日本語 (にほんご／にっぽんご)'},
+  'jv': {'name': 'Javanese', 'nativeName': 'basa Jawa'},
+  'kn': {'name': 'Kannada', 'nativeName': 'ಕನ್ನಡ'},
+  'kk': {'name': 'Kazakh', 'nativeName': 'Қазақ тілі'},
+  'km': {'name': 'Khmer', 'nativeName': 'ភាសាខ្មែរ'},
+  'ko': {'name': 'Korean', 'nativeName': '한국어 (韓國語)'},
+  'ku': {'name': 'Kurdish (Kurmanji)', 'nativeName': 'Kurdî'},
+  'ky': {'name': 'Kyrgyz', 'nativeName': 'кыргыз тили'},
+  'lo': {'name': 'Lao', 'nativeName': 'ພາສາລາວ'},
+  'la': {'name': 'Latin', 'nativeName': 'latine'},
+  'lv': {'name': 'Latvian', 'nativeName': 'latviešu valoda'},
+  'lt': {'name': 'Lithuanian', 'nativeName': 'lietuvių kalba'},
+  'lb': {'name': 'Luxembourgish', 'nativeName': 'Lëtzebuergesch'},
+  'mk': {'name': 'Macedonian', 'nativeName': 'македонски јазик'},
+  'mg': {'name': 'Malagasy', 'nativeName': 'Malagasy fiteny'},
+  'ms': {'name': 'Malay', 'nativeName': 'bahasa Melayu'},
+  'ml': {'name': 'Malayalam', 'nativeName': 'മലയാളം'},
+  'mt': {'name': 'Maltese', 'nativeName': 'Malti'},
+  'mi': {'name': 'Māori', 'nativeName': 'te reo Māori'},
+  'mr': {'name': 'Marathi', 'nativeName': 'मराठी'},
+  'mn': {'name': 'Mongolian', 'nativeName': 'монгол'},
+  'my': {'name': 'Myanmar', 'nativeName': 'ဗမာစာ'},
+  'ne': {'name': 'Nepali', 'nativeName': 'नेपाली'},
+  'no': {'name': 'Norwegian', 'nativeName': 'Norsk'},
+  'ps': {'name': 'Pashto', 'nativeName': 'پښتو'},
+  'fa': {'name': 'Persian', 'nativeName': 'فارسی'},
+  'pl': {'name': 'Polish', 'nativeName': 'polski'},
+  'pt': {'name': 'Portuguese', 'nativeName': 'Português'},
+  'pa': {'name': 'Punjabi', 'nativeName': 'ਪੰਜਾਬ'},
+  'ro': {'name': 'Romanian', 'nativeName': 'română'},
+  'ru': {'name': 'Russian', 'nativeName': 'русский язык'},
+  'sm': {'name': 'Samoan', 'nativeName': 'gagana faa Samoa'},
+  'gd': {'name': 'Scots Gaelic', 'nativeName': 'Gàidhlig'},
+  'sr': {'name': 'Serbian', 'nativeName': 'српски језик'},
+  'st': {'name': 'Sesotho', 'nativeName': 'Sesotho'},
+  'sn': {'name': 'Shona', 'nativeName': 'chiShona'},
+  'sd': {'name': 'Sindhi', 'nativeName': 'सिन्धी'},
+  'si': {'name': 'Sinhala', 'nativeName': 'සිංහල'},
+  'sk': {'name': 'Slovak', 'nativeName': 'slovenčina'},
+  'sl': {'name': 'Slovenian', 'nativeName': 'slovenščina'},
+  'so': {'name': 'Somali', 'nativeName': 'Soomaaliga'},
+  'es': {'name': 'Spanish', 'nativeName': 'español'},
+  'su': {'name': 'Sundanese', 'nativeName': 'Basa Sunda'},
+  'sw': {'name': 'Swahili', 'nativeName': 'Kiswahili'},
+  'sv': {'name': 'Swedish', 'nativeName': 'svenska'},
+  'tg': {'name': 'Tajik', 'nativeName': 'тоҷикӣ'},
+  'ta': {'name': 'Tamil', 'nativeName': 'தமிழ்'},
+  'te': {'name': 'Telugu', 'nativeName': 'తెలుగు'},
+  'th': {'name': 'Thai', 'nativeName': 'ไทย'},
+  'tr': {'name': 'Turkish', 'nativeName': 'Türkçe'},
+  'uk': {'name': 'Ukrainian', 'nativeName': 'українська'},
+  'ur': {'name': 'Urdu', 'nativeName': 'اردو'},
+  'uz': {'name': 'Uzbek', 'nativeName': 'zbek'},
+  'vi': {'name': 'Vietnamese', 'nativeName': 'Tiếng Việt'},
+  'cy': {'name': 'Welsh', 'nativeName': 'Cymraeg'},
+  'xh': {'name': 'Xhosa', 'nativeName': 'isiXhosa'},
+  'yi': {'name': 'Yiddish', 'nativeName': 'ייִדיש'},
+  'yo': {'name': 'Yoruba', 'nativeName': 'Yorùbá'},
+  'za': {'name': 'Zhuang, Chuang', 'nativeName': 'Saɯ cueŋƅ'},
+  'zu': {'name': 'Zulu', 'nativeName': 'isiZulu'}
+};
diff --git a/src/js/options.js b/src/js/options.js
index 147b02e..eba0a1a 100644
--- a/src/js/options.js
+++ b/src/js/options.js
@@ -1,16 +1,3 @@
-var isoLangs={af:{name:"Afrikaans",nativeName:"Afrikaans"},sq:{name:"Albanian",nativeName:"Shqip"},am:{name:"Amharic",nativeName:"\u12a0\u121b\u122d\u129b"},ar:{name:"Arabic",nativeName:"\u0627\u0644\u0639\u0631\u0628\u064a\u0629"},hy:{name:"Armenian",nativeName:"\u0540\u0561\u0575\u0565\u0580\u0565\u0576"},az:{name:"Azerbaijani",nativeName:"az\u0259rbaycan dili"},eu:{name:"Basque",nativeName:"euskara"},be:{name:"Belarusian",nativeName:"\u0411\u0435\u043b\u0430\u0440\u0443\u0441\u043a\u0430\u044f"},
-bn:{name:"Bengali",nativeName:"\u09ac\u09be\u0982\u09b2\u09be"},bs:{name:"Bosnian",nativeName:"bosanski jezik"},bg:{name:"Bulgarian",nativeName:"\u0431\u044a\u043b\u0433\u0430\u0440\u0441\u043a\u0438 \u0435\u0437\u0438\u043a"},ca:{name:"Catalan",nativeName:"Catal\u00e0"},ceb:{name:"Cebuano",nativeName:"Bisaya"},ny:{name:"Chichewa",nativeName:"chiChe\u0175a"},zh:{name:"Chinese",nativeName:"\u4e2d\u6587 (Zh\u014dngw\u00e9n)"},co:{name:"Corsican",nativeName:"corsu"},hr:{name:"Croatian",nativeName:"hrvatski"},
-cs:{name:"Czech",nativeName:"\u010desky"},da:{name:"Danish",nativeName:"dansk"},nl:{name:"Dutch",nativeName:"Nederlands"},en:{name:"English",nativeName:"English"},eo:{name:"Esperanto",nativeName:"Esperanto"},et:{name:"Estonian",nativeName:"eesti"},tl:{name:"Filipino",nativeName:"Pilipino"},fi:{name:"Finnish",nativeName:"suomi"},fr:{name:"French",nativeName:"fran\u00e7ais"},fy:{name:"Frisian",nativeName:"Frysk"},gl:{name:"Galician",nativeName:"Galego"},ka:{name:"Georgian",nativeName:"\u10e5\u10d0\u10e0\u10d7\u10e3\u10da\u10d8"},
-de:{name:"German",nativeName:"Deutsch"},el:{name:"Greek",nativeName:"\u0395\u03bb\u03bb\u03b7\u03bd\u03b9\u03ba\u03ac"},gu:{name:"Gujarati",nativeName:"\u0a97\u0ac1\u0a9c\u0ab0\u0abe\u0aa4\u0ac0"},ht:{name:"Haitian Creole",nativeName:"Krey\u00f2l ayisyen"},ha:{name:"Hausa",nativeName:"Hausa"},haw:{name:"Hawaiian",nativeName:"Hausa"},iw:{name:"Hebrew",nativeName:"\u05e2\u05d1\u05e8\u05d9\u05ea"},hi:{name:"Hindi",nativeName:"\u0939\u093f\u0928\u094d\u0926\u0940, \u0939\u093f\u0902\u0926\u0940"},hmn:{name:"Hmong",
-nativeName:"lus Hmoob"},hu:{name:"Hungarian",nativeName:"Magyar"},is:{name:"Icelandic",nativeName:"\u00cdslenska"},ig:{name:"Igbo",nativeName:"As\u1ee5s\u1ee5 Igbo"},id:{name:"Indonesian",nativeName:"Bahasa Indonesia"},ga:{name:"Irish",nativeName:"Gaeilge"},it:{name:"Italian",nativeName:"Italiano"},ja:{name:"Japanese",nativeName:"\u65e5\u672c\u8a9e (\u306b\u307b\u3093\u3054\uff0f\u306b\u3063\u307d\u3093\u3054)"},jv:{name:"Javanese",nativeName:"basa Jawa"},kn:{name:"Kannada",nativeName:"\u0c95\u0ca8\u0ccd\u0ca8\u0ca1"},
-kk:{name:"Kazakh",nativeName:"\u049a\u0430\u0437\u0430\u049b \u0442\u0456\u043b\u0456"},km:{name:"Khmer",nativeName:"\u1797\u17b6\u179f\u17b6\u1781\u17d2\u1798\u17c2\u179a"},ko:{name:"Korean",nativeName:"\ud55c\uad6d\uc5b4 (\u97d3\u570b\u8a9e)"},ku:{name:"Kurdish (Kurmanji)",nativeName:"Kurd\u00ee"},ky:{name:"Kyrgyz",nativeName:"\u043a\u044b\u0440\u0433\u044b\u0437 \u0442\u0438\u043b\u0438"},lo:{name:"Lao",nativeName:"\u0e9e\u0eb2\u0eaa\u0eb2\u0ea5\u0eb2\u0ea7"},la:{name:"Latin",nativeName:"latine"},
-lv:{name:"Latvian",nativeName:"latvie\u0161u valoda"},lt:{name:"Lithuanian",nativeName:"lietuvi\u0173 kalba"},lb:{name:"Luxembourgish",nativeName:"L\u00ebtzebuergesch"},mk:{name:"Macedonian",nativeName:"\u043c\u0430\u043a\u0435\u0434\u043e\u043d\u0441\u043a\u0438 \u0458\u0430\u0437\u0438\u043a"},mg:{name:"Malagasy",nativeName:"Malagasy fiteny"},ms:{name:"Malay",nativeName:"bahasa Melayu"},ml:{name:"Malayalam",nativeName:"\u0d2e\u0d32\u0d2f\u0d3e\u0d33\u0d02"},mt:{name:"Maltese",nativeName:"Malti"},
-mi:{name:"M\u0101ori",nativeName:"te reo M\u0101ori"},mr:{name:"Marathi",nativeName:"\u092e\u0930\u093e\u0920\u0940"},mn:{name:"Mongolian",nativeName:"\u043c\u043e\u043d\u0433\u043e\u043b"},my:{name:"Myanmar",nativeName:"\u1017\u1019\u102c\u1005\u102c"},ne:{name:"Nepali",nativeName:"\u0928\u0947\u092a\u093e\u0932\u0940"},no:{name:"Norwegian",nativeName:"Norsk"},ps:{name:"Pashto",nativeName:"\u067e\u069a\u062a\u0648"},fa:{name:"Persian",nativeName:"\u0641\u0627\u0631\u0633\u06cc"},pl:{name:"Polish",
-nativeName:"polski"},pt:{name:"Portuguese",nativeName:"Portugu\u00eas"},pa:{name:"Punjabi",nativeName:"\u0a2a\u0a70\u0a1c\u0a3e\u0a2c"},ro:{name:"Romanian",nativeName:"rom\u00e2n\u0103"},ru:{name:"Russian",nativeName:"\u0440\u0443\u0441\u0441\u043a\u0438\u0439 \u044f\u0437\u044b\u043a"},sm:{name:"Samoan",nativeName:"gagana faa Samoa"},gd:{name:"Scots Gaelic",nativeName:"G\u00e0idhlig"},sr:{name:"Serbian",nativeName:"\u0441\u0440\u043f\u0441\u043a\u0438 \u0458\u0435\u0437\u0438\u043a"},st:{name:"Sesotho",
-nativeName:"Sesotho"},sn:{name:"Shona",nativeName:"chiShona"},sd:{name:"Sindhi",nativeName:"\u0938\u093f\u0928\u094d\u0927\u0940"},si:{name:"Sinhala",nativeName:"\u0dc3\u0dd2\u0d82\u0dc4\u0dbd"},sk:{name:"Slovak",nativeName:"sloven\u010dina"},sl:{name:"Slovenian",nativeName:"sloven\u0161\u010dina"},so:{name:"Somali",nativeName:"Soomaaliga"},es:{name:"Spanish",nativeName:"espa\u00f1ol"},su:{name:"Sundanese",nativeName:"Basa Sunda"},sw:{name:"Swahili",nativeName:"Kiswahili"},sv:{name:"Swedish",nativeName:"svenska"},
-tg:{name:"Tajik",nativeName:"\u0442\u043e\u04b7\u0438\u043a\u04e3"},ta:{name:"Tamil",nativeName:"\u0ba4\u0bae\u0bbf\u0bb4\u0bcd"},te:{name:"Telugu",nativeName:"\u0c24\u0c46\u0c32\u0c41\u0c17\u0c41"},th:{name:"Thai",nativeName:"\u0e44\u0e17\u0e22"},tr:{name:"Turkish",nativeName:"T\u00fcrk\u00e7e"},uk:{name:"Ukrainian",nativeName:"\u0443\u043a\u0440\u0430\u0457\u043d\u0441\u044c\u043a\u0430"},ur:{name:"Urdu",nativeName:"\u0627\u0631\u062f\u0648"},uz:{name:"Uzbek",nativeName:"zbek"},vi:{name:"Vietnamese",
-nativeName:"Ti\u1ebfng Vi\u1ec7t"},cy:{name:"Welsh",nativeName:"Cymraeg"},xh:{name:"Xhosa",nativeName:"isiXhosa"},yi:{name:"Yiddish",nativeName:"\u05d9\u05d9\u05b4\u05d3\u05d9\u05e9"},yo:{name:"Yoruba",nativeName:"Yor\u00f9b\u00e1"},za:{name:"Zhuang, Chuang",nativeName:"Sa\u026f cue\u014b\u0185"},zu:{name:"Zulu",nativeName:"isiZulu"}};
-
 function $(selector) {
     return document.querySelector(selector);
 }
@@ -24,154 +11,187 @@
 }
 
 function i18n() {
-    $("#welcome").innerHTML = chrome.i18n.getMessage("options_welcome");
-    $("#introduction").innerHTML = chrome.i18n.getMessage("options_introduction");
-    //$("#languageselectheader").innerHTML = chrome.i18n.getMessage("options_languageselectheader");
-    $("#otheroptionsheader").innerHTML = chrome.i18n.getMessage("options_otheroptionsheader");
-    $("#varioustabs_label").innerHTML = chrome.i18n.getMessage("options_tabsoption_1");
-    $("#uniquetab_label").innerHTML = chrome.i18n.getMessage("options_tabsoption_2");
-    $("#panel_label").innerHTML = chrome.i18n.getMessage("options_tabsoption_3");
-    $("#languages_add").innerHTML = chrome.i18n.getMessage("options_addlanguage_addbutton");
-    $("#save").innerHTML = chrome.i18n.getMessage("options_savebutton");
-    $("#credits").innerHTML = chrome.i18n.getMessage("options_credits");
-    $("#credits_dialog h3").innerHTML = chrome.i18n.getMessage("options_credits");
-    $("#languages_add_ok").innerHTML = chrome.i18n.getMessage("options_ok");
-    $("#languages_add_cancel").innerHTML = chrome.i18n.getMessage("options_cancel");
-    $("#credits_ok").innerHTML = chrome.i18n.getMessage("options_ok");
-    $("#languages_add_dialog h3").innerHTML = chrome.i18n.getMessage("options_addlanguage");
-    $("#language_label").innerHTML = chrome.i18n.getMessage("options_language_label");
+    $all('[data-i18n]').forEach(el => {
+        el.innerHTML =
+            chrome.i18n.getMessage('options_' + el.getAttribute('data-i18n'));
+    });
 }
 
-function print_list_modal() {
-    $("#select_language").innerHTML = "";
+function printListModal() {
+    $('#select_language').textContent = '';
     var heysortable = sortable.toArray();
     for (var language in isoLangs) {
         if (!inArray(language, heysortable)) {
             var el = document.createElement('option');
             el.setAttribute('value', language);
-            el.innerText = isoLangs[language]["name"]+" ("+isoLangs[language]["nativeName"]+")";
-            $("#select_language").appendChild(el);
+            el.innerText = isoLangs[language]['name'] + ' (' +
+                isoLangs[language]['nativeName'] + ')';
+            $('#select_language').appendChild(el);
         }
     }
 }
 
 function init() {
     i18n();
-    chrome.storage.sync.get(null, function(items) {
+    chrome.storage.sync.get(null, items => {
         // If no settings are set
         if (isEmpty(items)) {
-            items = {'translateinto': {}, 'uniquetab': ''};
-            chrome.storage.sync.set({'translateinto': {}, 'uniquetab': ''});
+            items = {
+                translateinto: {},
+                uniquetab: '',
+            };
+            chrome.storage.sync.set(items);
         }
 
         // Check the checkbox of the window opening
-        if (items.uniquetab === "yep")
-            $("#uniquetab").checked = true;
-        if (items.uniquetab === "")
-            $("#varioustabs").checked = true;
-        if (items.uniquetab === "panel")
-            $("#panel").checked = true;
+        if (items.uniquetab === 'yep') $('#uniquetab').checked = true;
+        if (items.uniquetab === '') $('#varioustabs').checked = true;
+        if (items.uniquetab === 'panel') $('#panel').checked = true;
 
         // Add event listeners for certain buttons and links
-        $("#panelsflag").addEventListener('click', function() { event.preventDefault(); chrome.tabs.create({url: 'chrome://flags/#enable-panels'}); });
-        $("#save").addEventListener('click', function() {
-            save_options();
+        $('#panelsflag').addEventListener('click', _ => {
+            event.preventDefault();
+            chrome.tabs.create({url: 'chrome://flags/#enable-panels'});
+        });
+
+        $('#save').addEventListener('click', _ => {
+            saveOptions();
         });
 
         // Print selected language list
         var languages = items.translateinto;
 
         if (languages) {
-            for (var language_id in languages) {
+            for (var language_id of Object.keys(languages)) {
                 var language = languages[language_id];
                 var el = document.createElement('li');
                 el.setAttribute('data-language', language);
                 el.setAttribute('data-id', language);
-                el.innerHTML = isoLangs[language]["name"]+" ("+isoLangs[language]["nativeName"]+")"+"<span data-language='"+language+"' class='delete'>x</span>";
-                $("#languages").appendChild(el);
-                $("#languages li[data-language="+language+"] .delete").addEventListener('click', function() {
-                    $("#languages").removeChild($("li[data-language="+this.getAttribute("data-language")+"]"));
-                    print_list_modal();
-                });
+                el.innerHTML = isoLangs[language]['name'] + ' (' +
+                    isoLangs[language]['nativeName'] + ')' +
+                    '<span data-language=\'' + language +
+                    '\' class=\'delete\'>x</span>';
+                $('#languages').appendChild(el);
+                $('#languages li[data-language=' + language + '] .delete')
+                    .addEventListener('click', function() {
+                        $('#languages')
+                            .removeChild(
+                                $('li[data-language=' +
+                                  this.getAttribute('data-language') + ']'));
+                        printListModal();
+                    });
             }
         }
 
         // Initiate Sortable
-        sortable = new Sortable($("#languages"), {
-            animation: 150
-        });
+        sortable = new Sortable($('#languages'), {animation: 150});
 
         // Handling The Dialog
-        $("#languages_add").addEventListener('click', function() { $("dialog#languages_add_dialog").showModal(); $("#select_language").focus(); });
-        $("#languages_add_cancel").addEventListener('click', function() { $("dialog#languages_add_dialog").close(); });
-        $("#languages_add_ok").addEventListener('click', function() {
+        $('#languages_add').addEventListener('click', _ => {
+            $('dialog#languages_add_dialog').showModal();
+            $('#select_language').focus();
+        });
+
+        $('#languages_add_cancel').addEventListener('click', _ => {
+            $('dialog#languages_add_dialog').close();
+        });
+
+        $('#languages_add_ok').addEventListener('click', _ => {
             var el = document.createElement('li');
-            var language = $("#select_language").value;
+            var language = $('#select_language').value;
             if (inArray(language, sortable.toArray())) {
                 return;
             }
             el.setAttribute('data-language', language);
             el.setAttribute('data-id', language);
-            el.innerHTML = isoLangs[language]["name"]+" ("+isoLangs[language]["nativeName"]+")"+"<span data-language='"+language+"' class='delete'>x</span>";
-            $("#languages").appendChild(el);
-            var selection = $("#select_language option[value="+language+"]");
+            el.innerHTML = isoLangs[language]['name'] + ' (' +
+                isoLangs[language]['nativeName'] + ')' +
+                '<span data-language=\'' + language +
+                '\' class=\'delete\'>x</span>';
+            $('#languages').appendChild(el);
+            var selection =
+                $('#select_language option[value=' + language + ']');
             selection.parentNode.removeChild(selection);
-            $("#languages li[data-id="+language+"] .delete").addEventListener('click', function() {
-                $("#languages").removeChild($("li[data-language="+this.getAttribute("data-language")+"]"));
-                print_list_modal();
-            });
-            $("dialog").close();
+            $('#languages li[data-id=' + language + '] .delete')
+                .addEventListener('click', function() {
+                    $('#languages')
+                        .removeChild(
+                            $('li[data-language=' +
+                              this.getAttribute('data-language') + ']'));
+                    printListModal();
+                });
+            $('dialog').close();
         });
 
         // About credits...
-        var xhr = new XMLHttpRequest();
-        xhr.onreadystatechange = function() {
-            if (xhr.readyState == 4 && xhr.status == 200) {
-                var json = JSON.parse(xhr.responseText), printhtml = "";
-                for (var item in json) {
-                    printhtml += "<div>";
-                    if (json[item].url) {
-                        printhtml += "<a href='"+json[item].url+"' class='homepage' target='_blank'>"+chrome.i18n.getMessage("options_credits_homepage")+"</a>";
+        fetch('json/credits.json')
+            .then(res => res.json())
+            .then(json => {
+                var content = $('dialog#credits_dialog .content_area');
+                json.forEach(item => {
+                    var div = document.createElement('div');
+                    if (item.url) {
+                        var a = document.createElement('a');
+                        a.classList.add('homepage');
+                        a.href = item.url;
+                        a.target = '_blank';
+                        a.textContent =
+                            chrome.i18n.getMessage('options_credits_homepage');
+                        div.append(a);
                     }
-                    printhtml += "<h4>"+json[item].name+"</h4>";
-                    if (json[item].author) {
-                        printhtml += "<p class='author'>"+chrome.i18n.getMessage("options_credits_by")+" "+json[item].author;
-                    }
-                    if (json[item].license) {
-                        printhtml += " – "+json[item].license+"</p>";
-                    } else {
-                        printhtml += "</p>";
-                    }
-                    printhtml += "</div>";
-                }
-                $("dialog#credits_dialog .content_area").innerHTML = printhtml;
-                window.onhashchange = function() {
-                    if (location.hash == "#credits") {
-                        $("dialog#credits_dialog").showModal();
-                        $("#credits_ok").focus();
-                    }
-                }
-                if (location.hash == "#credits") {
-                    $("dialog#credits_dialog").showModal();
-                    $("#credits_ok").focus();
-                }
-                $("#credits_ok").addEventListener('click', function() { $("dialog#credits_dialog").close(); });
-                $("dialog#credits_dialog").addEventListener('close', function() { history.pushState("", document.title, window.location.pathname + window.location.search); });
-            }
-        }
-        xhr.open("GET", "json/credits.json", true);
-        xhr.send();
 
-        // Print language list in the modal dialog
-        print_list_modal();
+                    var h4 = document.createElement('h4');
+                    h4.textContent = item.name;
+                    div.append(h4);
+
+                    if (item.author) {
+                        var p = document.createElement('p');
+                        p.classList.add('author');
+                        p.textContent =
+                            chrome.i18n.getMessage('options_credits_by') + ' ' +
+                            item.author +
+                            (item.license ? ' - ' + item.license : '');
+                        div.append(p);
+                    }
+                    content.append(div);
+                });
+
+                window.onhashchange = function() {
+                    if (location.hash == '#credits') {
+                        $('dialog#credits_dialog').showModal();
+                        $('#credits_ok').focus();
+                    }
+                };
+
+                if (location.hash == '#credits') {
+                    $('dialog#credits_dialog').showModal();
+                    $('#credits_ok').focus();
+                }
+
+                $('#credits_ok').addEventListener('click', _ => {
+                    $('dialog#credits_dialog').close();
+                });
+                $('dialog#credits_dialog').addEventListener('close', _ => {
+                    history.pushState(
+                        '', document.title,
+                        window.location.pathname + window.location.search);
+                });
+
+                // Print language list in the modal dialog
+                printListModal();
+            })
+            .catch(err => console.log(err));
     });
 }
 
-function save_options() {
-    var languages = document.getElementById("languages");
-    var options = {"uniquetab": "", "translateinto": {}};
+function saveOptions() {
+    var languages = document.getElementById('languages');
+    var options = {
+        uniquetab: '',
+        translateinto: {},
+    };
 
-    options.uniquetab = radio_selected("uniquetab");
+    options.uniquetab = radioSelected('uniquetab');
 
     var selected_languages = sortable.toArray();
 
@@ -189,29 +209,19 @@
         background.translator_window = false;
         window.close();
     });
-
-    // We don't need the following code because the background.js is already listening to changes in chrome.sync ;-) Yeeey!
-    //chrome.extension.getBackgroundPage().createmenus(JSON.stringify(options));
 }
 
-function toObject(arr) {
-    var rv = {};
-    for (var i = 0; i < arr.length; ++i)
-        if (arr[i] !== undefined) rv[i] = arr[i];
-    return rv;
-}
-
-function radio_selected(a) {
+function radioSelected(a) {
     var elements = document.getElementsByName(a);
 
-    for (var i=0; i<elements.length; i++)
+    for (var i = 0; i < elements.length; i++)
         if (elements[i].checked) return elements[i].value;
 }
 
 function inArray(needle, haystack) {
     var length = haystack.length;
-    for(var i = 0; i < length; i++) {
-        if(haystack[i] == needle) return true;
+    for (var i = 0; i < length; i++) {
+        if (haystack[i] == needle) return true;
     }
     return false;
 }
diff --git a/src/json/credits.json b/src/json/credits.json
index c0c34e4..e2e9882 100644
--- a/src/json/credits.json
+++ b/src/json/credits.json
@@ -1,30 +1,30 @@
-{
-	"icon": {
+[
+	{
 		"name": "Metro Uinvert Dock Icon Set",
 		"url": "http://dakirby309.deviantart.com/art/Metro-Uinvert-Dock-Icon-Set-725-Icons-294529071",
 		"author": "dAKirby309"
 	},
-	"translation": {
+	{
 		"name": "Russian Translation",
 		"url": "https://code.google.com/r/sashasimkin-translateselectedtext/source/detail?r=fc4e58ee0d69929d610a84a7600338e99b9d3d83",
 		"author": "Alexander Simkin"
 	},
-	"sortable": {
+	{
 		"name": "Sortable",
 		"url": "https://github.com/RubaXa/Sortable",
 		"author": "Lebedev Konstantin",
 		"license": "MIT License"
 	},
-	"widgets": {
+	{
 		"name": "Chromium",
 		"url": "https://code.google.com/p/chromium/",
 		"author": "The Chromium Authors",
 		"license": "BSD-like License"
 	},
-	"languages": {
+	{
 		"name": "What-2-Nite",
 		"url": "https://github.com/enricolucia/what-2-nite/blob/master/isoLangs.json",
 		"author": "Google, Inc.",
 		"license": "MIT License"
 	}
-}
+]
diff --git a/src/options.html b/src/options.html
index 8cb7196..104cacd 100644
--- a/src/options.html
+++ b/src/options.html
@@ -4,55 +4,56 @@
 		<meta charset="UTF-8">
 		<title>Options</title>
 		<link rel="stylesheet" type="text/css" href="css/options.css">
-		<script src="js/options.js"></script>
-		<script src="js/sortable.js"></script>
 		<link href='http://fonts.googleapis.com/css?family=Roboto:400,700,700italic,400italic' rel='stylesheet' type='text/css'>
-
 	</head>
 	<body>
 		<div id="credits_container">
-			<a href="#credits" id="credits"></a>
+			<a href="#credits" id="credits" data-i18n="credits"></a>
 		</div>
 
-		<h1 id="welcome"></h1>
+		<h1 id="welcome" data-i18n="welcome"></h1>
 
-		<p id="introduction"></p>
+		<p id="introduction" data-i18n="introduction"></p>
 
 		<div id="languages_container">
 			<ul id="languages"></ul>
 		</div>
 		<div id="languages_footer">
-			<button id="languages_add"></button>
+			<button id="languages_add" data-i18n="addlanguage_addbutton"></button>
 		</div>
 
-		<h2 id="otheroptionsheader"></h2>
+		<h2 id="otheroptionsheader" data-i18n="otheroptionsheader"></h2>
 
 		<div id="otheroptions">
-			<p><input type="radio" name="uniquetab" id="varioustabs" value=""> <label id="varioustabs_label" for="varioustabs"></label></p>
-			<p><input type="radio" name="uniquetab" id="uniquetab" value="yep"> <label id="uniquetab_label" for="uniquetab"></label></p>
-			<p><input type="radio" name="uniquetab" id="panel" value="panel"> <label id="panel_label" for="panel"></label></p>
+			<p><input type="radio" name="uniquetab" id="varioustabs" value=""> <label id="varioustabs_label" for="varioustabs" data-i18n="tabsoption_1"></label></p>
+			<p><input type="radio" name="uniquetab" id="uniquetab" value="yep"> <label id="uniquetab_label" for="uniquetab" data-i18n="tabsoption_2"></label></p>
+			<p><input type="radio" name="uniquetab" id="panel" value="panel"> <label id="panel_label" for="panel" data-i18n="tabsoption_3"></label></p>
 		</div>
 
-		<button id="save"></button>
+		<button id="save" data-i18n="savebutton"></button>
 
 		<dialog id="languages_add_dialog">
-		  <h3></h3>
+		  <h3 data-i18n="addlanguage"></h3>
 		  <div class="content_area">
-		    <label id="language_label" for="select_language"></label>
+		    <label id="language_label" for="select_language" data-i18n="language_label"></label>
 		    <select id="select_language"></select>
 		  </div>
 		  <div class="action_buttons">
-		    <button id="languages_add_cancel"></button>
-		    <button id="languages_add_ok"></button>
+		    <button id="languages_add_cancel" data-i18n="cancel"></button>
+		    <button id="languages_add_ok" data-i18n="ok"></button>
 		  </div>
 		</dialog>
 		<dialog id="credits_dialog">
-		  <h3></h3>
+		  <h3 data-i18n="credits"></h3>
 		  <div class="content_area">
 		  </div>
 		  <div class="action_buttons">
-		    <button id="credits_ok"></button>
+		    <button id="credits_ok" data-i18n="ok"></button>
 		  </div>
 		</dialog>
+
+    <script src="js/common.js"></script>
+    <script src="js/options.js"></script>
+		<script src="js/sortable.js"></script>
 	</body>
 </html>
diff --git a/templates/manifest.gjson b/templates/manifest.gjson
index 5889bf3..84ba035 100644
--- a/templates/manifest.gjson
+++ b/templates/manifest.gjson
@@ -17,7 +17,10 @@
     "256": "icons/translate-256.png"
   },
   "background": {
-    "scripts": ["background.js"],
+    "scripts": [
+      "js/common.js",
+      "background.js"
+    ],
     "persistent": false
   },
   "options_page": "options.html",
@@ -25,5 +28,6 @@
     "page": "options.html",
     "chrome_style": true
   },
+  "browser_action": {},
   "default_locale": "en"
 }
