about summary refs log tree commit diff stats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/_locales/ar/messages.json12
-rw-r--r--src/_locales/de/messages.json12
-rw-r--r--src/_locales/en/messages.json12
-rw-r--r--src/assets/images/pixiv-icon.svg56
-rw-r--r--src/assets/javascripts/helpers/general.js1
-rw-r--r--src/assets/javascripts/helpers/lbry.js139
-rw-r--r--src/assets/javascripts/helpers/maps.js63
-rw-r--r--src/assets/javascripts/helpers/maps.js.backup274
-rw-r--r--src/assets/javascripts/helpers/medium.js139
-rw-r--r--src/assets/javascripts/helpers/peertube.js135
-rw-r--r--src/assets/javascripts/helpers/pixiv.js181
-rw-r--r--src/assets/javascripts/helpers/reddit.js6
-rw-r--r--src/assets/javascripts/helpers/search.js520
-rw-r--r--src/assets/javascripts/helpers/sendTargets.js141
-rw-r--r--src/assets/javascripts/helpers/speedtest.js134
-rw-r--r--src/assets/javascripts/helpers/spotify.js144
-rw-r--r--src/assets/javascripts/helpers/tiktok.js121
-rw-r--r--src/assets/javascripts/helpers/translate/translate.js295
-rw-r--r--src/assets/javascripts/helpers/twitter.js369
-rw-r--r--src/assets/javascripts/helpers/wikipedia.js198
-rw-r--r--src/assets/javascripts/helpers/youtube/youtube.js10
-rw-r--r--src/assets/javascripts/helpers/youtubeMusic.js94
-rw-r--r--src/pages/background/background.js65
-rw-r--r--src/pages/background/incognito.js2
-rw-r--r--src/pages/options/general/general.html5
-rw-r--r--src/pages/options/imgur/imgur.html1
-rw-r--r--src/pages/options/imgur/imgur.js2
-rw-r--r--src/pages/options/instagram/instagram.html1
-rw-r--r--src/pages/options/lbry/lbry.html1
-rw-r--r--src/pages/options/lbry/lbry.js68
-rw-r--r--src/pages/options/maps/maps.html1
-rw-r--r--src/pages/options/maps/maps.js24
-rw-r--r--src/pages/options/medium/medium.html1
-rw-r--r--src/pages/options/medium/medium.js79
-rw-r--r--src/pages/options/peertube/peertube.html1
-rw-r--r--src/pages/options/peertube/peertube.js64
-rw-r--r--src/pages/options/pixiv/pixiv.html135
-rw-r--r--src/pages/options/pixiv/pixiv.js93
-rw-r--r--src/pages/options/reddit/reddit.html2
-rw-r--r--src/pages/options/reddit/reddit.js110
-rw-r--r--src/pages/options/search/search.html1
-rw-r--r--src/pages/options/search/search.js258
-rw-r--r--src/pages/options/sendTargets/sendTargets.html1
-rw-r--r--src/pages/options/sendTargets/sendTargets.js76
-rw-r--r--src/pages/options/speedtest/speedtest.html1
-rw-r--r--src/pages/options/speedtest/speedtest.js76
-rw-r--r--src/pages/options/spotify/spotify.html29
-rw-r--r--src/pages/options/spotify/spotify.js75
-rw-r--r--src/pages/options/tiktok/tiktok.html1
-rw-r--r--src/pages/options/tiktok/tiktok.js112
-rw-r--r--src/pages/options/translate/translate.html1
-rw-r--r--src/pages/options/twitter/twitter.html1
-rw-r--r--src/pages/options/twitter/twitter.js116
-rw-r--r--src/pages/options/wikipedia/wikipedia.html1
-rw-r--r--src/pages/options/wikipedia/wikipedia.js89
-rw-r--r--src/pages/options/youtube/youtube.html3
-rw-r--r--src/pages/options/youtubeMusic/youtubeMusic.html1
-rw-r--r--src/pages/options/youtubeMusic/youtubeMusic.js44
-rw-r--r--src/pages/popup/popup.html9
-rw-r--r--src/pages/popup/popup.js5
60 files changed, 1160 insertions, 3451 deletions
diff --git a/src/_locales/ar/messages.json b/src/_locales/ar/messages.json
index 50e627c5..87693012 100644
--- a/src/_locales/ar/messages.json
+++ b/src/_locales/ar/messages.json
@@ -89,11 +89,6 @@
       "description": "used in general.html"
     },
 
-    "pixiv": {
-      "message": "بكسيف",
-      "description": "used in general.html"
-    },
-
     "wikipedia": {
       "message": "ويكيبيديا",
       "description": "used in general.html"
@@ -119,11 +114,6 @@
       "description": "used in imgur.html"
     },
 
-    "pixivMoe": {
-      "message": "pixiv萌え",
-      "description": "used in pixiv.html"
-    },
-
     "theme": {
       "message": "السمة",
       "description": "used in general.html"
@@ -226,7 +216,7 @@
 
     "notFullyPrivate": {
       "message": "هذه الواجهة لا تحترم الخصوصية تماماً",
-      "description": "used in pixiv.html"
+      "description": ""
     },
 
     "oldReddit": {
diff --git a/src/_locales/de/messages.json b/src/_locales/de/messages.json
index 03248032..3b5ab016 100644
--- a/src/_locales/de/messages.json
+++ b/src/_locales/de/messages.json
@@ -89,11 +89,6 @@
     "description": "used in general.html"
   },
 
-  "pixiv": {
-    "message": "Pixiv",
-    "description": "used in general.html"
-  },
-
   "wikipedia": {
     "message": "Wikipedia",
     "description": "used in general.html"
@@ -119,11 +114,6 @@
     "description": "used in imgur.html"
   },
 
-  "pixivMoe": {
-    "message": "pixiv萌え",
-    "description": "used in pixiv.html"
-  },
-
   "theme": {
     "message": "Thema",
     "description": "used in general.html"
@@ -226,7 +216,7 @@
 
   "notFullyPrivate": {
     "message": "Das ist kein völlig privates Frontend.",
-    "description": "used in pixiv.html"
+    "description": ""
   },
 
   "oldReddit": {
diff --git a/src/_locales/en/messages.json b/src/_locales/en/messages.json
index bd693d3c..e347c663 100644
--- a/src/_locales/en/messages.json
+++ b/src/_locales/en/messages.json
@@ -89,11 +89,6 @@
     "description": "used in general.html"
   },
 
-  "pixiv": {
-    "message": "Pixiv",
-    "description": "used in general.html"
-  },
-
   "wikipedia": {
     "message": "Wikipedia",
     "description": "used in general.html"
@@ -119,11 +114,6 @@
     "description": "used in imgur.html"
   },
 
-  "pixivMoe": {
-    "message": "pixiv萌え",
-    "description": "used in pixiv.html"
-  },
-
   "theme": {
     "message": "Theme",
     "description": "used in general.html"
@@ -226,7 +216,7 @@
 
   "notFullyPrivate": {
     "message": "This isn't a fully private frontend.",
-    "description": "used in pixiv.html"
+    "description": ""
   },
 
   "oldReddit": {
diff --git a/src/assets/images/pixiv-icon.svg b/src/assets/images/pixiv-icon.svg
deleted file mode 100644
index 2e3cb564..00000000
--- a/src/assets/images/pixiv-icon.svg
+++ /dev/null
@@ -1,56 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   width="67.73333mm"
-   height="67.73333mm"
-   viewBox="0 0 67.733331 67.733331"
-   version="1.1"
-   id="svg5"
-   inkscape:version="1.1.1 (3bf5ae0d25, 2021-09-20)"
-   sodipodi:docname="pixiv-icon.svg"
-   inkscape:export-filename="/mnt/main_storage/Git/libredirect/src/assets/images/pixiv-icon.png"
-   inkscape:export-xdpi="48"
-   inkscape:export-ydpi="48"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:svg="http://www.w3.org/2000/svg">
-  <sodipodi:namedview
-     id="namedview7"
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1.0"
-     inkscape:pageshadow="2"
-     inkscape:pageopacity="0.0"
-     inkscape:pagecheckerboard="0"
-     inkscape:document-units="mm"
-     showgrid="false"
-     inkscape:zoom="1.622695"
-     inkscape:cx="53.614512"
-     inkscape:cy="136.50132"
-     inkscape:window-width="1888"
-     inkscape:window-height="1060"
-     inkscape:window-x="32"
-     inkscape:window-y="0"
-     inkscape:window-maximized="1"
-     inkscape:current-layer="layer1" />
-  <defs
-     id="defs2" />
-  <g
-     inkscape:label="Layer 1"
-     inkscape:groupmode="layer"
-     id="layer1"
-     transform="translate(-103.98557,-52.402599)">
-    <circle
-       style="fill:#0096fa;fill-opacity:1;stroke-width:2.64583"
-       id="path1234"
-       cx="137.85223"
-       cy="86.269264"
-       r="33.866665" />
-    <path
-       style="fill:#ffffff;stroke-width:0.313386"
-       d="m 122.7229,105.30379 c -0.24873,-0.40245 0.7237,-1.54717 1.31432,-1.54717 0.347,0 0.42151,-2.55398 0.42151,-14.446665 V 74.863294 l -1.03225,0.892679 c -2.10117,1.817053 -3.35517,3.636697 -3.35517,4.868584 0,2.298073 -1.08814,1.726257 -2.82048,-1.482147 l -0.78346,-1.451038 1.56693,-1.400312 c 10.52844,-9.408887 24.10553,-12.052505 33.56986,-6.536439 2.25569,1.314672 4.93919,4.203746 6.03254,6.494663 1.20804,2.531212 1.59075,4.221702 1.60031,7.068726 0.0327,9.739076 -9.81435,16.74731 -21.67016,15.422863 -2.55639,-0.285577 -6.17239,-1.083524 -7.85889,-1.734229 -0.5011,-0.193334 -0.54843,0.07462 -0.54843,3.104446 v 3.31605 l 0.94017,0.48616 c 0.56299,0.29114 0.94015,0.7344 0.94015,1.10491 0,0.58416 -0.2265,0.61873 -4.05553,0.61873 -2.5259,0 -4.13318,-0.12566 -4.26142,-0.33315 z m 19.92492,-9.384243 c 3.71424,-0.704393 6.88163,-2.766994 8.79493,-5.727265 3.22224,-4.985408 2.57484,-12.126756 -1.49817,-16.526092 -4.49505,-4.855189 -12.08781,-5.637541 -19.30051,-1.988706 l -1.49264,0.755112 0.0825,10.88286 0.0824,10.88286 2.11342,0.706325 c 3.4895,1.166218 8.18184,1.590735 11.21817,1.014906 z"
-       id="path6646" />
-  </g>
-</svg>
diff --git a/src/assets/javascripts/helpers/general.js b/src/assets/javascripts/helpers/general.js
index 9fec500f..4a1681e9 100644
--- a/src/assets/javascripts/helpers/general.js
+++ b/src/assets/javascripts/helpers/general.js
@@ -111,7 +111,6 @@ let allPopupFrontends = [
     "tikTok",
     "imgur",
     "reddit",
-    "pixiv",
     "spotify",
     "search",
     "translate",
diff --git a/src/assets/javascripts/helpers/lbry.js b/src/assets/javascripts/helpers/lbry.js
index 21779fa9..8b0f78a7 100644
--- a/src/assets/javascripts/helpers/lbry.js
+++ b/src/assets/javascripts/helpers/lbry.js
@@ -22,13 +22,6 @@ let redirects = {
 }
 
 const getRedirects = () => redirects;
-const getCustomRedirects = function () {
-    return {
-        "librarian": {
-            "normal": [...librarianNormalRedirectsChecks, ...librarianNormalCustomRedirects]
-        },
-    };
-};
 
 function setRedirects(val) {
     redirects.librarian = val;
@@ -39,62 +32,23 @@ function setRedirects(val) {
             var index = librarianNormalRedirectsChecks.indexOf(item);
             if (index !== -1) librarianNormalRedirectsChecks.splice(index, 1);
         }
-    setLibrarianNormalRedirectsChecks(librarianNormalRedirectsChecks);
+    browser.storage.local.set(librarianNormalRedirectsChecks);
 
     for (const item of librarianTorRedirectsChecks)
         if (!redirects.librarian.normal.includes(item)) {
             var index = librarianTorRedirectsChecks.indexOf(item);
             if (index !== -1) librarianTorRedirectsChecks.splice(index, 1);
         }
-    setLibrarianTorRedirectsChecks(librarianTorRedirectsChecks);
+    browser.storage.local.set(librarianTorRedirectsChecks)
 }
 
 let librarianNormalRedirectsChecks;
-const getLibrarianNormalRedirectsChecks = () => librarianNormalRedirectsChecks;
-function setLibrarianNormalRedirectsChecks(val) {
-    librarianNormalRedirectsChecks = val;
-    browser.storage.local.set({ librarianNormalRedirectsChecks })
-    console.log("librarianNormalRedirectsChecks: ", val)
-}
-
 let librarianTorRedirectsChecks;
-const getLibrarianTorRedirectsChecks = () => librarianTorRedirectsChecks;
-function setLibrarianTorRedirectsChecks(val) {
-    librarianTorRedirectsChecks = val;
-    browser.storage.local.set({ librarianTorRedirectsChecks })
-    console.log("librarianTorRedirectsChecks: ", val)
-}
-
 let librarianNormalCustomRedirects = [];
-const getLibrarianNormalCustomRedirects = () => librarianNormalCustomRedirects;
-function setLibrarianNormalCustomRedirects(val) {
-    librarianNormalCustomRedirects = val;
-    browser.storage.local.set({ librarianNormalCustomRedirects })
-    console.log("librarianNormalCustomRedirects: ", val)
-}
-
 let librarianTorCustomRedirects = [];
-const getLibrarianTorCustomRedirects = () => librarianTorCustomRedirects;
-function setLibrarianTorCustomRedirects(val) {
-    librarianTorCustomRedirects = val;
-    browser.storage.local.set({ librarianTorCustomRedirects })
-    console.log("librarianTorCustomRedirects: ", val)
-}
 
-let disable;
-const getDisable = () => disable;
-function setDisable(val) {
-    disable = val;
-    browser.storage.local.set({ disableLbryTargets: disable })
-}
-
-let protocol;
-const getProtocol = () => protocol;
-function setProtocol(val) {
-    protocol = val;
-    browser.storage.local.set({ lbryTargetsProtocol: val })
-    console.log("lbryTargetsProtocol: ", val)
-}
+let disable; // disableLbryTargets
+let protocol; // lbryTargetsProtocol
 
 function switchInstance(url) {
     let protocolHost = commonHelper.protocolHost(url);
@@ -138,68 +92,69 @@ function redirect(url, type, initiator) {
     return `${randomInstance}${url.pathname}${url.search}`;
 }
 
+async function initDefaults() {
+    return new Promise(async resolve => {
+        await browser.storage.local.set({
+            disableLbryTargets: true,
+            lbryTargetsRedirects: {
+                'librarian': redirects.librarian
+            },
+
+            librarianNormalRedirectsChecks: [...redirects.librarian.normal],
+            librarianNormalCustomRedirects: [],
+
+            librarianTorRedirectsChecks: [...redirects.librarian.tor],
+            librarianTorCustomRedirects: [],
+
+            lbryTargetsProtocol: "normal",
+        })
+        resolve();
+    })
+}
+
+
 async function init() {
     return new Promise(resolve => {
-        fetch('/instances/data.json').then(response => response.text()).then(data => {
-            let dataJson = JSON.parse(data);
-            browser.storage.local.get(
-                [
-                    "disableLbryTargets",
-                    "lbryTargetsRedirects",
+        browser.storage.local.get(
+            [
+                "disableLbryTargets",
+                "lbryTargetsRedirects",
 
-                    "librarianNormalRedirectsChecks",
-                    "librarianNormalCustomRedirects",
+                "librarianNormalRedirectsChecks",
+                "librarianNormalCustomRedirects",
 
-                    "librarianTorRedirectsChecks",
-                    "librarianTorCustomRedirects",
+                "librarianTorRedirectsChecks",
+                "librarianTorCustomRedirects",
 
-                    "lbryTargetsProtocol"
-                ],
-                r => {
+                "lbryTargetsProtocol"
+            ],
+            r => {
 
-                    disable = r.disableLbryTargets ?? true;
+                disable = r.disableLbryTargets;
 
-                    protocol = r.lbryTargetsProtocol ?? "normal";
+                protocol = r.lbryTargetsProtocol;
 
-                    if (r.lbryTargetsRedirects) redirects = r.lbryTargetsRedirects;
+                redirects = r.lbryTargetsRedirects;
 
-                    librarianNormalRedirectsChecks = r.librarianNormalRedirectsChecks ?? [...redirects.librarian.normal];
-                    librarianNormalCustomRedirects = r.librarianNormalCustomRedirects ?? [];
+                librarianNormalRedirectsChecks = r.librarianNormalRedirectsChecks;
+                librarianNormalCustomRedirects = r.librarianNormalCustomRedirects;
 
-                    librarianTorRedirectsChecks = r.librarianTorRedirectsChecks ?? [...redirects.librarian.tor];
-                    librarianTorCustomRedirects = r.librarianTorCustomRedirects ?? [];
+                librarianTorRedirectsChecks = r.librarianTorRedirectsChecks;
+                librarianTorCustomRedirects = r.librarianTorCustomRedirects;
 
-                    resolve();
-                }
-            )
-        });
+                resolve();
+            }
+        )
     });
 }
 
 export default {
 
     getRedirects,
-    getCustomRedirects,
     setRedirects,
-
-    getDisable,
-    setDisable,
-
-    getProtocol,
-    setProtocol,
-
-    getLibrarianNormalRedirectsChecks,
-    setLibrarianNormalRedirectsChecks,
-    getLibrarianTorRedirectsChecks,
-    setLibrarianTorRedirectsChecks,
-
-    getLibrarianTorCustomRedirects,
-    setLibrarianTorCustomRedirects,
-    getLibrarianNormalCustomRedirects,
-    setLibrarianNormalCustomRedirects,
-
     switchInstance,
 
     redirect,
     init,
+    initDefaults,
 };
diff --git a/src/assets/javascripts/helpers/maps.js b/src/assets/javascripts/helpers/maps.js
index 525fb145..25dcf2c5 100644
--- a/src/assets/javascripts/helpers/maps.js
+++ b/src/assets/javascripts/helpers/maps.js
@@ -19,38 +19,11 @@ let redirects = {
 };
 const getRedirects = () => redirects;
 
-let disable;
-const getDisable = () => disable;
-function setDisable(val) {
-  disable = val;
-  browser.storage.local.set({ disableMaps: disable })
-  console.log("disableMaps: ", disable)
-}
-
-let frontend;
-const getFrontend = () => frontend;
-function setFrontend(val) {
-  frontend = val;
-  browser.storage.local.set({ mapsFrontend: frontend })
-  console.log("mapsFrontend: ", frontend)
-};
+let disable; // disableMaps
+let frontend; // mapsFrontend
 
 let facilNormalRedirectsChecks;
-const getFacilNormalRedirectsChecks = () => facilNormalRedirectsChecks;
-function setFacilNormalRedirectsChecks(val) {
-  facilNormalRedirectsChecks = val;
-  browser.storage.local.set({ facilNormalRedirectsChecks })
-  console.log("facilNormalRedirectsChecks: ", val)
-}
-
 let facilNormalCustomRedirects = [];
-const getFacilNormalCustomRedirects = () => facilNormalCustomRedirects;
-function setFacilNormalCustomRedirects(val) {
-  facilNormalCustomRedirects = val;
-  browser.storage.local.set({ facilNormalCustomRedirects })
-  console.log("facilNormalCustomRedirects: ", val)
-}
-
 
 function redirect(url, initiator) {
   const mapCentreRegex = /@(-?\d[0-9.]*),(-?\d[0-9.]*),(\d{1,2})[.z]/;
@@ -213,6 +186,18 @@ function redirect(url, initiator) {
   if (frontend == 'facil') return `${randomInstance}/${mapCentre}/Mpnk`
 }
 
+async function initDefaults() {
+  return new Promise(async resolve => {
+    await browser.storage.local.set({
+      disableMaps: false,
+      mapsFrontend: 'osm',
+
+      facilNormalRedirectsChecks: [...redirects.facil.normal],
+      facilNormalCustomRedirects: [],
+    })
+  })
+}
+
 async function init() {
   return new Promise(
     resolve => {
@@ -225,11 +210,11 @@ async function init() {
           "facilNormalCustomRedirects",
         ],
         r => {
-          disable = r.disableMaps ?? false;
-          frontend = r.mapsFrontend ?? 'osm';
+          disable = r.disableMaps;
+          frontend = r.mapsFrontend;
 
-          facilNormalRedirectsChecks = r.facilNormalRedirectsChecks ?? [...redirects.facil.normal];
-          facilNormalCustomRedirects = r.facilNormalCustomRedirects ?? [];
+          facilNormalRedirectsChecks = r.facilNormalRedirectsChecks;
+          facilNormalCustomRedirects = r.facilNormalCustomRedirects;
 
           resolve();
         }
@@ -238,19 +223,9 @@ async function init() {
 }
 
 export default {
-  getDisable,
-  setDisable,
-
-  getFrontend,
-  setFrontend,
-
   getRedirects,
 
-  getFacilNormalRedirectsChecks,
-  setFacilNormalRedirectsChecks,
-  getFacilNormalCustomRedirects,
-  setFacilNormalCustomRedirects,
-
   redirect,
   init,
+  initDefaults,
 };
diff --git a/src/assets/javascripts/helpers/maps.js.backup b/src/assets/javascripts/helpers/maps.js.backup
deleted file mode 100644
index 81678c3d..00000000
--- a/src/assets/javascripts/helpers/maps.js.backup
+++ /dev/null
@@ -1,274 +0,0 @@
-window.browser = window.browser || window.chrome;
-import commonHelper from './common.js'
-
-const targets = /^https?:\/{2}(((www|maps)\.)?(google\.).*(\/maps)|maps\.(google\.).*)/;
-let redirects = {
-  'osm': {
-    "normal": [
-      "https://openstreetmap.org"
-    ]
-  },
-  'facil': {
-    "normal": [
-      "https://facilmap.org"
-    ]
-  }
-};
-const mapCentreRegex = /@(-?\d[0-9.]*),(-?\d[0-9.]*),(\d{1,2})[.z]/;
-const dataLatLngRegex = /(!3d|!4d)(-?[0-9]{1,10}.[0-9]{1,10})/g;
-const placeRegex = /\/place\/(.*)\//;
-const travelModes = {
-  driving: "fossgis_osrm_car",
-  walking: "fossgis_osrm_foot",
-  bicycling: "fossgis_osrm_bike",
-  transit: "fossgis_osrm_car", // not implemented on OSM, default to car.
-};
-const osmLayers = {
-  none: "S",
-  transit: "T",
-  traffic: "S", // not implemented on OSM, default to standard.
-  bicycling: "C",
-};
-
-function addressToLatLng(address, callback) {
-  const xmlhttp = new XMLHttpRequest();
-  xmlhttp.onreadystatechange = () => {
-    if (xmlhttp.readyState === XMLHttpRequest.DONE) {
-      if (xmlhttp.status === 200) {
-        const json = JSON.parse(xmlhttp.responseText)[0];
-        if (json) callback(
-          `${json.lat},${json.lon}`,
-          `${json.boundingbox[2]},${json.boundingbox[1]},${json.boundingbox[3]},${json.boundingbox[0]}`
-        );
-      } else
-        console.info("Error: Status is " + xmlhttp.status);
-    }
-  };
-  xmlhttp.open(
-    "GET",
-    `https://nominatim.openstreetmap.org/search/${address}?format=json&limit=1`,
-    false
-  );
-  xmlhttp.send();
-}
-
-let disable;
-const getDisable = () => disable;
-function setDisable(val) {
-  disable = val;
-  browser.storage.local.set({ disableMaps: disable })
-  console.log("disableMaps: ", disable)
-}
-
-let frontend;
-const getFrontend = () => frontend;
-function setFrontend(val) {
-  frontend = val;
-  browser.storage.local.set({ mapsFrontend: frontend })
-  console.log("mapsFrontend: ", frontend)
-};
-
-function redirect(url, initiator) {
-
-  if (disable) return;
-  if (initiator && initiator.host === "earth.google.com") return;
-
-  if (!url.href.match(targets)) return;
-
-  let redirect;
-  let randomInstance;
-  if (frontend == 'osm') randomInstance = commonHelper.getRandomInstance(redirects.osm.normal);
-  if (frontend == 'facil') randomInstance = commonHelper.getRandomInstance(redirects.facil.normal);
-  let mapCentre = "";
-  let prefs = {};
-
-  // Set map centre if present
-  if (url.pathname.match(mapCentreRegex)) {
-    const [, lat, lon, zoom] = url.pathname.match(mapCentreRegex);
-    if (frontend == 'osm') {
-      prefs["#map"] = `${zoom}/${lat}/${lon}`;
-      mapCentre = `#map=${zoom}/${lat}/${lon}`;
-      console.log("prefs", prefs);
-    }
-    if (frontend == 'facil') mapCentre = `#${zoom}/${lat}/${lon}`;
-
-
-    console.log("lat", lat) // vertical
-    console.log("lon", lon) // horizontal
-    console.log("zoom", zoom)
-
-  } else if (url.searchParams.has("center")) {
-    const [lat, lon] = url.searchParams.get("center").split(",");
-    const zoom = url.searchParams.get("zoom") ?? "17";
-    if (frontend == 'osm') {
-      console.log("here");
-      mapCentre = `#map=${zoom}/${lat}/${lon}`;
-      prefs["#map"] = `${zoom}/${lat}/${lon}`;
-    }
-    if (frontend == 'facil') mapCentre = `#${zoom}/${lat}/${lon}`
-
-    console.log("lat", lat)
-    console.log("lon", lon)
-    console.log("zoom", zoom)
-
-    console.log("prefs", prefs);
-  }
-
-  // Set map layer
-  let params = "";
-  if (url.searchParams.get("layer")) {
-    let layer = osmLayers[url.searchParams.get("layer")]
-    params = `&layers=${layer}`;
-    console.log("layer", layer);
-  }
-
-  // Handle Google Maps Embed API
-  if (url.pathname.includes("/embed")) {
-    let query = "";
-    if (url.searchParams.has("q")) query = url.searchParams.get("q");
-    else if (url.searchParams.has("query")) query = url.searchParams.has("query");
-
-    else if (url.searchParams.has("pb"))
-      try { query = url.searchParams.get("pb").split(/!2s(.*?)!/)[1]; }
-      catch (error) { console.error(error); } // Unable to find map marker in URL.
-
-    console.log("query", query);
-
-    let prefs = {};
-    addressToLatLng(
-      query,
-      (coords, boundingbox) => {
-        prefs.bbox = boundingbox;
-        prefs.marker = coords;
-      }
-    );
-    prefs.layer = "mapnik";
-
-    let prefsEncoded = new URLSearchParams(prefs).toString();
-
-    if (frontend == 'osm') redirect = `${randomInstance}/export/embed.html?${prefsEncoded}`;
-    if (frontend == 'facil') redirect = redirect = `${randomInstance}/${mapCentre}/Mpnk`;
-
-    // Handle Google Maps Directions
-  } else if (url.pathname.includes("/dir")) {
-    let prefs = {};
-
-    prefs.engine = travelModes[url.searchParams.get("travelmode")] ?? travelModes["driving"];
-
-    let origin; addressToLatLng(url.searchParams.get("origin"), a => origin = a);
-    let destination; addressToLatLng(url.searchParams.get("destination"), a => destination = a);
-    prefs.route = `${origin};${destination}`;
-
-    let prefsEncoded = new URLSearchParams(prefs).toString();
-
-    if (frontend == 'osm') redirect = `${randomInstance}/directions?${prefsEncoded}`;
-    // ${mapCentre}${params}
-
-    if (frontend == 'facil') {
-      mapCentre = mapCentre ?? '#1/0/0';
-      redirect = redirect = `${randomInstance}/${mapCentre}/Mpnk`
-    }
-
-    // Get marker from data attribute
-  } else if (url.pathname.includes("data=") && url.pathname.match(dataLatLngRegex)) {
-    console.log("data life");
-    const [mlat, mlon] = url.pathname.match(dataLatLngRegex);
-
-    let prefs = {};
-
-    prefs.mlat = mlat.replace("!3d", "");
-    prefs.mlon = mlon.replace("!4d", "");
-
-    let prefsEncoded = new URLSearchParams(prefs).toString();
-
-    // Stil didn't finished nor tested this
-    if (frontend == 'osm') redirect = `${randomInstance}/?${prefsEncoded}${mapCentre}${params}`;
-
-    if (frontend == 'facil') redirect = redirect = `${randomInstance}/${mapCentre}/Mpnk`
-
-    console.log("prefs", prefs);
-
-    // Get marker from ll param
-  } else if (url.searchParams.has("ll")) {
-    let prefs = {};
-
-    const [mlat, mlon] = url.searchParams.get("ll").split(",");
-
-    prefs.mlat = mlat;
-    prefs.mlon = mlon;
-
-    let prefsEncoded = new URLSearchParams(prefs).toString();
-
-    redirect = `${randomInstance}/?${prefsEncoded}${mapCentre}${params}`;
-
-    console.log("prefs", prefs);
-
-    // Get marker from viewpoint param.
-  } else if (url.searchParams.has("viewpoint")) {
-    console.log("viewpoint life");
-
-    const [mlat, mlon] = url.searchParams.get("viewpoint").split(",");
-
-    let prefs = {};
-    prefs.mlat = mlat;
-    prefs.mlon = mlon;
-
-    let prefsEncoded = new URLSearchParams(prefs).toString();
-
-    redirect = `${randomInstance}/?${prefsEncoded}${mapCentre}${params}`;
-
-    console.log("prefs", prefs);
-
-    // Use query as search if present.
-  } else {
-    console.log("normal life")
-
-    let query;
-    if (url.searchParams.has("q")) query = url.searchParams.get("q");
-    else if (url.searchParams.has("query")) query = url.searchParams.get("query");
-    else if (url.pathname.match(placeRegex)) query = url.pathname.match(placeRegex)[1];
-
-    if (frontend == 'osm') {
-      query = query ? `/search?query="${query}` : "";
-      mapCentre = mapCentre ?? '#';
-      redirect = `${randomInstance}${query}${mapCentre}${params}`;
-    }
-    if (frontend == 'facil') {
-      query = query ? `/${query}` : "";
-      mapCentre = mapCentre ?? '#1/0/0';
-      redirect = `${randomInstance}/${mapCentre}/Mpnk${query}`
-    }
-
-    console.log("mapCentre", mapCentre)
-    console.log("query", query)
-  }
-  return redirect;
-}
-
-async function init() {
-  return new Promise(
-    resolve => {
-      browser.storage.local.get(
-        [
-          "disableMaps",
-          "mapsFrontend"
-        ],
-        r => {
-          disable = r.disableMaps ?? false
-          frontend = r.mapsFrontend ?? 'osm'
-          resolve();
-        }
-      );
-    });
-}
-
-export default {
-  getDisable,
-  setDisable,
-
-  getFrontend,
-  setFrontend,
-
-  redirect,
-  init,
-};
diff --git a/src/assets/javascripts/helpers/medium.js b/src/assets/javascripts/helpers/medium.js
index 55d4b3a2..beea1a99 100644
--- a/src/assets/javascripts/helpers/medium.js
+++ b/src/assets/javascripts/helpers/medium.js
@@ -51,68 +51,28 @@ function setRedirects(val) {
     var index = scribeNormalRedirectsChecks.indexOf(item);
     if (index !== -1) scribeNormalRedirectsChecks.splice(index, 1);
   }
-  setScribeNormalRedirectsChecks(scribeNormalRedirectsChecks);
+  browser.storage.local.set({ scribeNormalRedirectsChecks })
 
   for (const item of scribeNormalRedirectsChecks) if (!redirects.scribe.normal.includes(item)) {
     var index = scribeNormalRedirectsChecks.indexOf(item);
     if (index !== -1) scribeNormalRedirectsChecks.splice(index, 1);
   }
-  setScribeNormalRedirectsChecks(scribeNormalRedirectsChecks);
+  browser.storage.local.set({ scribeNormalRedirectsChecks })
 
   for (const item of scribeTorRedirectsChecks) if (!redirects.scribe.normal.includes(item)) {
     var index = scribeTorRedirectsChecks.indexOf(item);
     if (index !== -1) scribeTorRedirectsChecks.splice(index, 1);
   }
-  setScribeTorRedirectsChecks(scribeTorRedirectsChecks);
+  browser.storage.local.set({ scribeTorRedirectsChecks })
 }
 
 let scribeNormalRedirectsChecks;
-const getScribeNormalRedirectsChecks = () => scribeNormalRedirectsChecks;
-function setScribeNormalRedirectsChecks(val) {
-  scribeNormalRedirectsChecks = val;
-  browser.storage.local.set({ scribeNormalRedirectsChecks })
-  console.log("scribeNormalRedirectsChecks: ", val)
-}
-
 let scribeTorRedirectsChecks;
-const getScribeTorRedirectsChecks = () => scribeTorRedirectsChecks;
-function setScribeTorRedirectsChecks(val) {
-  scribeTorRedirectsChecks = val;
-  browser.storage.local.set({ scribeTorRedirectsChecks })
-  console.log("scribeTorRedirectsChecks: ", val)
-}
-
 let scribeNormalCustomRedirects = [];
-const getScribeNormalCustomRedirects = () => scribeNormalCustomRedirects;
-function setScribeNormalCustomRedirects(val) {
-  scribeNormalCustomRedirects = val;
-  browser.storage.local.set({ scribeNormalCustomRedirects })
-  console.log("scribeNormalCustomRedirects: ", val)
-}
-
 let scribeTorCustomRedirects = [];
-const getScribeTorCustomRedirects = () => scribeTorCustomRedirects;
-function setScribeTorCustomRedirects(val) {
-  scribeTorCustomRedirects = val;
-  browser.storage.local.set({ scribeTorCustomRedirects })
-  console.log("scribeTorCustomRedirects: ", val)
-}
 
 let disable;
-const getDisable = () => disable;
-function setDisable(val) {
-  disable = val;
-  browser.storage.local.set({ disableMedium: disable })
-  console.log("disableMedium", disable)
-}
-
 let protocol;
-const getProtocol = () => protocol;
-function setProtocol(val) {
-  protocol = val;
-  browser.storage.local.set({ mediumProtocol: val });
-  console.log("mediumProtocol: ", val);
-}
 
 function redirect(url, type, initiator) {
 
@@ -162,41 +122,57 @@ function switchInstance(url) {
   return `${randomInstance}${url.pathname}${url.search}`;
 }
 
-async function init() {
-  return new Promise(resolve => {
-    fetch('/instances/data.json').then(response => response.text()).then(data => {
+async function initDefaults() {
+  return new Promise(async resolve => {
+    fetch('/instances/data.json').then(response => response.text()).then(async data => {
       let dataJson = JSON.parse(data);
-      browser.storage.local.get(
-        [
-          "disableMedium",
-          "mediumRedirects",
-          "scribeNormalRedirectsChecks",
-          "scribeNormalCustomRedirects",
-          "scribeTorRedirectsChecks",
-          "scribeTorCustomRedirects",
-          "mediumProtocol"
-        ],
-        r => {
-          disable = r.disableMedium ?? false;
-
-          protocol = r.mediumProtocol ?? "normal";
-
-          redirects.scribe = dataJson.scribe;
-          if (r.mediumRedirects) redirects = r.mediumRedirects;
-
-          scribeNormalRedirectsChecks = r.scribeNormalRedirectsChecks ?? [...redirects.scribe.normal];
-          scribeNormalCustomRedirects = r.scribeNormalCustomRedirects ?? [];
-
-          scribeTorRedirectsChecks = r.scribeTorRedirectsChecks ?? [...redirects.scribe.tor];
-          scribeTorCustomRedirects = r.scribeTorCustomRedirects ?? [];
-
-          resolve();
-        }
-      )
+      redirects.scribe = dataJson.scribe;
+      await browser.storage.local.set({
+        disableMedium: false,
+        mediumRedirects: redirects,
+        scribeNormalRedirectsChecks: [...redirects.scribe.normal],
+        scribeNormalCustomRedirects: [],
+        scribeTorRedirectsChecks: [...redirects.scribe.tor],
+        scribeTorCustomRedirects: [],
+        mediumProtocol: "normal",
+      })
+      resolve();
     })
   })
 }
 
+async function init() {
+  return new Promise(resolve => {
+    browser.storage.local.get(
+      [
+        "disableMedium",
+        "mediumRedirects",
+        "scribeNormalRedirectsChecks",
+        "scribeNormalCustomRedirects",
+        "scribeTorRedirectsChecks",
+        "scribeTorCustomRedirects",
+        "mediumProtocol"
+      ],
+      r => {
+        disable = r.disableMedium;
+
+        protocol = r.mediumProtocol;
+
+
+        redirects = r.mediumRedirects;
+
+        scribeNormalRedirectsChecks = r.scribeNormalRedirectsChecks;
+        scribeNormalCustomRedirects = r.scribeNormalCustomRedirects;
+
+        scribeTorRedirectsChecks = r.scribeTorRedirectsChecks;
+        scribeTorCustomRedirects = r.scribeTorCustomRedirects;
+
+        resolve();
+      }
+    )
+  })
+}
+
 export default {
   targets,
 
@@ -204,23 +180,8 @@ export default {
   getCustomRedirects,
   setRedirects,
 
-  getDisable,
-  setDisable,
-
-  getProtocol,
-  setProtocol,
-
-  getScribeNormalRedirectsChecks,
-  setScribeNormalRedirectsChecks,
-  getScribeTorRedirectsChecks,
-  setScribeTorRedirectsChecks,
-
-  getScribeNormalCustomRedirects,
-  setScribeNormalCustomRedirects,
-  getScribeTorCustomRedirects,
-  setScribeTorCustomRedirects,
-
   redirect,
   init,
+  initDefaults,
   switchInstance,
 };
diff --git a/src/assets/javascripts/helpers/peertube.js b/src/assets/javascripts/helpers/peertube.js
index c9aae80c..17fada2b 100644
--- a/src/assets/javascripts/helpers/peertube.js
+++ b/src/assets/javascripts/helpers/peertube.js
@@ -11,20 +11,13 @@ let redirects = {
             "https://tube.fr.tild3.org",
             "https://stube.alefvanoon.xyz",
             "https://st.phreedom.club",
+            "https://simpleertube.esmailelbob.xyz",
         ],
         "tor": []
     }
 }
 
 const getRedirects = () => redirects;
-const getCustomRedirects = function () {
-    return {
-        "simpleertube": {
-            "normal": [...simpleertubeNormalRedirectsChecks, ...simpleertubeNormalCustomRedirects]
-        },
-    };
-};
-
 function setRedirects(val) {
     redirects.simpleertube = val;
     browser.storage.local.set({ peertubeTargetsRedirects: redirects })
@@ -34,62 +27,24 @@ function setRedirects(val) {
             var index = simpleertubeNormalRedirectsChecks.indexOf(item);
             if (index !== -1) simpleertubeNormalRedirectsChecks.splice(index, 1);
         }
-    setSimpleertubeNormalRedirectsChecks(simpleertubeNormalRedirectsChecks);
+    browser.storage.local.set({ simpleertubeNormalRedirectsChecks })
 
     for (const item of simpleertubeTorRedirectsChecks)
         if (!redirects.simpleertube.normal.includes(item)) {
             var index = simpleertubeTorRedirectsChecks.indexOf(item);
             if (index !== -1) simpleertubeTorRedirectsChecks.splice(index, 1);
         }
-    setSimpleertubeTorRedirectsChecks(simpleertubeTorRedirectsChecks);
+    browser.storage.local.set({ simpleertubeTorRedirectsChecks })
 }
 
 let simpleertubeNormalRedirectsChecks;
-const getSimpleertubeNormalRedirectsChecks = () => simpleertubeNormalRedirectsChecks;
-function setSimpleertubeNormalRedirectsChecks(val) {
-    simpleertubeNormalRedirectsChecks = val;
-    browser.storage.local.set({ simpleertubeNormalRedirectsChecks })
-    console.log("simpleertubeNormalRedirectsChecks: ", val)
-}
-
 let simpleertubeTorRedirectsChecks;
-const getSimpleertubeTorRedirectsChecks = () => simpleertubeTorRedirectsChecks;
-function setSimpleertubeTorRedirectsChecks(val) {
-    simpleertubeTorRedirectsChecks = val;
-    browser.storage.local.set({ simpleertubeTorRedirectsChecks })
-    console.log("simpleertubeTorRedirectsChecks: ", val)
-}
 
 let simpleertubeNormalCustomRedirects = [];
-const getSimpleertubeNormalCustomRedirects = () => simpleertubeNormalCustomRedirects;
-function setSimpleertubeNormalCustomRedirects(val) {
-    simpleertubeNormalCustomRedirects = val;
-    browser.storage.local.set({ simpleertubeNormalCustomRedirects })
-    console.log("simpleertubeNormalCustomRedirects: ", val)
-}
-
 let simpleertubeTorCustomRedirects = [];
-const getSimpleertubeTorCustomRedirects = () => simpleertubeTorCustomRedirects;
-function setSimpleertubeTorCustomRedirects(val) {
-    simpleertubeTorCustomRedirects = val;
-    browser.storage.local.set({ simpleertubeTorCustomRedirects })
-    console.log("simpleertubeTorCustomRedirects: ", val)
-}
 
 let disable;
-const getDisable = () => disable;
-function setDisable(val) {
-    disable = val;
-    browser.storage.local.set({ disablePeertubeTargets: disable })
-}
-
 let protocol;
-const getProtocol = () => protocol;
-function setProtocol(val) {
-    protocol = val;
-    browser.storage.local.set({ peertubeTargetsProtocol: val })
-    console.log("peertubeTargetsProtocol: ", val)
-}
 
 function switchInstance(url) {
     let protocolHost = commonHelper.protocolHost(url);
@@ -138,70 +93,64 @@ function redirect(url, type, initiator) {
     return `${randomInstance}/${url.host}${url.pathname}${url.search}`;
 }
 
-async function init() {
-    return new Promise(resolve => {
-        fetch('/instances/data.json').then(response => response.text()).then(data => {
-            let dataJson = JSON.parse(data);
-            browser.storage.local.get(
-                [
-                    "disablePeertubeTargets",
-                    "peertubeTargetsRedirects",
+async function initDefaults() {
+    console.log('init peertube defaults')
+    fetch('/instances/data.json').then(response => response.text()).then(async data => {
+        let dataJson = JSON.parse(data);
+        await browser.storage.local.set({
+            peerTubeTargets: ['https://search.joinpeertube.org', ...dataJson.peertube],
 
-                    "simpleertubeNormalRedirectsChecks",
-                    "simpleertubeNormalCustomRedirects",
+            disablePeertubeTargets: true,
 
-                    "simpleertubeTorRedirectsChecks",
-                    "simpleertubeTorCustomRedirects",
+            simpleertubeNormalRedirectsChecks: [...redirects.simpleertube.normal],
+            simpleertubeNormalCustomRedirects: [],
 
-                    "peertubeTargetsProtocol"
-                ],
-                r => {
+            simpleertubeTorRedirectsChecks: [...redirects.simpleertube.tor],
+            simpleertubeTorCustomRedirects: [],
 
-                    targets = ['https://search.joinpeertube.org', ...dataJson.peertube];
+            peertubeTargetsProtocol: "normal",
+        })
+    })
+}
 
-                    disable = r.disablePeertubeTargets ?? true;
+async function init() {
+    await browser.storage.local.get(
+        [
+            "disablePeertubeTargets",
+            "simpleertubeNormalRedirectsChecks",
+            "simpleertubeNormalCustomRedirects",
+
+            "simpleertubeTorRedirectsChecks",
+            "simpleertubeTorCustomRedirects",
 
-                    protocol = r.peertubeTargetsProtocol ?? "normal";
+            "peerTubeTargets",
 
-                    if (r.peertubeTargetsRedirects) redirects = r.peertubeTargetsRedirects;
+            "peertubeTargetsProtocol"
+        ],
+        r => {
+            disable = r.disablePeertubeTargets;
 
-                    simpleertubeNormalRedirectsChecks = r.simpleertubeNormalRedirectsChecks ?? [...redirects.simpleertube.normal];
-                    simpleertubeNormalCustomRedirects = r.simpleertubeNormalCustomRedirects ?? [];
+            protocol = r.peertubeTargetsProtocol;
 
-                    simpleertubeTorRedirectsChecks = r.simpleertubeTorRedirectsChecks ?? [...redirects.simpleertube.tor];
-                    simpleertubeTorCustomRedirects = r.simpleertubeTorCustomRedirects ?? [];
+            targets = r.peerTubeTargets;
 
-                    resolve();
-                }
-            )
-        });
-    });
+            simpleertubeNormalRedirectsChecks = r.simpleertubeNormalRedirectsChecks;
+            simpleertubeNormalCustomRedirects = r.simpleertubeNormalCustomRedirects;
+
+            simpleertubeTorRedirectsChecks = r.simpleertubeTorRedirectsChecks;
+            simpleertubeTorCustomRedirects = r.simpleertubeTorCustomRedirects;
+        }
+    )
 }
 
 export default {
 
     getRedirects,
-    getCustomRedirects,
     setRedirects,
 
-    getDisable,
-    setDisable,
-
-    getProtocol,
-    setProtocol,
-
-    getSimpleertubeNormalRedirectsChecks,
-    setSimpleertubeNormalRedirectsChecks,
-    getSimpleertubeTorRedirectsChecks,
-    setSimpleertubeTorRedirectsChecks,
-
-    getSimpleertubeTorCustomRedirects,
-    setSimpleertubeTorCustomRedirects,
-    getSimpleertubeNormalCustomRedirects,
-    setSimpleertubeNormalCustomRedirects,
-
     switchInstance,
 
     redirect,
+    initDefaults,
     init,
 };
diff --git a/src/assets/javascripts/helpers/pixiv.js b/src/assets/javascripts/helpers/pixiv.js
deleted file mode 100644
index f965a27d..00000000
--- a/src/assets/javascripts/helpers/pixiv.js
+++ /dev/null
@@ -1,181 +0,0 @@
-window.browser = window.browser || window.chrome;
-
-import commonHelper from './common.js'
-
-const targets = [
-    /^https?:\/{2}(www\.|)pixiv\.net.*/
-];
-
-let redirects = {
-    "pixivMoe": {
-        "normal": [
-            "https://pixiv.moe"
-        ],
-        "tor": []
-    }
-}
-
-const getRedirects = () => redirects;
-const getCustomRedirects = function () {
-    return {
-        "pixivMoe": {
-            "normal": [...pixivMoeNormalRedirectsChecks, ...pixivMoeNormalCustomRedirects],
-            "tor": []
-        },
-    };
-};
-
-function setRedirects(val) {
-    redirects.pixivMoe = val;
-    browser.storage.local.set({ pixivRedirects: redirects })
-    console.log("pixivRedirects: ", val)
-    for (const item of pixivMoeNormalRedirectsChecks)
-        if (!redirects.pixivMoe.normal.includes(item)) {
-            var index = pixivMoeNormalRedirectsChecks.indexOf(item);
-            if (index !== -1) pixivMoeNormalRedirectsChecks.splice(index, 1);
-        }
-    setPixivMoeNormalRedirectsChecks(pixivMoeNormalRedirectsChecks);
-
-    for (const item of pixivMoeTorRedirectsChecks)
-        if (!redirects.pixivMoe.normal.includes(item)) {
-            var index = pixivMoeTorRedirectsChecks.indexOf(item);
-            if (index !== -1) pixivMoeTorRedirectsChecks.splice(index, 1);
-        }
-    setPixivMoeTorRedirectsChecks(pixivMoeTorRedirectsChecks);
-}
-
-let pixivMoeNormalRedirectsChecks;
-const getPixivMoeNormalRedirectsChecks = () => pixivMoeNormalRedirectsChecks;
-function setPixivMoeNormalRedirectsChecks(val) {
-    pixivMoeNormalRedirectsChecks = val;
-    browser.storage.local.set({ pixivMoeNormalRedirectsChecks })
-    console.log("pixivMoeNormalRedirectsChecks: ", val)
-}
-
-let pixivMoeTorRedirectsChecks;
-const getPixivMoeTorRedirectsChecks = () => pixivMoeTorRedirectsChecks;
-function setPixivMoeTorRedirectsChecks(val) {
-    pixivMoeTorRedirectsChecks = val;
-    browser.storage.local.set({ pixivMoeTorRedirectsChecks })
-    console.log("pixivMoeTorRedirectsChecks: ", val)
-}
-
-let pixivMoeNormalCustomRedirects = [];
-const getPixivMoeNormalCustomRedirects = () => pixivMoeNormalCustomRedirects;
-function setPixivMoeNormalCustomRedirects(val) {
-    pixivMoeNormalCustomRedirects = val;
-    browser.storage.local.set({ pixivMoeNormalCustomRedirects })
-    console.log("pixivMoeNormalCustomRedirects: ", val)
-}
-
-let pixivMoeTorCustomRedirects = [];
-const getPixivMoeTorCustomRedirects = () => pixivMoeTorCustomRedirects;
-function setPixivMoeTorCustomRedirects(val) {
-    pixivMoeTorCustomRedirects = val;
-    browser.storage.local.set({ pixivMoeTorCustomRedirects })
-    console.log("pixivMoeTorCustomRedirects: ", val)
-}
-
-let disable;
-const getDisable = () => disable;
-function setDisable(val) {
-    disable = val;
-    browser.storage.local.set({ disablePixiv: disable })
-    console.log("disablePixiv", val);
-}
-
-let protocol;
-const getProtocol = () => protocol;
-function setProtocol(val) {
-    protocol = val;
-    browser.storage.local.set({ pixivProtocol: val })
-    console.log("pixivProtocol: ", val)
-}
-
-function redirect(url, type, initiator) {
-    // https://www.pixiv.net/artworks/96572356
-    // https://www.pixiv.net/en/artworks/96572356
-    // https://pixiv.moe/illust/96572356
-
-    if (disable) return null;
-    if (initiator && ([...redirects.pixivMoe.normal, ...pixivMoeNormalCustomRedirects].includes(initiator.origin) || targets.includes(initiator.host))) return null;
-    if (!targets.some(rx => rx.test(url.href))) return null;
-    console.log("PixivMoe!!");
-
-    if (type != "main_frame" && type != "sub_frame") return null;
-
-    let instancesList;
-    if (protocol == 'normal') instancesList = [...pixivMoeNormalRedirectsChecks, ...pixivMoeNormalCustomRedirects];
-    if (protocol == 'tor') instancesList = [...pixivMoeTorRedirectsChecks, ...pixivMoeTorCustomRedirects];
-    if (instancesList.length === 0) return null;
-    let randomInstance = commonHelper.getRandomInstance(instancesList);
-
-    let pathName = url.pathname
-        .replace('/artworks/', '/illust/')
-        .replace(/\/..\//, '/')
-
-    return `${randomInstance}${pathName}`;
-}
-
-async function init() {
-    return new Promise((resolve) => {
-        fetch('/instances/data.json').then(response => response.text()).then(data => {
-            let dataJson = JSON.parse(data);
-            browser.storage.local.get(
-                [
-                    "disablePixiv",
-                    "pixivRedirects",
-
-                    "pixivMoeNormalRedirectsChecks",
-                    "pixivMoeNormalCustomRedirects",
-
-                    "pixivMoeTorRedirectsChecks",
-                    "pixivMoeTorCustomRedirects",
-
-                    "pixivProtocol"
-                ],
-                r => {
-                    disable = r.disablePixiv ?? true;
-
-                    protocol = r.pixivProtocol ?? "normal";
-
-                    if (r.pixivRedirects) redirects = r.pixivRedirects;
-
-                    pixivMoeNormalRedirectsChecks = r.pixivMoeNormalRedirectsChecks ?? [...redirects.pixivMoe.normal];
-                    pixivMoeNormalCustomRedirects = r.pixivMoeNormalCustomRedirects ?? [];
-
-                    pixivMoeTorRedirectsChecks = r.pixivMoeTorRedirectsChecks ?? [...redirects.pixivMoe.tor];
-                    pixivMoeTorCustomRedirects = r.pixivMoeTorCustomRedirects ?? [];
-
-                    resolve();
-                }
-            )
-        });
-    });
-}
-
-export default {
-
-    getRedirects,
-    getCustomRedirects,
-    setRedirects,
-
-    getDisable,
-    setDisable,
-
-    getProtocol,
-    setProtocol,
-
-    getPixivMoeNormalRedirectsChecks,
-    setPixivMoeNormalRedirectsChecks,
-    getPixivMoeTorRedirectsChecks,
-    setPixivMoeTorRedirectsChecks,
-
-    getPixivMoeTorCustomRedirects,
-    setPixivMoeTorCustomRedirects,
-    getPixivMoeNormalCustomRedirects,
-    setPixivMoeNormalCustomRedirects,
-
-    redirect,
-    init,
-};
diff --git a/src/assets/javascripts/helpers/reddit.js b/src/assets/javascripts/helpers/reddit.js
index ebb13ffa..6e932f6d 100644
--- a/src/assets/javascripts/helpers/reddit.js
+++ b/src/assets/javascripts/helpers/reddit.js
@@ -15,7 +15,6 @@ let redirects = {
     "normal": [],
     "tor": []
   },
-  "desktop": "https://old.reddit.com", // desktop
 };
 const getRedirects = () => redirects;
 const getCustomRedirects = function () {
@@ -266,11 +265,6 @@ function redirect(url, type, initiator) {
 
   if (type !== "main_frame" || url.pathname.match(bypassPaths)) return null;
 
-  if (frontend == 'old' && url.host !== "i.redd.it") {
-    if (url.host == 'old.reddit.com') return;
-    return `${redirects.desktop}${url.pathname}${url.search}`;
-  }
-
   let libredditInstancesList;
   let tedditInstancesList;
   if (protocol == 'normal') {
diff --git a/src/assets/javascripts/helpers/search.js b/src/assets/javascripts/helpers/search.js
index 2962bc79..e42b05dd 100644
--- a/src/assets/javascripts/helpers/search.js
+++ b/src/assets/javascripts/helpers/search.js
@@ -28,25 +28,6 @@ let redirects = {
   }
 };
 const getRedirects = () => redirects;
-const getCustomRedirects = () => {
-  return {
-    "searx": {
-      "normal": [...searxNormalRedirectsChecks, ...searxNormalCustomRedirects],
-      "tor": [...searxTorRedirectsChecks, ...searxTorCustomRedirects],
-      "i2p": [...searxI2pRedirectsChecks, ...searxI2pCustomRedirects]
-    },
-    "searxng": {
-      "normal": [...searxngNormalRedirectsChecks, ...searxngNormalCustomRedirects],
-      "tor": [...searxngTorRedirectsChecks, ...searxngTorCustomRedirects],
-      "i2p": [...searxngI2pRedirectsChecks, ...searxngI2pCustomRedirects]
-    },
-    "whoogle": {
-      "normal": [...whoogleNormalRedirectsChecks, ...whoogleNormalCustomRedirects],
-      "tor": [...whoogleTorRedirectsChecks, ...whoogleTorCustomRedirects],
-      "i2p": [...whoogleI2pRedirectsChecks, ...whoogleI2pCustomRedirects]
-    }
-  };
-};
 
 function setSearxRedirects(val) {
   redirects.searx = val;
@@ -56,19 +37,19 @@ function setSearxRedirects(val) {
     var index = searxNormalRedirectsChecks.indexOf(item);
     if (index !== -1) searxNormalRedirectsChecks.splice(index, 1);
   }
-  setSearxNormalRedirectsChecks(searxNormalRedirectsChecks);
+  browser.storage.local.set({ searxNormalRedirectsChecks });
 
   for (const item of searxTorRedirectsChecks) if (!redirects.searx.tor.includes(item)) {
     var index = searxTorRedirectsChecks.indexOf(item);
     if (index !== -1) searxTorRedirectsChecks.splice(index, 1);
   }
-  setSearxTorRedirectsChecks(searxTorRedirectsChecks);
+  browser.storage.local.set({ searxTorRedirectsChecks })
 
   for (const item of searxI2pRedirectsChecks) if (!redirects.searx.i2p.includes(item)) {
     var index = searxI2pRedirectsChecks.indexOf(item);
     if (index !== -1) searxI2pRedirectsChecks.splice(index, 1);
   }
-  setSearxI2pRedirectsChecks(searxI2pRedirectsChecks);
+  browser.storage.local.set({ searxI2pRedirectsChecks });
 }
 
 function setSearxngRedirects(val) {
@@ -79,19 +60,19 @@ function setSearxngRedirects(val) {
     var index = searxngNormalRedirectsChecks.indexOf(item);
     if (index !== -1) searxngNormalRedirectsChecks.splice(index, 1);
   }
-  setSearxngNormalRedirectsChecks(searxngNormalRedirectsChecks);
+  browser.storage.local.set({ searxngNormalRedirectsChecks })
 
   for (const item of searxngTorRedirectsChecks) if (!redirects.searxng.tor.includes(item)) {
     var index = searxngTorRedirectsChecks.indexOf(item);
     if (index !== -1) searxngTorRedirectsChecks.splice(index, 1);
   }
-  setSearxngTorRedirectsChecks(searxngTorRedirectsChecks);
+  browser.storage.local.set({ searxngTorRedirectsChecks });
 
   for (const item of searxngI2pRedirectsChecks) if (!redirects.searxng.i2p.includes(item)) {
     var index = searxngI2pRedirectsChecks.indexOf(item);
     if (index !== -1) searxngI2pRedirectsChecks.splice(index, 1);
   }
-  setSearxngI2pRedirectsChecks(searxngI2pRedirectsChecks);
+  browser.storage.local.set({ searxngI2pRedirectsChecks })
 }
 
 function setWhoogleRedirects(val) {
@@ -102,188 +83,49 @@ function setWhoogleRedirects(val) {
     var index = whoogleNormalRedirectsChecks.indexOf(item);
     if (index !== -1) whoogleNormalRedirectsChecks.splice(index, 1);
   }
-  setWhoogleNormalRedirectsChecks(whoogleNormalRedirectsChecks);
+  browser.storage.local.set({ whoogleNormalRedirectsChecks })
 
   for (const item of whoogleTorRedirectsChecks) if (!redirects.whoogle.tor.includes(item)) {
     var index = whoogleTorRedirectsChecks.indexOf(item);
     if (index !== -1) whoogleTorRedirectsChecks.splice(index, 1);
   }
-  setWhoogleTorRedirectsChecks(whoogleTorRedirectsChecks);
+  browser.storage.local.set({ whoogleTorRedirectsChecks })
 
   for (const item of whoogleI2pRedirectsChecks) if (!redirects.whoogle.i2p.includes(item)) {
     var index = whoogleI2pRedirectsChecks.indexOf(item);
     if (index !== -1) whoogleI2pRedirectsChecks.splice(index, 1);
   }
-  setWhoogleI2pRedirectsChecks(whoogleI2pRedirectsChecks);
-}
-
-let whoogleNormalRedirectsChecks;
-const getWhoogleNormalRedirectsChecks = () => whoogleNormalRedirectsChecks;
-function setWhoogleNormalRedirectsChecks(val) {
-  whoogleNormalRedirectsChecks = val;
-  browser.storage.local.set({ whoogleNormalRedirectsChecks })
-  console.log("whoogleNormalRedirectsChecks: ", val)
-}
-
-let whoogleI2pRedirectsChecks;
-const getWhoogleI2pRedirectsChecks = () => whoogleI2pRedirectsChecks;
-function setWhoogleI2pRedirectsChecks(val) {
-  whoogleI2pRedirectsChecks = val;
   browser.storage.local.set({ whoogleI2pRedirectsChecks })
-  console.log("whoogleI2pRedirectsChecks: ", val)
-}
-
-let whoogleTorRedirectsChecks;
-const getWhoogleTorRedirectsChecks = () => whoogleTorRedirectsChecks;
-function setWhoogleTorRedirectsChecks(val) {
-  whoogleTorRedirectsChecks = val;
-  browser.storage.local.set({ whoogleTorRedirectsChecks })
-  console.log("whoogleTorRedirectsChecks: ", val)
-}
-
-let whoogleNormalCustomRedirects = [];
-const getWhoogleNormalCustomRedirects = () => whoogleNormalCustomRedirects;
-function setWhoogleNormalCustomRedirects(val) {
-  whoogleNormalCustomRedirects = val;
-  browser.storage.local.set({ whoogleNormalCustomRedirects })
-  console.log("whoogleNormalCustomRedirects: ", val)
-}
-
-let whoogleI2pCustomRedirects = [];
-const getWhoogleI2pCustomRedirects = () => whoogleI2pCustomRedirects;
-function setWhoogleI2pCustomRedirects(val) {
-  whoogleI2pCustomRedirects = val;
-  browser.storage.local.set({ whoogleI2pCustomRedirects })
-  console.log("whoogleI2pCustomRedirects: ", val)
-}
-
-let whoogleTorCustomRedirects = [];
-const getWhoogleTorCustomRedirects = () => whoogleTorCustomRedirects;
-function setWhoogleTorCustomRedirects(val) {
-  whoogleTorCustomRedirects = val;
-  browser.storage.local.set({ whoogleTorCustomRedirects })
-  console.log("whoogleTorCustomRedirects: ", val)
-}
-
-let searxNormalRedirectsChecks;
-const getSearxNormalRedirectsChecks = () => searxNormalRedirectsChecks;
-function setSearxNormalRedirectsChecks(val) {
-  searxNormalRedirectsChecks = val;
-  browser.storage.local.set({ searxNormalRedirectsChecks })
-  console.log("searxNormalRedirectsChecks: ", val)
-}
-
-let searxI2pRedirectsChecks;
-const getSearxI2pRedirectsChecks = () => searxI2pRedirectsChecks;
-function setSearxI2pRedirectsChecks(val) {
-  searxI2pRedirectsChecks = val;
-  browser.storage.local.set({ searxI2pRedirectsChecks })
-  console.log("searxI2pRedirectsChecks: ", val)
-}
-
-let searxTorRedirectsChecks;
-const getSearxTorRedirectsChecks = () => searxTorRedirectsChecks;
-function setSearxTorRedirectsChecks(val) {
-  searxTorRedirectsChecks = val;
-  browser.storage.local.set({ searxTorRedirectsChecks })
-  console.log("searxTorRedirectsChecks: ", val)
-}
-
-let searxNormalCustomRedirects = [];
-const getSearxNormalCustomRedirects = () => searxNormalCustomRedirects;
-function setSearxNormalCustomRedirects(val) {
-  searxNormalCustomRedirects = val;
-  browser.storage.local.set({ searxNormalCustomRedirects })
-  console.log("searxNormalCustomRedirects: ", val)
-}
-
-let searxI2pCustomRedirects = [];
-const getSearxI2pCustomRedirects = () => searxI2pCustomRedirects;
-function setSearxI2pCustomRedirects(val) {
-  searxI2pCustomRedirects = val;
-  browser.storage.local.set({ searxI2pCustomRedirects })
-  console.log("searxI2pCustomRedirects: ", val)
-}
-
-let searxTorCustomRedirects = [];
-const getSearxTorCustomRedirects = () => searxTorCustomRedirects;
-function setSearxTorCustomRedirects(val) {
-  searxTorCustomRedirects = val;
-  browser.storage.local.set({ searxTorCustomRedirects })
-  console.log("searxTorCustomRedirects: ", val)
-}
-
-let searxngNormalRedirectsChecks;
-const getSearxngNormalRedirectsChecks = () => searxngNormalRedirectsChecks;
-function setSearxngNormalRedirectsChecks(val) {
-  searxngNormalRedirectsChecks = val;
-  browser.storage.local.set({ searxngNormalRedirectsChecks })
-  console.log("searxngNormalRedirectsChecks: ", val)
-}
-
-let searxngI2pRedirectsChecks;
-const getSearxngI2pRedirectsChecks = () => searxngI2pRedirectsChecks;
-function setSearxngI2pRedirectsChecks(val) {
-  searxngI2pRedirectsChecks = val;
-  browser.storage.local.set({ searxngI2pRedirectsChecks })
-  console.log("searxngI2pRedirectsChecks: ", val)
 }
 
-let searxngTorRedirectsChecks;
-const getSearxngTorRedirectsChecks = () => searxngTorRedirectsChecks;
-function setSearxngTorRedirectsChecks(val) {
-  searxngTorRedirectsChecks = val;
-  browser.storage.local.set({ searxngTorRedirectsChecks })
-  console.log("searxngTorRedirectsChecks: ", val)
-}
+let
+  searxNormalRedirectsChecks,
+  searxI2pRedirectsChecks,
+  searxTorRedirectsChecks,
 
-let searxngNormalCustomRedirects = [];
-const getSearxngNormalCustomRedirects = () => searxngNormalCustomRedirects;
-function setSearxngNormalCustomRedirects(val) {
-  searxngNormalCustomRedirects = val;
-  browser.storage.local.set({ searxngNormalCustomRedirects })
-  console.log("searxngNormalCustomRedirects: ", val)
-}
+  searxNormalCustomRedirects,
+  searxTorCustomRedirects,
+  searxI2pCustomRedirects,
 
-let searxngI2pCustomRedirects = [];
-const getSearxngI2pCustomRedirects = () => searxngI2pCustomRedirects;
-function setSearxngI2pCustomRedirects(val) {
-  searxngI2pCustomRedirects = val;
-  browser.storage.local.set({ searxngI2pCustomRedirects })
-  console.log("searxngI2pCustomRedirects: ", val)
-}
+  searxngNormalRedirectsChecks,
+  searxngI2pRedirectsChecks,
+  searxngTorRedirectsChecks,
 
-let searxngTorCustomRedirects = [];
-const getSearxngTorCustomRedirects = () => searxngTorCustomRedirects;
-function setSearxngTorCustomRedirects(val) {
-  searxngTorCustomRedirects = val;
-  browser.storage.local.set({ searxngTorCustomRedirects })
-  console.log("searxngTorCustomRedirects: ", val)
-}
+  searxngNormalCustomRedirects,
+  searxngTorCustomRedirects,
+  searxngI2pCustomRedirects,
 
-let disable;
-const getDisable = () => disable;
-function setDisable(val) {
-  disable = val;
-  browser.storage.local.set({ disableSearch: disable })
-  console.log("disableSearch: ", disable)
-}
+  whoogleNormalRedirectsChecks,
+  whoogleI2pRedirectsChecks,
+  whoogleTorRedirectsChecks,
 
-let frontend;
-const getFrontend = () => frontend;
-function setFrontend(val) {
-  frontend = val;
-  browser.storage.local.set({ searchFrontend: frontend })
-  console.log("searchFrontend: ", frontend)
-};
+  whoogleNormalCustomRedirects,
+  whoogleTorCustomRedirects,
+  whoogleI2pCustomRedirects;
 
-let protocol;
-const getProtocol = () => protocol;
-function setProtocol(val) {
-  protocol = val;
-  browser.storage.local.set({ searchProtocol: val })
-  console.log("searchProtocol: ", val)
-}
+let disable; // disableSearch
+let frontend; // searchFrontend
+let protocol; // searchProtocol
 
 let theme;
 let applyThemeToSites;
@@ -309,73 +151,18 @@ function initSearxngCookies() {
   if (theme == 'light') themeValue = 'logicodev';
   if (theme == 'dark') themeValue = 'logicodev-dark';
   if (applyThemeToSites && themeValue) {
-    let allInstances = [...redirects.searxng.normal, ...redirects.searxng.tor, ...redirects.searxng.i2p, ...searxngNormalCustomRedirects, ...searxngTorCustomRedirects, ...searxngI2pCustomRedirects];
-    let checkedInstances = [...searxngNormalRedirectsChecks, ...searxngNormalCustomRedirects, ...searxngTorRedirectsChecks, ...searxngTorCustomRedirects, ...searxngI2pRedirectsChecks, ...searxngI2pCustomRedirects];
-    for (const instanceUrl of allInstances)
-      if (!checkedInstances.includes(instanceUrl)) {
-        browser.cookies.remove({
-          url: instanceUrl,
-          name: "oscar-style",
-        })
-        browser.cookies.remove({
-          url: instanceUrl,
-          name: "oscar",
-        })
-      }
+    let checkedInstances;
+    if (protocol == 'normal') checkedInstances = [...searxngNormalRedirectsChecks, ...searxngNormalCustomRedirects];
+    else if (protocol == 'tor') checkedInstances = [...searxngTorRedirectsChecks, ...searxngTorCustomRedirects];
+    else if (protocol == 'i2p') checkedInstances = [...searxngI2pRedirectsChecks, ...searxngI2pCustomRedirects];
+
     for (const instanceUrl of checkedInstances) {
-      browser.cookies.set({
-        url: instanceUrl,
-        name: "oscar-style",
-        value: themeValue
-      })
-      browser.cookies.set({
-        url: instanceUrl,
-        name: "theme",
-        value: 'oscar'
-      })
+      browser.cookies.set({ url: instanceUrl, name: "oscar-style", value: themeValue })
+      browser.cookies.set({ url: instanceUrl, name: "theme", value: 'oscar' })
     }
   }
 }
 
-function initWhoogleCookies() {
-  let checkedInstances = [...whoogleNormalRedirectsChecks, ...whoogleNormalCustomRedirects, ...whoogleTorRedirectsChecks, ...whoogleTorCustomRedirects, ...whoogleI2pRedirectsChecks, ...whoogleI2pCustomRedirects];
-
-  // for (const item of checkedInstances) {
-  let request = new XMLHttpRequest();
-  // request.open("POST", `${item}/config`);
-  browser.cookies.get(
-    {
-      url: 'http://0.0.0.0:5000',
-      name: "session"
-    },
-    cookie => {
-      request.open("POST", 'http://0.0.0.0:5000/config');
-      request.withCredentials = true;
-
-      let data = `country=&lang_interface=&lang_search=&near=&block=&block_title=&block_url=&theme=light&url=http%3A%2F%2F0.0.0.0%3A5000%2F&style=++++++++++++++++++++++++++++++++%2F*+Colors+*%2F%0D%0A%3Aroot+%7B%0D%0A++++%2F*+LIGHT+THEME+COLORS+*%2F%0D%0A++++--whoogle-logo%3A+%23685e79%3B%0D%0A++++--whoogle-page-bg%3A+%23ffffff%3B%0D%0A++++--whoogle-element-bg%3A+%234285f4%3B%0D%0A++++--whoogle-text%3A+%23000000%3B%0D%0A++++--whoogle-contrast-text%3A+%23ffffff%3B%0D%0A++++--whoogle-secondary-text%3A+%2370757a%3B%0D%0A++++--whoogle-result-bg%3A+%23ffffff%3B%0D%0A++++--whoogle-result-title%3A+%231967d2%3B%0D%0A++++--whoogle-result-url%3A+%230d652d%3B%0D%0A++++--whoogle-result-visited%3A+%234b11a8%3B%0D%0A%0D%0A++++%2F*+DARK+THEME+COLORS+*%2F%0D%0A++++--whoogle-dark-logo%3A+%23685e79%3B%0D%0A++++--whoogle-dark-page-bg%3A+%23101020%3B%0D%0A++++--whoogle-dark-element-bg%3A+%234285f4%3B%0D%0A++++--whoogle-dark-text%3A+%23ffffff%3B%0D%0A++++--whoogle-dark-contrast-text%3A+%23ffffff%3B%0D%0A++++--whoogle-dark-secondary-text%3A+%23bbbbbb%3B%0D%0A++++--whoogle-dark-result-bg%3A+%23212131%3B%0D%0A++++--whoogle-dark-result-title%3A+%2364a7f6%3B%0D%0A++++--whoogle-dark-result-url%3A+%2334a853%3B%0D%0A++++--whoogle-dark-result-visited%3A+%23bbbbff%3B%0D%0A%7D%0D%0A%0D%0A%23whoogle-w+%7B%0D%0A++++fill%3A+%234285f4%3B%0D%0A%7D%0D%0A%0D%0A%23whoogle-h+%7B%0D%0A++++fill%3A+%23ea4335%3B%0D%0A%7D%0D%0A%0D%0A%23whoogle-o-1+%7B%0D%0A++++fill%3A+%23fbbc05%3B%0D%0A%7D%0D%0A%0D%0A%23whoogle-o-2+%7B%0D%0A++++fill%3A+%234285f4%3B%0D%0A%7D%0D%0A%0D%0A%23whoogle-g+%7B%0D%0A++++fill%3A+%2334a853%3B%0D%0A%7D%0D%0A%0D%0A%23whoogle-l+%7B%0D%0A++++fill%3A+%23ea4335%3B%0D%0A%7D%0D%0A%0D%0A%23whoogle-e+%7B%0D%0A++++fill%3A+%23fbbc05%3B%0D%0A%7D%0D%0A%0D%0A++++++++++++++++++++++++++++`;
-      // let data = prefsStyle + prefsTheme;
-      console.log(data);
-      request.onreadystatechange = () => {
-        if (request.readyState === XMLHttpRequest.DONE)
-          console.log(request.responseText)
-      };
-      request.send(data);
-    })
-
-
-  // let prefsStyle = `style=${encodeURIComponent('":root{--whoogle-logo:#685e79;--whoogle-page-bg:#fff;--whoogle-element-bg:#4285f4;--whoogle-text:#000;--whoogle-contrast-text:#fff;--whoogle-secondary-text:#70757a;--whoogle-result-bg:#fff;--whoogle-result-title:#1967d2;--whoogle-result-url:#0d652d;--whoogle-result-visited:#4b11a8;--whoogle-dark-logo:#685e79;--whoogle-dark-page-bg:#101020;--whoogle-dark-element-bg:#4285f4;--whoogle-dark-text:#fff;--whoogle-dark-contrast-text:#fff;--whoogle-dark-secondary-text:#bbb;--whoogle-dark-result-bg:#212131;--whoogle-dark-result-title:#64a7f6;--whoogle-dark-result-url:#34a853;--whoogle-dark-result-visited:#bbf}#whoogle-w{fill:#4285f4}#whoogle-h{fill:#ea4335}#whoogle-o-1{fill:#fbbc05}#whoogle-o-2{fill:#4285f4}#whoogle-g{fill:#34a853}#whoogle-l{fill:#ea4335}#whoogle-e{fill:#fbbc05}"')}`;
-
-  //   {"style": ":root{--whoogle-logo:#685e79;--whoogle-page-bg:#fff;--whoogle-element-bg:#4285f4;--whoogle-text:#000;--whoogle-contrast-text:#fff;--whoogle-secondary-text:#70757a;--whoogle-result-bg:#fff;--whoogle-result-title:#1967d2;--whoogle-result-url:#0d652d;--whoogle-result-visited:#4b11a8;--whoogle-dark-logo:#685e79;--whoogle-dark-page-bg:#101020;--whoogle-dark-element-bg:#4285f4;--whoogle-dark-text:#fff;--whoogle-dark-contrast-text:#fff;--whoogle-dark-secondary-text:#bbb;--whoogle-dark-result-bg:#212131;--whoogle-dark-result-title:#64a7f6;--whoogle-dark-result-url:#34a853;--whoogle-dark-result-visited:#bbf}#whoogle-w{fill:#4285f4}#whoogle-h{fill:#ea4335}#whoogle-o-1{fill:#fbbc05}#whoogle-o-2{fill:#4285f4}#whoogle-g{fill:#34a853}#whoogle-l{fill:#ea4335}#whoogle-e{fill:#fbbc05}",
-  // "theme":"dark"
-  // }
-
-  // let prefsStyle = `style=${encodeURIComponent('')}`;
-  // let prefsTheme = "";
-  // if (applyThemeToSites && theme != "DEFAULT") prefsTheme = `&theme=${encodeURIComponent(theme)}`;
-
-  // }
-}
-
 function redirect(url) {
   if (disable) return;
   if (!targets.some(rx => rx.test(url.href))) return;
@@ -403,7 +190,7 @@ function redirect(url) {
     path = "/";
   }
   else if (frontend == 'whoogle') {
-    let instancesList
+    let instancesList;
     if (protocol == 'normal') instancesList = [...whoogleNormalRedirectsChecks, ...whoogleNormalCustomRedirects];
     if (protocol == 'tor') instancesList = [...whoogleTorRedirectsChecks, ...whoogleTorCustomRedirects];
     if (protocol == 'i2p') instancesList = [...whoogleI2pRedirectsChecks, ...whoogleI2pCustomRedirects];
@@ -419,7 +206,14 @@ function redirect(url) {
 
   let searchQuery = "";
 
-  if ((url.hostname.includes('google') || url.hostname.includes('bing') || url.hostname.includes('libredirect.invalid')) && url.searchParams.has('q')) searchQuery = `?q=${url.searchParams.get('q')}`;
+  if (
+    (
+      url.hostname.includes('google') ||
+      url.hostname.includes('bing') ||
+      url.hostname.includes('libredirect.invalid')
+    ) &&
+    url.searchParams.has('q')
+  ) searchQuery = `?q=${url.searchParams.get('q')}`;
   if (url.hostname.includes('yandex') && url.searchParams.has('text')) searchQuery = `?q=${url.searchParams.get('text')}`;
 
   return `${randomInstance}${path}${searchQuery}`;
@@ -483,165 +277,143 @@ function switchInstance(url) {
   return `${randomInstance}${url.pathname}${url.search}`;
 }
 
-async function init() {
-  return new Promise(resolve => {
-    fetch('/instances/data.json').then(response => response.text()).then(data => {
-      let dataJson = JSON.parse(data);
-      browser.storage.local.get(
-        [
-          "disableSearch",
-          "searchFrontend",
-          "searchRedirects",
+async function initDefaults() {
+  await fetch('/instances/data.json').then(response => response.text()).then(async data => {
+    let dataJson = JSON.parse(data);
+    redirects.searx = dataJson.searx;
+    redirects.searxng = dataJson.searxng;
+    redirects.whoogle = dataJson.whoogle;
+    await browser.storage.local.set({
+      disableSearch: false,
+      searchFrontend: 'searxng',
+      searchRedirects: redirects,
 
-          "whoogleNormalRedirectsChecks",
-          "whoogleNormalCustomRedirects",
+      whoogleNormalRedirectsChecks: [...redirects.whoogle.normal],
+      whoogleNormalCustomRedirects: [],
 
-          "whoogleTorRedirectsChecks",
-          "whoogleTorCustomRedirects",
+      whoogleTorRedirectsChecks: [...redirects.whoogle.tor],
+      whoogleTorCustomRedirects: [],
 
-          "whoogleI2pRedirectsChecks",
-          "whoogleI2pCustomRedirects",
+      whoogleI2pRedirectsChecks: [...redirects.whoogle.i2p],
+      whoogleI2pCustomRedirects: [],
 
-          "searxNormalRedirectsChecks",
-          "searxNormalCustomRedirects",
+      searxNormalRedirectsChecks: [...redirects.searx.normal],
+      searxNormalCustomRedirects: [],
 
-          "searxTorRedirectsChecks",
-          "searxTorCustomRedirects",
+      searxTorRedirectsChecks: [...redirects.searx.tor],
+      searxTorCustomRedirects: [],
 
-          "searxI2pRedirectsChecks",
-          "searxI2pCustomRedirects",
+      searxI2pRedirectsChecks: [...redirects.searx.i2p],
+      searxI2pCustomRedirects: [],
 
-          "searxngNormalRedirectsChecks",
-          "searxngNormalCustomRedirects",
+      searxngNormalRedirectsChecks: [...redirects.searxng.normal],
+      searxngNormalCustomRedirects: [],
 
-          "searxngTorRedirectsChecks",
-          "searxngTorCustomRedirects",
+      searxngTorRedirectsChecks: [...redirects.searxng.tor],
+      searxngTorCustomRedirects: [],
 
-          "searxngI2pRedirectsChecks",
-          "searxngI2pCustomRedirects",
+      searxngI2pRedirectsChecks: [...redirects.searxng.i2p],
+      searxngI2pCustomRedirects: [],
 
-          "theme",
-          "applyThemeToSites",
+      theme: 'DEFAULT',
+      applyThemeToSites: false,
 
-          "searchProtocol",
-        ],
-        r => {
-          disable = r.disableSearch ?? false;
+      searchProtocol: 'normal',
+    })
+  })
+}
 
-          protocol = r.searchProtocol ?? 'normal';
+async function init() {
+  browser.storage.local.get(
+    [
+      "disableSearch",
+      "searchFrontend",
+      "searchRedirects",
 
-          frontend = r.searchFrontend ?? 'searxng';
+      "whoogleNormalRedirectsChecks",
+      "whoogleNormalCustomRedirects",
 
-          theme = r.theme ?? 'DEFAULT';
-          applyThemeToSites = r.applyThemeToSites ?? false;
+      "whoogleTorRedirectsChecks",
+      "whoogleTorCustomRedirects",
 
-          redirects.searx = dataJson.searx;
-          redirects.searxng = dataJson.searxng;
-          redirects.whoogle = dataJson.whoogle;
-          if (r.searchRedirects) redirects = r.searchRedirects;
+      "whoogleI2pRedirectsChecks",
+      "whoogleI2pCustomRedirects",
 
-          whoogleNormalRedirectsChecks = r.whoogleNormalRedirectsChecks ?? [...redirects.whoogle.normal];
-          whoogleNormalCustomRedirects = r.whoogleNormalCustomRedirects ?? [];
+      "searxNormalRedirectsChecks",
+      "searxNormalCustomRedirects",
 
-          whoogleTorRedirectsChecks = r.whoogleTorRedirectsChecks ?? [...redirects.whoogle.tor];
-          whoogleTorCustomRedirects = r.whoogleTorCustomRedirects ?? [];
+      "searxTorRedirectsChecks",
+      "searxTorCustomRedirects",
 
-          whoogleI2pRedirectsChecks = r.whoogleI2pRedirectsChecks ?? [...redirects.whoogle.i2p];
-          whoogleI2pCustomRedirects = r.whoogleI2pCustomRedirects ?? [];
+      "searxI2pRedirectsChecks",
+      "searxI2pCustomRedirects",
 
-          searxNormalRedirectsChecks = r.searxNormalRedirectsChecks ?? [...redirects.searx.normal];
-          searxNormalCustomRedirects = r.searxNormalCustomRedirects ?? [];
+      "searxngNormalRedirectsChecks",
+      "searxngNormalCustomRedirects",
 
-          searxTorRedirectsChecks = r.searxTorRedirectsChecks ?? [...redirects.searx.tor];
-          searxTorCustomRedirects = r.searxTorCustomRedirects ?? [];
+      "searxngTorRedirectsChecks",
+      "searxngTorCustomRedirects",
 
-          searxI2pRedirectsChecks = r.searxI2pRedirectsChecks ?? [...redirects.searx.i2p];
-          searxI2pCustomRedirects = r.searxI2pCustomRedirects ?? [];
+      "searxngI2pRedirectsChecks",
+      "searxngI2pCustomRedirects",
 
-          searxngNormalRedirectsChecks = r.searxngNormalRedirectsChecks ?? [...redirects.searxng.normal];
-          searxngNormalCustomRedirects = r.searxngNormalCustomRedirects ?? [];
+      "theme",
+      "applyThemeToSites",
 
-          searxngTorRedirectsChecks = r.searxngTorRedirectsChecks ?? [...redirects.searxng.tor];
-          searxngTorCustomRedirects = r.searxngTorCustomRedirects ?? [];
+      "searchProtocol",
+    ],
+    r => {
+      disable = r.disableSearch;
+      protocol = r.searchProtocol;
+      frontend = r.searchFrontend;
 
-          searxngI2pRedirectsChecks = r.searxngI2pRedirectsChecks ?? [...redirects.searxng.i2p];
-          searxngI2pCustomRedirects = r.searxngI2pCustomRedirects ?? [];
+      theme = r.theme;
+      applyThemeToSites = r.applyThemeToSites;
 
-          initSearxCookies()
-          initSearxngCookies()
-          // initWhoogleCookies()
+      redirects = r.searchRedirects;
 
-          resolve();
-        }
-      );
-    });
-  });
-}
+      whoogleNormalRedirectsChecks = r.whoogleNormalRedirectsChecks;
+      whoogleNormalCustomRedirects = r.whoogleNormalCustomRedirects;
 
-export default {
+      whoogleTorRedirectsChecks = r.whoogleTorRedirectsChecks;
+      whoogleTorCustomRedirects = r.whoogleTorCustomRedirects;
 
-  getDisable,
-  setDisable,
+      whoogleI2pRedirectsChecks = r.whoogleI2pRedirectsChecks;
+      whoogleI2pCustomRedirects = r.whoogleI2pCustomRedirects;
 
+      searxNormalRedirectsChecks = r.searxNormalRedirectsChecks;
+      searxNormalCustomRedirects = r.searxNormalCustomRedirects;
+
+      searxTorRedirectsChecks = r.searxTorRedirectsChecks;
+      searxTorCustomRedirects = r.searxTorCustomRedirects;
+
+      searxI2pRedirectsChecks = r.searxI2pRedirectsChecks;
+      searxI2pCustomRedirects = r.searxI2pCustomRedirects;
+
+      searxngNormalRedirectsChecks = r.searxngNormalRedirectsChecks;
+      searxngNormalCustomRedirects = r.searxngNormalCustomRedirects;
+
+      searxngTorRedirectsChecks = r.searxngTorRedirectsChecks;
+      searxngTorCustomRedirects = r.searxngTorCustomRedirects;
+
+      searxngI2pRedirectsChecks = r.searxngI2pRedirectsChecks;
+      searxngI2pCustomRedirects = r.searxngI2pCustomRedirects;
+    }
+  );
+}
+
+export default {
   getRedirects,
-  getCustomRedirects,
 
   setSearxRedirects,
   setSearxngRedirects,
   setWhoogleRedirects,
 
-  getFrontend,
-  setFrontend,
-
-  getWhoogleNormalRedirectsChecks,
-  setWhoogleNormalRedirectsChecks,
-  getWhoogleNormalCustomRedirects,
-  setWhoogleNormalCustomRedirects,
-
-  getWhoogleTorRedirectsChecks,
-  setWhoogleTorRedirectsChecks,
-  getWhoogleTorCustomRedirects,
-  setWhoogleTorCustomRedirects,
-
-  getWhoogleI2pRedirectsChecks,
-  setWhoogleI2pRedirectsChecks,
-  getWhoogleI2pCustomRedirects,
-  setWhoogleI2pCustomRedirects,
-
-  getSearxNormalRedirectsChecks,
-  setSearxNormalRedirectsChecks,
-  getSearxNormalCustomRedirects,
-  setSearxNormalCustomRedirects,
-
-  getSearxTorRedirectsChecks,
-  setSearxTorRedirectsChecks,
-  getSearxTorCustomRedirects,
-  setSearxTorCustomRedirects,
-
-  getSearxI2pRedirectsChecks,
-  setSearxI2pRedirectsChecks,
-  getSearxI2pCustomRedirects,
-  setSearxI2pCustomRedirects,
-
-  getSearxngNormalRedirectsChecks,
-  setSearxngNormalRedirectsChecks,
-  getSearxngNormalCustomRedirects,
-  setSearxngNormalCustomRedirects,
-
-  getSearxngTorRedirectsChecks,
-  setSearxngTorRedirectsChecks,
-  getSearxngTorCustomRedirects,
-  setSearxngTorCustomRedirects,
-
-  getSearxngI2pRedirectsChecks,
-  setSearxngI2pRedirectsChecks,
-  getSearxngI2pCustomRedirects,
-  setSearxngI2pCustomRedirects,
-
-  getProtocol,
-  setProtocol,
+  initSearxCookies,
+  initSearxngCookies,
 
   redirect,
+  initDefaults,
   init,
   switchInstance,
 };
diff --git a/src/assets/javascripts/helpers/sendTargets.js b/src/assets/javascripts/helpers/sendTargets.js
index 44c59193..1ab2b2e8 100644
--- a/src/assets/javascripts/helpers/sendTargets.js
+++ b/src/assets/javascripts/helpers/sendTargets.js
@@ -16,15 +16,6 @@ let redirects = {
 }
 
 const getRedirects = () => redirects;
-const getCustomRedirects = function () {
-    return {
-        "send": {
-            "normal": [...sendNormalRedirectsChecks, ...sendNormalCustomRedirects],
-	    "tor": [...sendTorRedirectsChecks, ...sendTorCustomRedirects]
-        },
-    };
-};
-
 function setRedirects(val) {
     redirects.send = val;
     browser.storage.local.set({ sendTargetsRedirects: redirects })
@@ -34,62 +25,23 @@ function setRedirects(val) {
             var index = sendNormalRedirectsChecks.indexOf(item);
             if (index !== -1) sendNormalRedirectsChecks.splice(index, 1);
         }
-    setSendNormalRedirectsChecks(sendNormalRedirectsChecks);
+    browser.storage.local.set({ sendNormalRedirectsChecks })
 
     for (const item of sendTorRedirectsChecks)
         if (!redirects.send.normal.includes(item)) {
             var index = sendTorRedirectsChecks.indexOf(item);
             if (index !== -1) sendTorRedirectsChecks.splice(index, 1);
         }
-    setSendTorRedirectsChecks(sendTorRedirectsChecks);
+    browser.storage.local.set({ sendTorRedirectsChecks })
 }
 
 let sendNormalRedirectsChecks;
-const getSendNormalRedirectsChecks = () => sendNormalRedirectsChecks;
-function setSendNormalRedirectsChecks(val) {
-    sendNormalRedirectsChecks = val;
-    browser.storage.local.set({ sendNormalRedirectsChecks })
-    console.log("sendNormalRedirectsChecks: ", val)
-}
-
 let sendTorRedirectsChecks;
-const getSendTorRedirectsChecks = () => sendTorRedirectsChecks;
-function setSendTorRedirectsChecks(val) {
-    sendTorRedirectsChecks = val;
-    browser.storage.local.set({ sendTorRedirectsChecks })
-    console.log("sendTorRedirectsChecks: ", val)
-}
-
 let sendNormalCustomRedirects = [];
-const getSendNormalCustomRedirects = () => sendNormalCustomRedirects;
-function setSendNormalCustomRedirects(val) {
-    sendNormalCustomRedirects = val;
-    browser.storage.local.set({ sendNormalCustomRedirects })
-    console.log("sendNormalCustomRedirects: ", val)
-}
-
 let sendTorCustomRedirects = [];
-const getSendTorCustomRedirects = () => sendTorCustomRedirects;
-function setSendTorCustomRedirects(val) {
-    sendTorCustomRedirects = val;
-    browser.storage.local.set({ sendTorCustomRedirects })
-    console.log("sendTorCustomRedirects: ", val)
-}
 
-let disable;
-const getDisable = () => disable;
-function setDisable(val) {
-    disable = val;
-    browser.storage.local.set({ disableSendTarget: disable })
-}
-
-let protocol;
-const getProtocol = () => protocol;
-function setProtocol(val) {
-    protocol = val;
-    browser.storage.local.set({ sendTargetsProtocol: val })
-    console.log("sendTargetsProtocol: ", val)
-}
+let disable; // disableSendTarget
+let protocol; // sendTargetsProtocol
 
 function switchInstance(url) {
     let protocolHost = commonHelper.protocolHost(url);
@@ -136,68 +88,61 @@ function redirect(url, type, initiator) {
     return randomInstance;
 }
 
-async function init() {
-    return new Promise(resolve => {
-        fetch('/instances/data.json').then(response => response.text()).then(data => {
-            let dataJson = JSON.parse(data);
-            browser.storage.local.get(
-                [
-                    "disableSendTarget",
-                    "sendTargetsRedirects",
+async function initDefaults() {
+    fetch('/instances/data.json').then(response => response.text()).then(async data => {
+        let dataJson = JSON.parse(data);
+        redirects.send = dataJson.send;
+        await browser.storage.local.set({
+            disableSendTarget: false,
+            sendTargetsRedirects: redirects,
+
+            sendNormalRedirectsChecks: [...redirects.send.normal],
+            sendNormalCustomRedirects: [],
 
-                    "sendNormalRedirectsChecks",
-                    "sendNormalCustomRedirects",
+            sendTorRedirectsChecks: [...redirects.send.tor],
+            sendTorCustomRedirects: [],
 
-                    "sendTorRedirectsChecks",
-                    "sendTorCustomRedirects",
+            sendTargetsProtocol: "normal",
+        })
+    })
+}
+
+async function init() {
+    browser.storage.local.get(
+        [
+            "disableSendTarget",
+            "sendTargetsRedirects",
 
-                    "sendTargetsProtocol"
-                ],
-                r => {
-		    redirects.send = dataJson.send;
-                    disable = r.disableSendTarget ?? false;
+            "sendNormalRedirectsChecks",
+            "sendNormalCustomRedirects",
 
-                    protocol = r.sendTargetsProtocol ?? "normal";
+            "sendTorRedirectsChecks",
+            "sendTorCustomRedirects",
 
-                    if (r.sendTargetsRedirects) redirects = r.sendTargetsRedirects;
+            "sendTargetsProtocol"
+        ],
+        r => {
 
-                    sendNormalRedirectsChecks = r.sendNormalRedirectsChecks ?? [...redirects.send.normal];
-                    sendNormalCustomRedirects = r.sendNormalCustomRedirects ?? [];
+            disable = r.disableSendTarget;
+            protocol = r.sendTargetsProtocol;
+            redirects = r.sendTargetsRedirects;
 
-                    sendTorRedirectsChecks = r.sendTorRedirectsChecks ?? [...redirects.send.tor];
-                    sendTorCustomRedirects = r.sendTorCustomRedirects ?? [];
+            sendNormalRedirectsChecks = r.sendNormalRedirectsChecks;
+            sendNormalCustomRedirects = r.sendNormalCustomRedirects;
 
-                    resolve();
-                }
-            )
-        });
-    });
+            sendTorRedirectsChecks = r.sendTorRedirectsChecks;
+            sendTorCustomRedirects = r.sendTorCustomRedirects;
+        }
+    )
 }
 
 export default {
-
     getRedirects,
-    getCustomRedirects,
     setRedirects,
 
-    getDisable,
-    setDisable,
-
-    getProtocol,
-    setProtocol,
-
-    getSendNormalRedirectsChecks,
-    setSendNormalRedirectsChecks,
-    getSendTorRedirectsChecks,
-    setSendTorRedirectsChecks,
-
-    getSendTorCustomRedirects,
-    setSendTorCustomRedirects,
-    getSendNormalCustomRedirects,
-    setSendNormalCustomRedirects,
-
     switchInstance,
 
     redirect,
+    initDefaults,
     init,
 };
diff --git a/src/assets/javascripts/helpers/speedtest.js b/src/assets/javascripts/helpers/speedtest.js
index 1e2fddeb..4f59cbb5 100644
--- a/src/assets/javascripts/helpers/speedtest.js
+++ b/src/assets/javascripts/helpers/speedtest.js
@@ -16,15 +16,6 @@ let redirects = {
 }
 
 const getRedirects = () => redirects;
-const getCustomRedirects = function () {
-    return {
-        "librespeed": {
-            "normal": [...librespeedNormalRedirectsChecks, ...librespeedNormalCustomRedirects],
-            "tor": []
-        },
-    };
-};
-
 function setRedirects(val) {
     redirects.librespeed = val;
     browser.storage.local.set({ speedtestRedirects: redirects })
@@ -34,63 +25,23 @@ function setRedirects(val) {
             var index = librespeedNormalRedirectsChecks.indexOf(item);
             if (index !== -1) librespeedNormalRedirectsChecks.splice(index, 1);
         }
-    setLibrespeedNormalRedirectsChecks(librespeedNormalRedirectsChecks);
+    browser.storage.local.set({ librespeedNormalRedirectsChecks })
 
     for (const item of librespeedTorRedirectsChecks)
         if (!redirects.librespeed.normal.includes(item)) {
             var index = librespeedTorRedirectsChecks.indexOf(item);
             if (index !== -1) librespeedTorRedirectsChecks.splice(index, 1);
         }
-    setLibrespeedTorRedirectsChecks(librespeedTorRedirectsChecks);
+    browser.storage.local.set({ librespeedTorRedirectsChecks })
 }
 
 let librespeedNormalRedirectsChecks;
-const getLibrespeedNormalRedirectsChecks = () => librespeedNormalRedirectsChecks;
-function setLibrespeedNormalRedirectsChecks(val) {
-    librespeedNormalRedirectsChecks = val;
-    browser.storage.local.set({ librespeedNormalRedirectsChecks })
-    console.log("librespeedNormalRedirectsChecks: ", val)
-}
-
 let librespeedTorRedirectsChecks;
-const getLibrespeedTorRedirectsChecks = () => librespeedTorRedirectsChecks;
-function setLibrespeedTorRedirectsChecks(val) {
-    librespeedTorRedirectsChecks = val;
-    browser.storage.local.set({ librespeedTorRedirectsChecks })
-    console.log("librespeedTorRedirectsChecks: ", val)
-}
-
 let librespeedNormalCustomRedirects = [];
-const getLibrespeedNormalCustomRedirects = () => librespeedNormalCustomRedirects;
-function setLibrespeedNormalCustomRedirects(val) {
-    librespeedNormalCustomRedirects = val;
-    browser.storage.local.set({ librespeedNormalCustomRedirects })
-    console.log("librespeedNormalCustomRedirects: ", val)
-}
-
 let librespeedTorCustomRedirects = [];
-const getLibrespeedTorCustomRedirects = () => librespeedTorCustomRedirects;
-function setLibrespeedTorCustomRedirects(val) {
-    librespeedTorCustomRedirects = val;
-    browser.storage.local.set({ librespeedTorCustomRedirects })
-    console.log("librespeedTorCustomRedirects: ", val)
-}
 
-let disable;
-const getDisable = () => disable;
-function setDisable(val) {
-    disable = val;
-    browser.storage.local.set({ disableSpeedtest: disable })
-    console.log("disableSpeedtest", val);
-}
-
-let protocol;
-const getProtocol = () => protocol;
-function setProtocol(val) {
-    protocol = val;
-    browser.storage.local.set({ speedtestProtocol: val })
-    console.log("speedtestProtocol: ", val)
-}
+let disable; // disableSpeedtest
+let protocol; // speedtestProtocol
 
 function redirect(url, type, initiator) {
     if (disable) return null;
@@ -109,65 +60,52 @@ function redirect(url, type, initiator) {
     return `${randomInstance}`;
 }
 
-async function init() {
-    return new Promise(resolve => {
-        fetch('/instances/data.json').then(response => response.text()).then(data => {
-            let dataJson = JSON.parse(data);
-            browser.storage.local.get(
-                [
-                    "disableSpeedtest",
-                    "speedtestRedirects",
+async function initDefaults() {
+    await browser.storage.local.set({
+        disableSpeedtest: true,
 
-                    "librespeedNormalRedirectsChecks",
-                    "librespeedNormalCustomRedirects",
+        librespeedNormalRedirectsChecks: [...redirects.librespeed.normal],
+        librespeedNormalCustomRedirects: [],
 
-                    "librespeedTorRedirectsChecks",
-                    "librespeedTorCustomRedirects",
+        librespeedTorRedirectsChecks: [...redirects.librespeed.tor],
+        librespeedTorCustomRedirects: [],
 
-                    "speedtestProtocol"
-                ],
-                r => {
-                    disable = r.disableSpeedtest ?? true;
+        speedtestProtocol: "normal",
+    })
+}
 
-                    protocol = r.speedtestProtocol ?? "normal";
+async function init() {
+    browser.storage.local.get(
+        [
+            "disableSpeedtest",
+            "speedtestRedirects",
+
+            "librespeedNormalRedirectsChecks",
+            "librespeedNormalCustomRedirects",
 
-                    if (r.speedtestRedirects) redirects = r.speedtestRedirects;
+            "librespeedTorRedirectsChecks",
+            "librespeedTorCustomRedirects",
 
-                    librespeedNormalRedirectsChecks = r.librespeedNormalRedirectsChecks ?? [...redirects.librespeed.normal];
-                    librespeedNormalCustomRedirects = r.librespeedNormalCustomRedirects ?? [];
+            "speedtestProtocol"
+        ],
+        r => {
+            disable = r.disableSpeedtest;
+            protocol = r.speedtestProtocol;
 
-                    librespeedTorRedirectsChecks = r.librespeedTorRedirectsChecks ?? [...redirects.librespeed.tor];
-                    librespeedTorCustomRedirects = r.librespeedTorCustomRedirects ?? [];
+            librespeedNormalRedirectsChecks = r.librespeedNormalRedirectsChecks;
+            librespeedNormalCustomRedirects = r.librespeedNormalCustomRedirects;
 
-                    resolve();
-                }
-            )
-        });
-    });
+            librespeedTorRedirectsChecks = r.librespeedTorRedirectsChecks;
+            librespeedTorCustomRedirects = r.librespeedTorCustomRedirects;
+        }
+    )
 }
 
 export default {
-
     getRedirects,
-    getCustomRedirects,
     setRedirects,
 
-    getDisable,
-    setDisable,
-
-    getProtocol,
-    setProtocol,
-
-    getLibrespeedNormalRedirectsChecks,
-    setLibrespeedNormalRedirectsChecks,
-    getLibrespeedTorRedirectsChecks,
-    setLibrespeedTorRedirectsChecks,
-
-    getLibrespeedTorCustomRedirects,
-    setLibrespeedTorCustomRedirects,
-    getLibrespeedNormalCustomRedirects,
-    setLibrespeedNormalCustomRedirects,
-
     redirect,
+    initDefaults,
     init,
 };
diff --git a/src/assets/javascripts/helpers/spotify.js b/src/assets/javascripts/helpers/spotify.js
index 22f596d0..6863c108 100644
--- a/src/assets/javascripts/helpers/spotify.js
+++ b/src/assets/javascripts/helpers/spotify.js
@@ -10,20 +10,11 @@ let redirects = {
     "soju": {
         "normal": [
             "https://playsoju.netlify.app",
-        ],
-        "tor": []
+        ]
     }
 }
 
 const getRedirects = () => redirects;
-const getCustomRedirects = function () {
-    return {
-        "soju": {
-            "normal": [...sojuNormalRedirectsChecks, ...sojuNormalCustomRedirects]
-        },
-    };
-};
-
 function setRedirects(val) {
     redirects.soju = val;
     browser.storage.local.set({ spotifyTargetsRedirects: redirects })
@@ -33,78 +24,34 @@ function setRedirects(val) {
             var index = sojuNormalRedirectsChecks.indexOf(item);
             if (index !== -1) sojuNormalRedirectsChecks.splice(index, 1);
         }
-    setSojuNormalRedirectsChecks(sojuNormalRedirectsChecks);
+    browser.storage.local.set({ sojuNormalRedirectsChecks })
 
     for (const item of sojuTorRedirectsChecks)
         if (!redirects.soju.normal.includes(item)) {
             var index = sojuTorRedirectsChecks.indexOf(item);
             if (index !== -1) sojuTorRedirectsChecks.splice(index, 1);
         }
-    setSojuTorRedirectsChecks(sojuTorRedirectsChecks);
+    browser.storage.local.set({ sojuTorRedirectsChecks })
 }
 
 let sojuNormalRedirectsChecks;
-const getSojuNormalRedirectsChecks = () => sojuNormalRedirectsChecks;
-function setSojuNormalRedirectsChecks(val) {
-    sojuNormalRedirectsChecks = val;
-    browser.storage.local.set({ sojuNormalRedirectsChecks })
-    console.log("sojuNormalRedirectsChecks: ", val)
-}
-
 let sojuTorRedirectsChecks;
-const getSojuTorRedirectsChecks = () => sojuTorRedirectsChecks;
-function setSojuTorRedirectsChecks(val) {
-    sojuTorRedirectsChecks = val;
-    browser.storage.local.set({ sojuTorRedirectsChecks })
-    console.log("sojuTorRedirectsChecks: ", val)
-}
-
 let sojuNormalCustomRedirects = [];
-const getSojuNormalCustomRedirects = () => sojuNormalCustomRedirects;
-function setSojuNormalCustomRedirects(val) {
-    sojuNormalCustomRedirects = val;
-    browser.storage.local.set({ sojuNormalCustomRedirects })
-    console.log("sojuNormalCustomRedirects: ", val)
-}
-
 let sojuTorCustomRedirects = [];
-const getSojuTorCustomRedirects = () => sojuTorCustomRedirects;
-function setSojuTorCustomRedirects(val) {
-    sojuTorCustomRedirects = val;
-    browser.storage.local.set({ sojuTorCustomRedirects })
-    console.log("sojuTorCustomRedirects: ", val)
-}
-
-let disable;
-const getDisable = () => disable;
-function setDisable(val) {
-    disable = val;
-    browser.storage.local.set({ disableSpotifyTargets: disable })
-}
 
-let protocol;
-const getProtocol = () => protocol;
-function setProtocol(val) {
-    protocol = val;
-    browser.storage.local.set({ spotifyTargetsProtocol: val })
-    console.log("spotifyTargetsProtocol: ", val)
-}
+let disable; // disableSpotifyTargets
 
 function switchInstance(url) {
     let protocolHost = commonHelper.protocolHost(url);
 
     let sojuList = [
         ...redirects.soju.normal,
-        ...redirects.soju.tor,
-        ...sojuNormalCustomRedirects,
-        ...sojuTorCustomRedirects,
+        ...sojuNormalCustomRedirects
     ];
 
     if (!sojuList.includes(protocolHost)) return;
 
-    let instancesList;
-    if (protocol == 'normal') instancesList = [...sojuNormalRedirectsChecks, ...sojuNormalCustomRedirects];
-    else if (protocol == 'tor') instancesList = [...sojuTorRedirectsChecks, ...sojuTorCustomRedirects];
+    let instancesList = [...sojuNormalRedirectsChecks, ...sojuNormalCustomRedirects];
 
     console.log("instancesList", instancesList);
     let index = instancesList.indexOf(protocolHost);
@@ -118,14 +65,11 @@ function switchInstance(url) {
 
 function redirect(url, type, initiator) {
     if (disable) return null;
+    if (type != "main_frame") return null;
     if (initiator && ([...redirects.soju.normal, ...sojuNormalCustomRedirects].includes(initiator.origin) || targets.includes(initiator.host))) return null;
     if (!targets.some(rx => rx.test(url.href))) return null;
 
-    if (type != "main_frame") return null;
-
-    let instancesList;
-    if (protocol == 'normal') instancesList = [...sojuNormalRedirectsChecks, ...sojuNormalCustomRedirects];
-    if (protocol == 'tor') instancesList = [...sojuTorRedirectsChecks, ...sojuTorCustomRedirects];
+    let instancesList = [...sojuNormalRedirectsChecks, ...sojuNormalCustomRedirects];
     if (instancesList.length === 0) return null;
     let randomInstance = commonHelper.getRandomInstance(instancesList);
 
@@ -135,70 +79,42 @@ function redirect(url, type, initiator) {
     return `${randomInstance}${query}`;
 }
 
-async function init() {
-    return new Promise(
-        resolve => {
-            fetch('/instances/data.json').then(response => response.text()).then(data => {
-                let dataJson = JSON.parse(data);
-                browser.storage.local.get(
-                    [
-                        "disableSpotifyTargets",
-                        "spotifyTargetsRedirects",
-
-                        "sojuNormalRedirectsChecks",
-                        "sojuNormalCustomRedirects",
-
-                        "sojuTorRedirectsChecks",
-                        "sojuTorCustomRedirects",
-
-                        "spotifyTargetsProtocol"
-                    ],
-                    r => {
-
-                        disable = r.disableSpotifyTargets ?? true;
+async function initDefaults() {
+    await browser.storage.local.set({
+        disableSpotifyTargets: true,
 
-                        protocol = r.spotifyTargetsProtocol ?? "normal";
+        sojuNormalRedirectsChecks: [...redirects.soju.normal],
+        sojuNormalCustomRedirects: [],
+    })
+}
 
-                        if (r.spotifyTargetsRedirects) redirects = r.spotifyTargetsRedirects;
+async function init() {
+    browser.storage.local.get(
+        [
+            "disableSpotifyTargets",
 
-                        sojuNormalRedirectsChecks = r.sojuNormalRedirectsChecks ?? [...redirects.soju.normal];
-                        sojuNormalCustomRedirects = r.sojuNormalCustomRedirects ?? [];
+            "sojuNormalRedirectsChecks",
+            "sojuNormalCustomRedirects",
 
-                        sojuTorRedirectsChecks = r.sojuTorRedirectsChecks ?? [...redirects.soju.tor];
-                        sojuTorCustomRedirects = r.sojuTorCustomRedirects ?? [];
+            "sojuTorRedirectsChecks",
+            "sojuTorCustomRedirects",
+        ],
+        r => {
+            disable = r.disableSpotifyTargets;
 
-                        resolve();
-                    }
-                )
-            });
+            sojuNormalRedirectsChecks = r.sojuNormalRedirectsChecks;
+            sojuNormalCustomRedirects = r.sojuNormalCustomRedirects;
         }
-    );
+    )
 }
 
 export default {
-
     getRedirects,
-    getCustomRedirects,
     setRedirects,
 
-    getDisable,
-    setDisable,
-
-    getProtocol,
-    setProtocol,
-
-    getSojuNormalRedirectsChecks,
-    setSojuNormalRedirectsChecks,
-    getSojuTorRedirectsChecks,
-    setSojuTorRedirectsChecks,
-
-    getSojuTorCustomRedirects,
-    setSojuTorCustomRedirects,
-    getSojuNormalCustomRedirects,
-    setSojuNormalCustomRedirects,
-
     switchInstance,
 
     redirect,
+    initDefaults,
     init,
 };
diff --git a/src/assets/javascripts/helpers/tiktok.js b/src/assets/javascripts/helpers/tiktok.js
index fab6348f..4945f9e3 100644
--- a/src/assets/javascripts/helpers/tiktok.js
+++ b/src/assets/javascripts/helpers/tiktok.js
@@ -14,14 +14,6 @@ let redirects = {
 }
 
 const getRedirects = () => redirects;
-const getCustomRedirects = function () {
-    return {
-        "proxiTok": {
-            "normal": [...proxiTokNormalRedirectsChecks, ...proxiTokNormalCustomRedirects]
-        },
-    };
-};
-
 function setRedirects(val) {
     redirects.proxiTok = val;
     browser.storage.local.set({ tiktokRedirects: redirects })
@@ -31,55 +23,22 @@ function setRedirects(val) {
             var index = proxiTokNormalRedirectsChecks.indexOf(item);
             if (index !== -1) proxiTokNormalRedirectsChecks.splice(index, 1);
         }
-    setProxiTokNormalRedirectsChecks(proxiTokNormalRedirectsChecks);
+    browser.storage.local.set({ proxiTokNormalRedirectsChecks })
 
     for (const item of proxiTokTorRedirectsChecks)
         if (!redirects.proxiTok.normal.includes(item)) {
             var index = proxiTokTorRedirectsChecks.indexOf(item);
             if (index !== -1) proxiTokTorRedirectsChecks.splice(index, 1);
         }
-    setProxiTokTorRedirectsChecks(proxiTokTorRedirectsChecks);
+    browser.storage.local.set({ proxiTokTorRedirectsChecks })
 }
 
 let proxiTokNormalRedirectsChecks;
-const getProxiTokNormalRedirectsChecks = () => proxiTokNormalRedirectsChecks;
-function setProxiTokNormalRedirectsChecks(val) {
-    proxiTokNormalRedirectsChecks = val;
-    browser.storage.local.set({ proxiTokNormalRedirectsChecks })
-    console.log("proxiTokNormalRedirectsChecks: ", val)
-}
-
 let proxiTokTorRedirectsChecks;
-const getProxiTokTorRedirectsChecks = () => proxiTokTorRedirectsChecks;
-function setProxiTokTorRedirectsChecks(val) {
-    proxiTokTorRedirectsChecks = val;
-    browser.storage.local.set({ proxiTokTorRedirectsChecks })
-    console.log("proxiTokTorRedirectsChecks: ", val)
-}
-
 let proxiTokNormalCustomRedirects = [];
-const getProxiTokNormalCustomRedirects = () => proxiTokNormalCustomRedirects;
-function setProxiTokNormalCustomRedirects(val) {
-    proxiTokNormalCustomRedirects = val;
-    browser.storage.local.set({ proxiTokNormalCustomRedirects })
-    console.log("proxiTokNormalCustomRedirects: ", val)
-}
-
 let proxiTokTorCustomRedirects = [];
-const getProxiTokTorCustomRedirects = () => proxiTokTorCustomRedirects;
-function setProxiTokTorCustomRedirects(val) {
-    proxiTokTorCustomRedirects = val;
-    browser.storage.local.set({ proxiTokTorCustomRedirects })
-    console.log("proxiTokTorCustomRedirects: ", val)
-}
-
-let disable;
-const getDisable = () => disable;
-function setDisable(val) {
-    disable = val;
-    browser.storage.local.set({ disableTiktok: disable })
-}
 
+let disable; // disableTiktok
 let protocol;
 let enableCustom;
 
@@ -148,9 +107,7 @@ async function initDefaults() {
                 disableTiktok: false,
                 tiktokProtocol: "normal",
 
-                tiktokRedirects: {
-                    'proxiTok': redirects.proxiTok,
-                },
+                tiktokRedirects: redirects,
 
                 proxiTokNormalRedirectsChecks: [...redirects.proxiTok.normal],
                 proxiTokNormalCustomRedirects: [],
@@ -170,67 +127,49 @@ async function initDefaults() {
 }
 
 async function init() {
-    return new Promise(resolve => {
-        browser.storage.local.get(
-            [
-                "disableTiktok",
-                "tiktokProtocol",
-                "tiktokRedirects",
-
-                "proxiTokNormalRedirectsChecks",
-                "proxiTokNormalCustomRedirects",
+    browser.storage.local.get(
+        [
+            "disableTiktok",
+            "tiktokProtocol",
+            "tiktokRedirects",
 
-                "proxiTokTorRedirectsChecks",
-                "proxiTokTorCustomRedirects",
+            "proxiTokNormalRedirectsChecks",
+            "proxiTokNormalCustomRedirects",
 
-                "enableTiktokCustomSettings",
+            "proxiTokTorRedirectsChecks",
+            "proxiTokTorCustomRedirects",
 
-                "proxiTokTheme",
-                "proxiTokApiLegacy",
-            ],
-            r => {
-                disable = r.disableTiktok;
-                protocol = r.tiktokProtocol;
-                redirects = r.tiktokRedirects;
+            "enableTiktokCustomSettings",
 
-                proxiTokNormalRedirectsChecks = r.proxiTokNormalRedirectsChecks;
-                proxiTokNormalCustomRedirects = r.proxiTokNormalCustomRedirects;
+            "proxiTokTheme",
+            "proxiTokApiLegacy",
+        ],
+        r => {
+            disable = r.disableTiktok;
+            protocol = r.tiktokProtocol;
+            redirects = r.tiktokRedirects;
 
-                proxiTokTorRedirectsChecks = r.proxiTokTorRedirectsChecks;
-                proxiTokTorCustomRedirects = r.proxiTokTorCustomRedirects;
+            proxiTokNormalRedirectsChecks = r.proxiTokNormalRedirectsChecks;
+            proxiTokNormalCustomRedirects = r.proxiTokNormalCustomRedirects;
 
-                enableCustom = r.enableTiktokCustomSettings;
+            proxiTokTorRedirectsChecks = r.proxiTokTorRedirectsChecks;
+            proxiTokTorCustomRedirects = r.proxiTokTorCustomRedirects;
 
-                theme = r.proxiTokTheme;
-                api_legacy = r.proxiTokApiLegacy;
+            enableCustom = r.enableTiktokCustomSettings;
 
-                resolve();
-            }
-        )
-    })
+            theme = r.proxiTokTheme;
+            api_legacy = r.proxiTokApiLegacy;
+        }
+    )
 }
 
 export default {
 
     getRedirects,
-    getCustomRedirects,
     setRedirects,
 
-    getDisable,
-    setDisable,
-
     reverse,
 
-    getProxiTokNormalRedirectsChecks,
-    setProxiTokNormalRedirectsChecks,
-    getProxiTokTorRedirectsChecks,
-    setProxiTokTorRedirectsChecks,
-
-    getProxiTokTorCustomRedirects,
-    setProxiTokTorCustomRedirects,
-    getProxiTokNormalCustomRedirects,
-    setProxiTokNormalCustomRedirects,
-
     initProxiTokCookies,
 
     redirect,
diff --git a/src/assets/javascripts/helpers/translate/translate.js b/src/assets/javascripts/helpers/translate/translate.js
index 9155a763..4c4cee79 100644
--- a/src/assets/javascripts/helpers/translate/translate.js
+++ b/src/assets/javascripts/helpers/translate/translate.js
@@ -11,27 +11,13 @@ let redirects = {
     "normal": [],
     "tor": []
   },
-
   "lingva": {
     "normal": [],
     "tor": []
   }
-
 };
 
 const getRedirects = () => redirects;
-const getCustomRedirects = function () {
-  return {
-    "simplyTranslate": {
-      "normal": [...simplyTranslateNormalRedirectsChecks, ...simplyTranslateNormalCustomRedirects],
-      "tor": [...simplyTranslateTorRedirectsChecks, ...simplyTranslateTorCustomRedirects]
-    },
-    "lingva": {
-      "normal": [...lingvaNormalRedirectsChecks, ...lingvaNormalCustomRedirects],
-      "tor": [...lingvaTorRedirectsChecks, ...lingvaTorCustomRedirects]
-    }
-  };
-};
 
 function setSimplyTranslateRedirects(val) {
   redirects.simplyTranslate = val;
@@ -42,47 +28,20 @@ function setSimplyTranslateRedirects(val) {
       var index = simplyTranslateNormalRedirectsChecks.indexOf(item);
       if (index !== -1) simplyTranslateNormalRedirectsChecks.splice(index, 1);
     }
-  setSimplyTranslateNormalRedirectsChecks(simplyTranslateNormalRedirectsChecks);
+  browser.storage.local.set({ simplyTranslateNormalRedirectsChecks })
 
   for (const item of simplyTranslateTorRedirectsChecks)
     if (!redirects.simplyTranslate.normal.includes(item)) {
       var index = simplyTranslateTorRedirectsChecks.indexOf(item);
       if (index !== -1) simplyTranslateTorRedirectsChecks.splice(index, 1);
     }
-  setSimplyTranslateTorRedirectsChecks(simplyTranslateTorRedirectsChecks);
+  browser.storage.local.set({ simplyTranslateTorRedirectsChecks })
 }
 
 let simplyTranslateNormalRedirectsChecks;
-const getSimplyTranslateNormalRedirectsChecks = () => simplyTranslateNormalRedirectsChecks;
-function setSimplyTranslateNormalRedirectsChecks(val) {
-  simplyTranslateNormalRedirectsChecks = val;
-  browser.storage.local.set({ simplyTranslateNormalRedirectsChecks })
-  console.log("simplyTranslateNormalRedirectsChecks: ", val)
-}
-
 let simplyTranslateTorRedirectsChecks;
-const getSimplyTranslateTorRedirectsChecks = () => simplyTranslateTorRedirectsChecks;
-function setSimplyTranslateTorRedirectsChecks(val) {
-  simplyTranslateTorRedirectsChecks = val;
-  browser.storage.local.set({ simplyTranslateTorRedirectsChecks })
-  console.log("simplyTranslateTorRedirectsChecks: ", val)
-}
-
 let simplyTranslateNormalCustomRedirects = [];
-const getSimplyTranslateNormalCustomRedirects = () => simplyTranslateNormalCustomRedirects;
-function setSimplyTranslateNormalCustomRedirects(val) {
-  simplyTranslateNormalCustomRedirects = val;
-  browser.storage.local.set({ simplyTranslateNormalCustomRedirects })
-  console.log("simplyTranslateNormalCustomRedirects: ", val)
-}
-
 let simplyTranslateTorCustomRedirects = [];
-const getSimplyTranslateTorCustomRedirects = () => simplyTranslateTorCustomRedirects;
-function setSimplyTranslateTorCustomRedirects(val) {
-  simplyTranslateTorCustomRedirects = val;
-  browser.storage.local.set({ simplyTranslateTorCustomRedirects })
-  console.log("simplyTranslateTorCustomRedirects: ", val)
-}
 
 function setLingvaRedirects(val) {
   redirects.lingva = val;
@@ -93,95 +52,31 @@ function setLingvaRedirects(val) {
       var index = lingvaNormalRedirectsChecks.indexOf(item);
       if (index !== -1) lingvaNormalRedirectsChecks.splice(index, 1);
     }
-  setLingvaNormalRedirectsChecks(lingvaNormalRedirectsChecks);
+  browser.storage.local.set({ lingvaNormalRedirectsChecks })
 
   for (const item of lingvaTorRedirectsChecks)
     if (!redirects.lingva.normal.includes(item)) {
       var index = lingvaTorRedirectsChecks.indexOf(item);
       if (index !== -1) lingvaTorRedirectsChecks.splice(index, 1);
     }
-  setLingvaTorRedirectsChecks(lingvaTorRedirectsChecks);
+  browser.storage.local.set({ lingvaTorRedirectsChecks })
 }
 
 let lingvaNormalRedirectsChecks;
-const getLingvaNormalRedirectsChecks = () => lingvaNormalRedirectsChecks;
-function setLingvaNormalRedirectsChecks(val) {
-  lingvaNormalRedirectsChecks = val;
-  browser.storage.local.set({ lingvaNormalRedirectsChecks })
-  console.log("lingvaNormalRedirectsChecks: ", val)
-}
-
 let lingvaTorRedirectsChecks;
-const getLingvaTorRedirectsChecks = () => lingvaTorRedirectsChecks;
-function setLingvaTorRedirectsChecks(val) {
-  lingvaTorRedirectsChecks = val;
-  browser.storage.local.set({ lingvaTorRedirectsChecks })
-  console.log("lingvaTorRedirectsChecks: ", val)
-}
-
 let lingvaNormalCustomRedirects = [];
-const getLingvaNormalCustomRedirects = () => lingvaNormalCustomRedirects;
-function setLingvaNormalCustomRedirects(val) {
-  lingvaNormalCustomRedirects = val;
-  browser.storage.local.set({ lingvaNormalCustomRedirects })
-  console.log("lingvaNormalCustomRedirects: ", val)
-}
-
 let lingvaTorCustomRedirects = [];
-const getLingvaTorCustomRedirects = () => lingvaTorCustomRedirects;
-function setLingvaTorCustomRedirects(val) {
-  lingvaTorCustomRedirects = val;
-  browser.storage.local.set({ lingvaTorCustomRedirects })
-  console.log("lingvaTorCustomRedirects: ", val)
-}
 
-let disable;
-const getDisable = () => disable;
-function setDisable(val) {
-  disable = val;
-  browser.storage.local.set({ translateDisable: disable })
-  console.log("disable: ", disable)
-}
 
-let frontend;
-const getFrontend = () => frontend;
-function setFrontend(val) {
-  frontend = val;
-  browser.storage.local.set({ translateFrontend: frontend })
-  console.log("translateFrontend: ", frontend)
-}
+let disable; // translateDisable
+let frontend; // translateFrontend
+let protocol; // translateProtocol
 
-let protocol;
-const getProtocol = () => protocol;
-function setProtocol(val) {
-  protocol = val;
-  browser.storage.local.set({ translateProtocol: val })
-  console.log("translateProtocol: ", val)
-}
+let from; // translateFrom
+let to; // translateTo
 
-let from;
-const getFrom = () => from;
-function setFrom(val) {
-  from = val;
-  browser.storage.local.set({ translateFrom: from })
-  console.log("from: ", from)
-}
-
-let to;
-const getTo = () => to;
-function setTo(val) {
-  to = val;
-  browser.storage.local.set({ translateTo: to })
-  console.log("to: ", to)
-}
 
 let simplyTranslateEngine;
-const getSimplyTranslateEngine = () => simplyTranslateEngine;
-function setSimplyTranslateEngine(val) {
-  simplyTranslateEngine = val;
-  browser.storage.local.set({ simplyTranslateEngine: val })
-  console.log("simplyTranslateEngine: ", val)
-}
 
 function isTranslateRedirects(url, type, frontend) {
   let protocolHost = commonHelper.protocolHost(url);
@@ -228,7 +123,6 @@ function initLingvaLocalStorage(tabId) {
 }
 
 function redirect(url) {
-
   if (disable) return;
   if (!targets.some(rx => rx.test(url.href))) return;
 
@@ -308,109 +202,96 @@ function switchInstance(url) {
   return `${randomInstance}${url.pathname}${url.search}`;
 }
 
+async function initDefaults() {
+
+  fetch('/instances/data.json').then(response => response.text()).then(async data => {
+    let dataJson = JSON.parse(data);
+    redirects.simplyTranslate = dataJson.simplyTranslate;
+    redirects.lingva = dataJson.lingva;
+    await browser.storage.local.set({
+      translateDisable: false,
+      translateFrontend: "simplyTranslate",
+      translateProtocol: 'normal',
+      translateRedirects: redirects,
+
+      simplyTranslateNormalRedirectsChecks: [...redirects.simplyTranslate.normal],
+      simplyTranslateNormalCustomRedirects: [],
+      simplyTranslateTorRedirectsChecks: [...redirects.simplyTranslate.tor],
+      simplyTranslateTorCustomRedirects: [],
+
+      lingvaNormalRedirectsChecks: [...redirects.lingva.normal],
+      lingvaNormalCustomRedirects: [],
+      lingvaTorRedirectsChecks: [...redirects.lingva.tor],
+      lingvaTorCustomRedirects: [],
+
+      translateFrom: "auto",
+      translateTo: 'en',
+      simplyTranslateEngine: 'google',
+    })
+  })
+}
+
 async function init() {
-  return new Promise((resolve) => {
-    fetch('/instances/data.json').then(response => response.text()).then(data => {
-      let dataJson = JSON.parse(data);
-      browser.storage.local.get(
-        [
-          "translateDisable",
-          "translateFrontend",
-          "translateProtocol",
-          "translateRedirects",
-
-          "simplyTranslateNormalRedirectsChecks",
-          "simplyTranslateNormalCustomRedirects",
-          "simplyTranslateTorRedirectsChecks",
-          "simplyTranslateTorCustomRedirects",
-
-          "lingvaNormalRedirectsChecks",
-          "lingvaNormalCustomRedirects",
-          "lingvaTorRedirectsChecks",
-          "lingvaTorCustomRedirects",
-
-          "translateFrom",
-          "translateTo",
-          "simplyTranslateEngine",
-        ],
-        (result) => {
-          disable = result.translateDisable ?? false;
-          frontend = result.translateFrontend ?? "simplyTranslate";
-          protocol = result.translateProtocol ?? 'normal';
-
-          from = result.translateFrom ?? "auto";
-          to = result.translateTo ?? 'en';
-          simplyTranslateEngine = result.simplyTranslateEngine ?? 'google';
-
-          redirects.simplyTranslate = dataJson.simplyTranslate;
-          redirects.lingva = dataJson.lingva;
-          if (result.translateRedirects) redirects = result.translateRedirects;
-
-          simplyTranslateNormalRedirectsChecks = result.simplyTranslateNormalRedirectsChecks ?? [...redirects.simplyTranslate.normal];
-          simplyTranslateNormalCustomRedirects = result.simplyTranslateNormalCustomRedirects ?? [];
-
-          simplyTranslateTorRedirectsChecks = result.simplyTranslateTorRedirectsChecks ?? [...redirects.simplyTranslate.tor];
-          simplyTranslateTorCustomRedirects = result.simplyTranslateTorCustomRedirects ?? [];
-
-          lingvaNormalRedirectsChecks = result.lingvaNormalRedirectsChecks ?? [...redirects.lingva.normal];
-          lingvaNormalCustomRedirects = result.lingvaNormalCustomRedirects ?? [];
-
-          lingvaTorRedirectsChecks = result.lingvaTorRedirectsChecks ?? [...redirects.lingva.tor];
-          lingvaTorCustomRedirects = result.lingvaTorCustomRedirects ?? [];
-
-          resolve();
-        });
-    });
+  fetch('/instances/data.json').then(response => response.text()).then(data => {
+    let dataJson = JSON.parse(data);
+    browser.storage.local.get(
+      [
+        "translateDisable",
+        "translateFrontend",
+        "translateProtocol",
+        "translateRedirects",
+
+        "simplyTranslateNormalRedirectsChecks",
+        "simplyTranslateNormalCustomRedirects",
+        "simplyTranslateTorRedirectsChecks",
+        "simplyTranslateTorCustomRedirects",
+
+        "lingvaNormalRedirectsChecks",
+        "lingvaNormalCustomRedirects",
+        "lingvaTorRedirectsChecks",
+        "lingvaTorCustomRedirects",
+
+        "translateFrom",
+        "translateTo",
+        "simplyTranslateEngine",
+      ],
+      result => {
+        disable = result.translateDisable;
+        frontend = result.translateFrontend;
+        protocol = result.translateProtocol;
+
+        from = result.translateFrom;
+        to = result.translateTo;
+        simplyTranslateEngine = result.simplyTranslateEngine;
+
+        redirects = result.translateRedirects;
+
+        simplyTranslateNormalRedirectsChecks = result.simplyTranslateNormalRedirectsChecks;
+        simplyTranslateNormalCustomRedirects = result.simplyTranslateNormalCustomRedirects;
+
+        simplyTranslateTorRedirectsChecks = result.simplyTranslateTorRedirectsChecks;
+        simplyTranslateTorCustomRedirects = result.simplyTranslateTorCustomRedirects;
+
+        lingvaNormalRedirectsChecks = result.lingvaNormalRedirectsChecks;
+        lingvaNormalCustomRedirects = result.lingvaNormalCustomRedirects;
+
+        lingvaTorRedirectsChecks = result.lingvaTorRedirectsChecks;
+        lingvaTorCustomRedirects = result.lingvaTorCustomRedirects;
+      });
   });
 }
 
 export default {
   getRedirects,
-  getCustomRedirects,
-  setSimplyTranslateRedirects,
-  setLingvaRedirects,
-
-  getDisable,
-  setDisable,
-
-  getFrontend,
-  setFrontend,
-
-  getProtocol,
-  setProtocol,
-
-  getFrom,
-  setFrom,
-  getTo,
-  setTo,
-
-  getSimplyTranslateEngine,
-  setSimplyTranslateEngine,
-
-  getSimplyTranslateNormalRedirectsChecks,
-  setSimplyTranslateNormalRedirectsChecks,
-  getSimplyTranslateTorRedirectsChecks,
-  setSimplyTranslateTorRedirectsChecks,
-
-  getSimplyTranslateNormalCustomRedirects,
-  setSimplyTranslateNormalCustomRedirects,
-  getSimplyTranslateTorCustomRedirects,
-  setSimplyTranslateTorCustomRedirects,
-
-  getLingvaNormalRedirectsChecks,
-  setLingvaNormalRedirectsChecks,
-  getLingvaTorRedirectsChecks,
-  setLingvaTorRedirectsChecks,
-
-  getLingvaNormalCustomRedirects,
-  setLingvaNormalCustomRedirects,
-  getLingvaTorCustomRedirects,
-  setLingvaTorCustomRedirects,
 
   isTranslateRedirects,
   initLingvaLocalStorage,
 
+  setSimplyTranslateRedirects,
+  setLingvaRedirects,
+
   redirect,
+  initDefaults,
   init,
   switchInstance,
 };
diff --git a/src/assets/javascripts/helpers/twitter.js b/src/assets/javascripts/helpers/twitter.js
index 6ac23d40..250b9050 100644
--- a/src/assets/javascripts/helpers/twitter.js
+++ b/src/assets/javascripts/helpers/twitter.js
@@ -15,17 +15,8 @@ let redirects = {
     "tor": []
   },
 };
-const getRedirects = () => redirects;
-
-function getCustomRedirects() {
-  return {
-    "nitter": {
-      "normal": [...nitterNormalRedirectsChecks, ...nitterNormalCustomRedirects],
-      "tor": [...nitterTorRedirectsChecks, ...nitterTorCustomRedirects]
-    },
-  };
-};
 
+const getRedirects = () => redirects;
 function setRedirects(val) {
   redirects.nitter = val;
   browser.storage.local.set({ twitterRedirects: redirects })
@@ -35,133 +26,44 @@ function setRedirects(val) {
       var index = nitterNormalRedirectsChecks.indexOf(item);
       if (index !== -1) nitterNormalRedirectsChecks.splice(index, 1);
     }
-  setNitterNormalRedirectsChecks(nitterNormalRedirectsChecks);
+  browser.storage.local.set({ nitterNormalRedirectsChecks })
 
   for (const item of nitterTorRedirectsChecks)
     if (!redirects.nitter.tor.includes(item)) {
       var index = nitterTorRedirectsChecks.indexOf(item);
       if (index !== -1) nitterTorRedirectsChecks.splice(index, 1);
     }
-  setNitterTorRedirectsChecks(nitterTorRedirectsChecks);
+  browser.storage.local.set({ nitterTorRedirectsChecks })
 }
 
 let nitterNormalRedirectsChecks;
-const getNitterNormalRedirectsChecks = () => nitterNormalRedirectsChecks;
-function setNitterNormalRedirectsChecks(val) {
-  nitterNormalRedirectsChecks = val;
-  browser.storage.local.set({ nitterNormalRedirectsChecks })
-  console.log("nitterNormalRedirectsChecks: ", val)
-}
-
 let nitterNormalCustomRedirects = [];
-const getNitterNormalCustomRedirects = () => nitterNormalCustomRedirects;
-function setNitterNormalCustomRedirects(val) {
-  nitterNormalCustomRedirects = val;
-  browser.storage.local.set({ nitterNormalCustomRedirects })
-  console.log("nitterNormalCustomRedirects: ", val)
-}
-
 let nitterTorRedirectsChecks;
-const getNitterTorRedirectsChecks = () => nitterTorRedirectsChecks;
-function setNitterTorRedirectsChecks(val) {
-  nitterTorRedirectsChecks = val;
-  browser.storage.local.set({ nitterTorRedirectsChecks })
-  console.log("nitterTorRedirectsChecks: ", val)
-}
-
 let nitterTorCustomRedirects = [];
-const getNitterTorCustomRedirects = () => nitterTorCustomRedirects;
-function setNitterTorCustomRedirects(val) {
-  nitterTorCustomRedirects = val;
-  browser.storage.local.set({ nitterTorCustomRedirects })
-  console.log("nitterTorCustomRedirects: ", val)
-}
-
-let disable;
-const getDisable = () => disable;
-function setDisable(val) {
-  disable = val;
-  browser.storage.local.set({ disableTwitter: disable })
-}
-
-let enableCustomSettings;
-const getEnableCustomSettings = () => enableCustomSettings;
-function setEnableCustomSettings(val) {
-  enableCustomSettings = val;
-  browser.storage.local.set({ enableTwitterCustomSettings: enableCustomSettings })
-  console.log("enableTwitterCustomSettings: ", enableCustomSettings)
-}
-
-let protocol;
-const getProtocol = () => protocol;
-function setProtocol(val) {
-  protocol = val;
-  browser.storage.local.set({ twitterProtocol: val })
-  console.log("twitterProtocol: ", val)
-}
 
-let bypassWatchOnTwitter;
-const getBypassWatchOnTwitter = () => bypassWatchOnTwitter;
-function setBypassWatchOnTwitter(val) {
-  bypassWatchOnTwitter = val;
-  browser.storage.local.set({ bypassWatchOnTwitter })
-  console.log("bypassWatchOnTwitter: ", bypassWatchOnTwitter)
-}
+let disable; // disableTwitter
+let enableCustomSettings; // enableTwitterCustomSettings
 
+let protocol; // twitterProtocol
+let bypassWatchOnTwitter; // bypassWatchOnTwitter
 let alwaysUsePreferred;
 
-let theme;
-const getTheme = () => theme;
-
-let infiniteScroll;
-const getInfiniteScroll = () => infiniteScroll;
-
-let stickyProfile;
-const getStickyProfile = () => stickyProfile;
-
-let bidiSupport;
-const getBidiSupport = () => bidiSupport;
-
-let hideTweetStats;
-const getHideTweetStats = () => hideTweetStats;
-
-let hideBanner;
-const getHideBanner = () => hideBanner;
-
-let hidePins;
-const getHidePins = () => hidePins;
+let
+  theme,
+  infiniteScroll,
+  stickyProfile,
+  bidiSupport,
+  hideTweetStats,
+  hideBanner,
+  hidePins,
+  hideReplies,
+  squareAvatars,
+  mp4Playback,
+  hlsPlayback,
+  proxyVideos,
+  muteVideos,
+  autoplayGifs;
 
-let hideReplies;
-const getHideReplies = () => hideReplies;
-
-let squareAvatars;
-const getSquareAvatars = () => squareAvatars;
-
-let mp4Playback;
-const getMp4Playback = () => mp4Playback;
-
-let hlsPlayback;
-const getHlsPlayback = () => hlsPlayback;
-
-let proxyVideos;
-const getProxyVideos = () => proxyVideos;
-
-let muteVideos;
-const getMuteVideos = () => muteVideos;
-
-let autoplayGifs;
-const getAutoplayGifs = () => autoplayGifs;
-
-
-
-async function setSettings(val) {
-  return new Promise(
-    resolve => {
-      browser.storage.local.set(val).then(resolve);
-    }
-  )
-
-}
 
 function redirect(url, initiator) {
   let protocolHost = commonHelper.protocolHost(url);
@@ -312,138 +214,127 @@ function initNitterCookies() {
   }
 }
 
+
+async function initDefaults() {
+  await fetch('/instances/data.json').then(response => response.text()).then(async data => {
+    let dataJson = JSON.parse(data);
+    redirects.nitter = dataJson.nitter;
+    await browser.storage.local.set({
+      disableTwitter: false,
+
+      enableTwitterCustomSettings: false,
+
+      twitterRedirects: redirects,
+      bypassWatchOnTwitter: true,
+
+      nitterNormalRedirectsChecks: [...redirects.nitter.normal],
+      nitterNormalCustomRedirects: [],
+
+      nitterTorRedirectsChecks: [...redirects.nitter.tor],
+      nitterTorCustomRedirects: [],
+
+      twitterProtocol: "normal",
+      alwaysUsePreferred: false,
+
+      nitterTheme: 'Auto',
+      nitterInfiniteScroll: false,
+      nitterStickyProfile: true,
+      nitterBidiSupport: false,
+      nitterHideTweetStats: false,
+      nitterHideBanner: false,
+      nitterHidePins: false,
+      nitterHideReplies: false,
+      nitterSquareAvatars: false,
+      nitterMp4Playback: true,
+      nitterHlsPlayback: false,
+      nitterProxyVideos: true,
+      nitterMuteVideos: false,
+      nitterAutoplayGifs: true,
+    })
+  })
+}
+
 async function init() {
-  return new Promise(resolve => {
-    fetch('/instances/data.json').then(response => response.text()).then(data => {
-      let dataJson = JSON.parse(data);
-      browser.storage.local.get(
-        [
-          "disableTwitter",
-
-          "enableTwitterCustomSettings",
-
-          "twitterRedirects",
-          "bypassWatchOnTwitter",
-
-          "nitterNormalRedirectsChecks",
-          "nitterNormalCustomRedirects",
-
-          "nitterTorRedirectsChecks",
-          "nitterTorCustomRedirects",
-
-          "twitterProtocol",
-          "alwaysUsePreferred",
-
-          "nitterTheme",
-          "nitterInfiniteScroll",
-          "nitterStickyProfile",
-          "nitterBidiSupport",
-          "nitterHideTweetStats",
-          "nitterHideBanner",
-          "nitterHidePins",
-          "nitterHideReplies",
-          "nitterSquareAvatars",
-          "nitterMp4Playback",
-          "nitterHlsPlayback",
-          "nitterProxyVideos",
-          "nitterMuteVideos",
-          "nitterAutoplayGifs",
-        ],
-        r => {
-          disable = r.disableTwitter ?? false;
-          enableCustomSettings = r.enableTwitterCustomSettings ?? false;
-
-          protocol = r.twitterProtocol ?? "normal";
-
-          bypassWatchOnTwitter = r.bypassWatchOnTwitter ?? true;
-
-          alwaysUsePreferred = r.alwaysUsePreferred ?? false;
-
-          redirects.nitter = dataJson.nitter;
-          if (r.twitterRedirects) redirects = r.twitterRedirects;
-
-          nitterNormalRedirectsChecks = r.nitterNormalRedirectsChecks ?? [...redirects.nitter.normal];
-          nitterNormalCustomRedirects = r.nitterNormalCustomRedirects ?? [];
-
-          nitterTorRedirectsChecks = r.nitterTorRedirectsChecks ?? [...redirects.nitter.tor];
-          nitterTorCustomRedirects = r.nitterTorCustomRedirects ?? [];
-
-          theme = r.nitterTheme ?? 'Auto';
-          infiniteScroll = r.nitterInfiniteScroll ?? false;
-          stickyProfile = r.nitterStickyProfile ?? true;
-          bidiSupport = r.nitterBidiSupport ?? false;
-          hideTweetStats = r.nitterHideTweetStats ?? false;
-          hideBanner = r.nitterHideBanner ?? false;
-          hidePins = r.nitterHidePins ?? false;
-          hideReplies = r.nitterHideReplies ?? false;
-          squareAvatars = r.nitterSquareAvatars ?? false;
-          mp4Playback = r.nitterMp4Playback ?? true;
-          hlsPlayback = r.nitterHlsPlayback ?? false;
-          proxyVideos = r.nitterProxyVideos ?? true;
-          muteVideos = r.nitterMuteVideos ?? false;
-          autoplayGifs = r.nitterAutoplayGifs ?? true;
-
-          resolve();
-        }
-      );
-    });
-  });
+  browser.storage.local.get(
+    [
+      "disableTwitter",
+
+      "enableTwitterCustomSettings",
+
+      "twitterRedirects",
+      "bypassWatchOnTwitter",
+
+      "nitterNormalRedirectsChecks",
+      "nitterNormalCustomRedirects",
+
+      "nitterTorRedirectsChecks",
+      "nitterTorCustomRedirects",
+
+      "twitterProtocol",
+      "alwaysUsePreferred",
+
+      "nitterTheme",
+      "nitterInfiniteScroll",
+      "nitterStickyProfile",
+      "nitterBidiSupport",
+      "nitterHideTweetStats",
+      "nitterHideBanner",
+      "nitterHidePins",
+      "nitterHideReplies",
+      "nitterSquareAvatars",
+      "nitterMp4Playback",
+      "nitterHlsPlayback",
+      "nitterProxyVideos",
+      "nitterMuteVideos",
+      "nitterAutoplayGifs",
+    ],
+    r => {
+      disable = r.disableTwitter;
+      enableCustomSettings = r.enableTwitterCustomSettings;
+
+      protocol = r.twitterProtocol;
+
+      bypassWatchOnTwitter = r.bypassWatchOnTwitter;
+
+      alwaysUsePreferred = r.alwaysUsePreferred;
+
+      redirects = r.twitterRedirects;
+
+      nitterNormalRedirectsChecks = r.nitterNormalRedirectsChecks;
+      nitterNormalCustomRedirects = r.nitterNormalCustomRedirects;
+
+      nitterTorRedirectsChecks = r.nitterTorRedirectsChecks;
+      nitterTorCustomRedirects = r.nitterTorCustomRedirects;
+
+      theme = r.nitterTheme;
+      infiniteScroll = r.nitterInfiniteScroll;
+      stickyProfile = r.nitterStickyProfile;
+      bidiSupport = r.nitterBidiSupport;
+      hideTweetStats = r.nitterHideTweetStats;
+      hideBanner = r.nitterHideBanner;
+      hidePins = r.nitterHidePins;
+      hideReplies = r.nitterHideReplies;
+      squareAvatars = r.nitterSquareAvatars;
+      mp4Playback = r.nitterMp4Playback;
+      hlsPlayback = r.nitterHlsPlayback;
+      proxyVideos = r.nitterProxyVideos;
+      muteVideos = r.nitterMuteVideos;
+      autoplayGifs = r.nitterAutoplayGifs;
+    }
+  );
 }
 
 export default {
   getRedirects,
-  getCustomRedirects,
   setRedirects,
-
-  getDisable,
-  setDisable,
-
   reverse,
-
-  getEnableCustomSettings,
-  setEnableCustomSettings,
-
-  getNitterNormalRedirectsChecks,
-  setNitterNormalRedirectsChecks,
-
-  getNitterNormalCustomRedirects,
-  setNitterNormalCustomRedirects,
-
-  getNitterTorRedirectsChecks,
-  setNitterTorRedirectsChecks,
-
-  getNitterTorCustomRedirects,
-  setNitterTorCustomRedirects,
-
-  getBypassWatchOnTwitter,
-  setBypassWatchOnTwitter,
-
   removeXFrameOptions,
 
-  getProtocol,
-  setProtocol,
-
   isNitter,
   initNitterCookies,
 
-  getTheme,
-  getInfiniteScroll,
-  getStickyProfile,
-  getBidiSupport,
-  getHideTweetStats,
-  getHideBanner,
-  getHidePins,
-  getHideReplies,
-  getSquareAvatars,
-  getMp4Playback,
-  getHlsPlayback,
-  getProxyVideos,
-  getMuteVideos,
-  getAutoplayGifs,
-
-  setSettings,
-
   redirect,
+  initDefaults,
   init,
   switchInstance,
 };
diff --git a/src/assets/javascripts/helpers/wikipedia.js b/src/assets/javascripts/helpers/wikipedia.js
index c06fff92..04ba51b9 100644
--- a/src/assets/javascripts/helpers/wikipedia.js
+++ b/src/assets/javascripts/helpers/wikipedia.js
@@ -12,15 +12,6 @@ let redirects = {
   }
 };
 const getRedirects = () => redirects;
-const getCustomRedirects = function () {
-  return {
-    "wikiless": {
-      "normal": [...wikilessNormalRedirectsChecks, ...wikilessNormalCustomRedirects],
-      "tor": [...wikilessTorRedirectsChecks, ...wikilessTorCustomRedirects],
-      "i2p": [...wikilessI2pRedirectsChecks, ...wikilessI2pCustomRedirects]
-    },
-  };
-};
 
 function setRedirects(val) {
   redirects.wikiless = val;
@@ -31,88 +22,37 @@ function setRedirects(val) {
       var index = wikilessNormalRedirectsChecks.indexOf(item);
       if (index !== -1) wikilessNormalRedirectsChecks.splice(index, 1);
     }
-  setWikilessNormalRedirectsChecks(wikilessNormalRedirectsChecks);
+  browser.storage.local.set({ wikilessNormalRedirectsChecks })
 
   for (const item of wikilessTorRedirectsChecks)
     if (!redirects.wikiless.tor.includes(item)) {
       var index = wikilessTorRedirectsChecks.indexOf(item);
       if (index !== -1) wikilessTorRedirectsChecks.splice(index, 1);
     }
-  setWikilessTorRedirectsChecks(wikilessTorRedirectsChecks);
+  browser.storage.local.set({ wikilessTorRedirectsChecks })
 
   for (const item of wikilessI2pRedirectsChecks)
     if (!redirects.wikiless.i2p.includes(item)) {
       var index = wikilessI2pRedirectsChecks.indexOf(item);
       if (index !== -1) wikilessI2pRedirectsChecks.splice(index, 1);
     }
-  setWikilessI2pRedirectsChecks(wikilessI2pRedirectsChecks);
-}
-
-let disable;
-const getDisable = () => disable;
-function setDisable(val) {
-  disable = val;
-  browser.storage.local.set({ disableWikipedia: disable })
+  browser.storage.local.set({ wikilessI2pRedirectsChecks })
 }
 
-let protocol;
-const getProtocol = () => protocol;
-function setProtocol(val) {
-  protocol = val;
-  browser.storage.local.set({ wikipediaProtocol: val })
-  console.log("wikipediaProtocol: ", val)
-}
+let disable; // disableWikipedia
+let protocol; // wikipediaProtocol
 
 let wikilessNormalRedirectsChecks;
-const getWikilessNormalRedirectsChecks = () => wikilessNormalRedirectsChecks;
-function setWikilessNormalRedirectsChecks(val) {
-  wikilessNormalRedirectsChecks = val;
-  browser.storage.local.set({ wikilessNormalRedirectsChecks })
-  console.log("wikilessNormalRedirectsChecks: ", val)
-}
-
 let wikilessTorRedirectsChecks;
-const getWikilessTorRedirectsChecks = () => wikilessTorRedirectsChecks;
-function setWikilessTorRedirectsChecks(val) {
-  wikilessTorRedirectsChecks = val;
-  browser.storage.local.set({ wikilessTorRedirectsChecks })
-  console.log("wikilessTorRedirectsChecks: ", val)
-}
-
 let wikilessI2pRedirectsChecks;
-const getWikilessI2pRedirectsChecks = () => wikilessI2pRedirectsChecks;
-function setWikilessI2pRedirectsChecks(val) {
-  wikilessI2pRedirectsChecks = val;
-  browser.storage.local.set({ wikilessI2pRedirectsChecks })
-  console.log("wikilessI2pRedirectsChecks: ", val)
-}
-
 let wikilessNormalCustomRedirects = [];
-const getWikilessNormalCustomRedirects = () => wikilessNormalCustomRedirects;
-function setWikilessNormalCustomRedirects(val) {
-  wikilessNormalCustomRedirects = val;
-  browser.storage.local.set({ wikilessNormalCustomRedirects })
-  console.log("wikilessNormalCustomRedirects: ", val)
-}
-
 let wikilessTorCustomRedirects = [];
-const getWikilessTorCustomRedirects = () => wikilessTorCustomRedirects;
-function setWikilessTorCustomRedirects(val) {
-  wikilessTorCustomRedirects = val;
-  browser.storage.local.set({ wikilessTorCustomRedirects })
-  console.log("wikilessTorCustomRedirects: ", val)
-}
-
 let wikilessI2pCustomRedirects = [];
-const getWikilessI2pCustomRedirects = () => wikilessI2pCustomRedirects;
-function setWikilessI2pCustomRedirects(val) {
-  wikilessI2pCustomRedirects = val;
-  browser.storage.local.set({ wikilessI2pCustomRedirects })
-  console.log("wikilessI2pCustomRedirects: ", val)
-}
+
 
 let theme;
 let applyThemeToSites;
+
 function initWikilessCookies() {
   let themeValue;
   if (theme == 'light') themeValue = 'white';
@@ -196,82 +136,74 @@ function switchInstance(url) {
   return `${randomInstance}${url.pathname}${url.search}`;
 }
 
+
+async function initDefaults() {
+  fetch('/instances/data.json').then(response => response.text()).then(async data => {
+    let dataJson = JSON.parse(data);
+    redirects.wikiless = dataJson.wikiless;
+    await browser.storage.local.set({
+      disableWikipedia: true,
+      wikipediaRedirects: redirects,
+      wikilessNormalRedirectsChecks: [...redirects.wikiless.normal],
+      wikilessTorRedirectsChecks: [...redirects.wikiless.tor],
+      wikilessI2pRedirectsChecks: [...redirects.wikiless.i2p],
+      wikilessNormalCustomRedirects: [],
+      wikilessTorCustomRedirects: [],
+      wikilessI2pCustomRedirects: [],
+      wikipediaProtocol: "normal",
+
+      theme: 'DEFAULT',
+      applyThemeToSites: false,
+    })
+
+  })
+}
+
 async function init() {
-  return new Promise((resolve) => {
-    fetch('/instances/data.json').then(response => response.text()).then(data => {
-      let dataJson = JSON.parse(data);
-      browser.storage.local.get(
-        [
-          "disableWikipedia",
-          "wikipediaRedirects",
-          "wikilessNormalRedirectsChecks",
-          "wikilessTorRedirectsChecks",
-          "wikilessI2pRedirectsChecks",
-          "wikilessNormalCustomRedirects",
-          "wikilessTorCustomRedirects",
-          "wikilessI2pCustomRedirects",
-          "wikipediaProtocol",
-
-          "theme",
-          "applyThemeToSites",
-
-        ], r => {
-          disable = r.disableWikipedia ?? true;
-
-          protocol = r.wikipediaProtocol ?? "normal";
-
-          redirects.wikiless = dataJson.wikiless;
-          if (r.wikipediaRedirects) redirects = r.wikipediaRedirects;
-
-          wikilessNormalRedirectsChecks = r.wikilessNormalRedirectsChecks ?? [...redirects.wikiless.normal];
-          wikilessNormalCustomRedirects = r.wikilessNormalCustomRedirects ?? [];
-
-          wikilessTorRedirectsChecks = r.wikilessTorRedirectsChecks ?? [...redirects.wikiless.tor];
-          wikilessTorCustomRedirects = r.wikilessTorCustomRedirects ?? [];
-
-          wikilessI2pRedirectsChecks = r.wikilessI2pRedirectsChecks ?? [...redirects.wikiless.i2p];
-          wikilessI2pCustomRedirects = r.wikilessI2pCustomRedirects ?? [];
-
-          theme = r.theme ?? 'DEFAULT';
-          applyThemeToSites = r.applyThemeToSites ?? false;
-
-          initWikilessCookies();
-
-          resolve();
-        }
-      );
-    });
-  });
+  browser.storage.local.get(
+    [
+      "disableWikipedia",
+      "wikipediaRedirects",
+      "wikilessNormalRedirectsChecks",
+      "wikilessTorRedirectsChecks",
+      "wikilessI2pRedirectsChecks",
+      "wikilessNormalCustomRedirects",
+      "wikilessTorCustomRedirects",
+      "wikilessI2pCustomRedirects",
+      "wikipediaProtocol",
+
+      "theme",
+      "applyThemeToSites",
+
+    ], r => {
+      disable = r.disableWikipedia;
+
+      protocol = r.wikipediaProtocol;
+      redirects = r.wikipediaRedirects;
+
+      wikilessNormalRedirectsChecks = r.wikilessNormalRedirectsChecks;
+      wikilessNormalCustomRedirects = r.wikilessNormalCustomRedirects;
+
+      wikilessTorRedirectsChecks = r.wikilessTorRedirectsChecks;
+      wikilessTorCustomRedirects = r.wikilessTorCustomRedirects;
+
+      wikilessI2pRedirectsChecks = r.wikilessI2pRedirectsChecks;
+      wikilessI2pCustomRedirects = r.wikilessI2pCustomRedirects;
+
+      theme = r.theme;
+      applyThemeToSites = r.applyThemeToSites;
+    }
+  );
 }
 
 export default {
   getRedirects,
-  getCustomRedirects,
   setRedirects,
 
-  setDisable,
-  getDisable,
-
-  getProtocol,
-  setProtocol,
-
-  getWikilessNormalRedirectsChecks,
-  setWikilessNormalRedirectsChecks,
-  getWikilessTorRedirectsChecks,
-  setWikilessTorRedirectsChecks,
-  getWikilessI2pRedirectsChecks,
-  setWikilessI2pRedirectsChecks,
-
-  getWikilessNormalCustomRedirects,
-  setWikilessNormalCustomRedirects,
-  getWikilessTorCustomRedirects,
-  setWikilessTorCustomRedirects,
-  getWikilessI2pCustomRedirects,
-  setWikilessI2pCustomRedirects,
-
   initWikilessCookies,
 
   redirect,
+  initDefaults,
   init,
   switchInstance,
 };
diff --git a/src/assets/javascripts/helpers/youtube/youtube.js b/src/assets/javascripts/helpers/youtube/youtube.js
index 9cdc60ad..193a4ec3 100644
--- a/src/assets/javascripts/helpers/youtube/youtube.js
+++ b/src/assets/javascripts/helpers/youtube/youtube.js
@@ -137,8 +137,9 @@ function redirect(url, details, initiator) {
   if (frontend == 'yatte' && details.type === "main_frame")
     return url.href.replace(/^https?:\/{2}/, 'yattee://');
 
-  else if (frontend == 'freetube' && details.type === "main_frame")
-    return `freetube://${url}`;
+  else if (frontend == 'freetube' && details.type === "main_frame") {
+    return `freetube://https:${url.pathname}${url.search}`;
+  }
 
   else if (frontend == 'freetube' && details.type !== "main_frame" && youtubeEmbedFrontend == "youtube")
     return null;
@@ -265,6 +266,7 @@ function switchInstance(url) {
 }
 
 function isPipedorInvidious(url, type, frontend) {
+  init();
   let protocolHost = commonHelper.protocolHost(url);
 
   if (type !== "main_frame" && type !== "sub_frame") return false;
@@ -348,7 +350,7 @@ async function initDefaults() {
         youtubeProtocol: 'normal',
         bypassWatchOnYoutube: true,
       })
-      
+
       await invidious.initDefaults();
       await piped.initDefaults();
       await pipedMaterial.initDefaults();
@@ -392,8 +394,6 @@ async function init() {
           "bypassWatchOnYoutube",
         ],
         r => {
-
-          console.log('inited r.youtubeRedirects', r.youtubeRedirects);
           redirects = r.youtubeRedirects;
 
           disable = r.disableYoutube;
diff --git a/src/assets/javascripts/helpers/youtubeMusic.js b/src/assets/javascripts/helpers/youtubeMusic.js
index 1833b101..ef707855 100644
--- a/src/assets/javascripts/helpers/youtubeMusic.js
+++ b/src/assets/javascripts/helpers/youtubeMusic.js
@@ -16,45 +16,11 @@ let redirects = {
     },
 };
 
-const getRedirects = () => redirects;
-
-function getCustomRedirects() {
-    return {
-        "beatbump": {
-            "normal": [...beatbumpNormalRedirectsChecks, ...beatbumpNormalCustomRedirects]
-        },
-    };
-};
-
-function setYoutubeMusicRedirects(val) {
-    redirects.beatbump = val;
-    browser.storage.local.set({ youtubeMusicRedirects: redirects })
-    console.log("youtubeMusicRedirects: ", val)
-}
+const getRedirects = () => redirects; // youtubeMusicRedirects
 
 let beatbumpNormalRedirectsChecks;
-const getBeatbumpNormalRedirectsChecks = () => beatbumpNormalRedirectsChecks;
-function setBeatbumpNormalRedirectsChecks(val) {
-    beatbumpNormalRedirectsChecks = val;
-    browser.storage.local.set({ beatbumpNormalRedirectsChecks })
-    console.log("beatbumpNormalRedirectsChecks: ", val)
-}
-
 let beatbumpNormalCustomRedirects = [];
-const getBeatbumpNormalCustomRedirects = () => beatbumpNormalCustomRedirects;
-function setBeatbumpNormalCustomRedirects(val) {
-    beatbumpNormalCustomRedirects = val;
-    browser.storage.local.set({ beatbumpNormalCustomRedirects })
-    console.log("beatbumpNormalCustomRedirects: ", val)
-}
-
-let disable;
-const getDisable = () => disable;
-function setDisable(val) {
-    disable = val;
-    browser.storage.local.set({ disableYoutubeMusic: disable })
-    console.log("disableYoutubeMusic: ", disable)
-}
+let disable; // disableYoutubeMusic
 
 function isYoutubeMusic(url, initiator) {
     if (disable) return false
@@ -72,11 +38,11 @@ function redirect(url, type) {
     // https://music.youtube.com/playlist?list=PLqxd0OMLeWy7lrJSzt9LnOJjbC1IaruPM
     // https://music.youtube.com/playlist?list=PLQod4DlD72ZMJmOrSNbmEmK_iZ1oXPzKd
     // https://beatbump.ml/playlist/VLPLqxd0OMLeWy64zlwhjouj92ISc38FbOns
-    
+
     // Channel
     // https://music.youtube.com/channel/UCfgmMDI7T5tOQqjnOBRe_wg
     // https://beatbump.ml/artist/UCfgmMDI7T5tOQqjnOBRe_wg
-    
+
     // Albums
     // https://music.youtube.com/playlist?list=OLAK5uy_n-9HVh3cryV2gREZM9Sc0JwEKYjjfi0dU
     // https://music.youtube.com/playlist?list=OLAK5uy_lcr5O1zS8f6WIFI_yxqVp2RK9Dyy2bbw0
@@ -86,7 +52,7 @@ function redirect(url, type) {
     // https://music.youtube.com/playlist?list=OLAK5uy_n6OHVllUZUCnlIY1m-gUaH8uqkN3Y-Ca8
     // https://music.youtube.com/playlist?list=OLAK5uy_nBOTxAc3_RGB82-Z54jdARGxGaCYlpngY
     // https://beatbump.ml/release?id=MPREb_QygdC0wEoLe
-    
+
     // https://music.youtube.com/watch?v=R6gSMSYKhKU&list=OLAK5uy_n-9HVh3cryV2gREZM9Sc0JwEKYjjfi0dU
 
     let instancesList = [...beatbumpNormalRedirectsChecks, ...beatbumpNormalCustomRedirects];
@@ -99,47 +65,37 @@ function redirect(url, type) {
         .replace("/playlist?list=", "/playlist/VL");
 }
 
-async function init() {
-    return new Promise((resolve) => {
-        browser.storage.local.get(
-            [
-                "disableYoutubeMusic",
-                "youtubeMusicRedirects",
 
-                "beatbumpNormalRedirectsChecks",
-                "beatbumpNormalCustomRedirects",
+async function initDefaults() {
+    await browser.storage.local.set({
+        disableYoutubeMusic: false,
 
-                "youtubeMusicProtocol",
-            ],
-            (result) => {
-                disable = result.disableYoutubeMusic ?? false;
+        beatbumpNormalRedirectsChecks: [...redirects.beatbump.normal],
+        beatbumpNormalCustomRedirects: [],
+    })
+}
 
-                if (result.youtubeMusicRedirects) redirects = result.youtubeMusicRedirects;
+async function init() {
+    browser.storage.local.get(
+        [
+            "disableYoutubeMusic",
 
-                beatbumpNormalRedirectsChecks = result.beatbumpNormalRedirectsChecks ?? [...redirects.beatbump.normal];
-                beatbumpNormalCustomRedirects = result.beatbumpNormalCustomRedirects ?? [];
+            "beatbumpNormalRedirectsChecks",
+            "beatbumpNormalCustomRedirects",
+        ],
+        r => {
+            disable = r.disableYoutubeMusic;
 
-                resolve();
-            });
-    });
+            beatbumpNormalRedirectsChecks = r.beatbumpNormalRedirectsChecks;
+            beatbumpNormalCustomRedirects = r.beatbumpNormalCustomRedirects;
+        });
 }
 
 export default {
     getRedirects,
-    getCustomRedirects,
-    setYoutubeMusicRedirects,
-
     redirect,
     isYoutubeMusic,
 
-    getDisable,
-    setDisable,
-
-    getBeatbumpNormalRedirectsChecks,
-    setBeatbumpNormalRedirectsChecks,
-
-    getBeatbumpNormalCustomRedirects,
-    setBeatbumpNormalCustomRedirects,
-
+    initDefaults,
     init,
 };
diff --git a/src/pages/background/background.js b/src/pages/background/background.js
index ae5f9f95..dffcdc5b 100644
--- a/src/pages/background/background.js
+++ b/src/pages/background/background.js
@@ -11,7 +11,6 @@ import wikipediaHelper from "../../assets/javascripts/helpers/wikipedia.js";
 import mediumHelper from "../../assets/javascripts/helpers/medium.js";
 import imgurHelper from "../../assets/javascripts/helpers/imgur.js";
 import tiktokHelper from "../../assets/javascripts/helpers/tiktok.js";
-import pixivHelper from "../../assets/javascripts/helpers/pixiv.js";
 import speedtestHelper from "../../assets/javascripts/helpers/speedtest.js";
 import sendTargetsHelper from "../../assets/javascripts/helpers/sendTargets.js";
 import peertubeHelper from "../../assets/javascripts/helpers/peertube.js";
@@ -22,25 +21,28 @@ import youtubeMusicHelper from "../../assets/javascripts/helpers/youtubeMusic.js
 
 window.browser = window.browser || window.chrome;
 
-
-
 browser.runtime.onInstalled.addListener(async details => {
   if (details.reason == 'install') {
-    await instagramHelper.initDefaults();
-    await redditHelper.initDefaults();
-    await youtubeHelper.initDefaults();
-    await tiktokHelper.initDefaults();
-    await imgurHelper.initDefaults();
-    await wholeInit();
-    browser.storage.local.set({ initDefaults: true })
-    initListener();
+    youtubeHelper.initDefaults();
+    youtubeMusicHelper.initDefaults();
+    twitterHelper.initDefaults();
+    instagramHelper.initDefaults();
+    mapsHelper.initDefaults();
+    searchHelper.initDefaults();
+    translateHelper.initDefaults();
+    mediumHelper.initDefaults();
+    redditHelper.initDefaults();
+    wikipediaHelper.initDefaults();
+    imgurHelper.initDefaults();
+    tiktokHelper.initDefaults();
+    speedtestHelper.initDefaults();
+    sendTargetsHelper.initDefaults();
+    peertubeHelper.initDefaults();
+    lbryHelper.initDefaults();
+    spotifyHelper.initDefaults();
   }
 });
 
-function initListener() {
-  browser.storage.onChanged.addListener(wholeInit);
-}
-
 async function wholeInit() {
   await youtubeHelper.init();
   await youtubeMusicHelper.init();
@@ -54,7 +56,6 @@ async function wholeInit() {
   await wikipediaHelper.init();
   await imgurHelper.init();
   await tiktokHelper.init();
-  await pixivHelper.init();
   await speedtestHelper.init();
   await sendTargetsHelper.init();
   await peertubeHelper.init();
@@ -63,15 +64,6 @@ async function wholeInit() {
   await generalHelper.init();
 }
 
-await browser.storage.local.get(
-  'initDefaults',
-  async r => {
-    if (r.initDefaults == true) {
-      await wholeInit();
-      initListener();
-    }
-  })
-
 let incognitoInit = false;
 browser.tabs.onCreated.addListener(
   tab => {
@@ -87,7 +79,8 @@ browser.tabs.onCreated.addListener(
 let BYPASSTABs = [];
 
 browser.webRequest.onBeforeRequest.addListener(
-  details => {
+  async details => {
+    await wholeInit();
     const url = new URL(details.url);
     // console.info("url:", url.href, "type:", details.type);
     let initiator;
@@ -115,8 +108,6 @@ browser.webRequest.onBeforeRequest.addListener(
 
     if (!newUrl) newUrl = tiktokHelper.redirect(url, details.type, initiator);
 
-    if (!newUrl) newUrl = pixivHelper.redirect(url, details.type, initiator);
-
     if (!newUrl) newUrl = speedtestHelper.redirect(url, details.type, initiator);
 
     if (!newUrl) newUrl = sendTargetsHelper.redirect(url, details.type, initiator);
@@ -173,20 +164,17 @@ browser.tabs.onRemoved.addListener(
   }
 );
 
-
-
-
-
-// Set "blocking" and "responseHeaders".
 browser.webRequest.onHeadersReceived.addListener(
-  e => {
+  async e => {
+    await wholeInit();
     return twitterHelper.removeXFrameOptions(e);
   },
   { urls: ["<all_urls>"], },
   ["blocking", "responseHeaders"]
 );
 
-function redirectOfflineInstance(url, tabId) {
+async function redirectOfflineInstance(url, tabId) {
+  await wholeInit();
   let newUrl;
 
   newUrl = youtubeHelper.switchInstance(url);
@@ -250,7 +238,8 @@ browser.webRequest.onErrorOccurred.addListener(
 )
 
 browser.tabs.onUpdated.addListener(
-  (tabId, changeInfo, _) => {
+  async (tabId, changeInfo, _) => {
+    await wholeInit();
     let url;
     try { url = new URL(changeInfo.url); }
     catch (_) { return }
@@ -259,11 +248,11 @@ browser.tabs.onUpdated.addListener(
     if (translateHelper.isTranslateRedirects(url, 'main_frame', 'lingva')) translateHelper.initLingvaLocalStorage(tabId);
     if (instagramHelper.isBibliogram(url)) instagramHelper.initBibliogramCookies(url);
     // if (changeInfo.url && youtubeHelper.isPipedorInvidious(url, 'main_frame', 'pipedMaterial')) youtubeHelper.initPipedMaterialLocalStorage(tabId);
-
   }
 );
 
-function changeWholeInstance(url) {
+async function changeWholeInstance(url) {
+  await wholeInit();
   let newUrl = youtubeHelper.switchInstance(url);
 
   if (!newUrl) newUrl = twitterHelper.switchInstance(url);
diff --git a/src/pages/background/incognito.js b/src/pages/background/incognito.js
index 689d0422..18096390 100644
--- a/src/pages/background/incognito.js
+++ b/src/pages/background/incognito.js
@@ -11,7 +11,6 @@ import wikipediaHelper from "../../assets/javascripts/helpers/wikipedia.js";
 import mediumHelper from "../../assets/javascripts/helpers/medium.js";
 import imgurHelper from "../../assets/javascripts/helpers/imgur.js";
 import tiktokHelper from "../../assets/javascripts/helpers/tiktok.js";
-import pixivHelper from "../../assets/javascripts/helpers/pixiv.js";
 import speedtestHelper from "../../assets/javascripts/helpers/speedtest.js";
 import sendTargetsHelper from "../../assets/javascripts/helpers/sendTargets.js";
 import peertubeHelper from "../../assets/javascripts/helpers/peertube.js";
@@ -35,7 +34,6 @@ async function wholeInit() {
   await wikipediaHelper.init();
   await imgurHelper.init();
   await tiktokHelper.init();
-  await pixivHelper.init();
   await speedtestHelper.init();
   await sendTargetsHelper.init();
   await peertubeHelper.init();
diff --git a/src/pages/options/general/general.html b/src/pages/options/general/general.html
index e27ff9d4..615ccee3 100644
--- a/src/pages/options/general/general.html
+++ b/src/pages/options/general/general.html
@@ -22,7 +22,6 @@
       <div class="title"> <img src="../../../assets/images/tiktok-icon.png"><a href="../tiktok/tiktok.html" data-localise="__MSG_tiktok__">TikTok</a></div>
       <div class="title"> <img src="../../../assets/images/reddit-icon.png"><a href="../reddit/reddit.html" data-localise="__MSG_reddit__">Reddit</a></div>
       <div class="title"> <img src="../../../assets/images/imgur-icon.png"><a href="../imgur/imgur.html" data-localise="__MSG_imgur__">Imgur</a></div>
-      <div class="title"> <img src="../../../assets/images/pixiv-icon.svg"><a href="../pixiv/pixiv.html" data-localise="__MSG_pixiv__">Pixiv</a></div>
       <div class="title"> <img src="../../../assets/images/librespeed-icon.svg"><a href="../speedtest/speedtest.html" data-localise="__MSG_speedtest__">Speedtest</a></div>
       <div class="title"> <img src="../../../assets/images/spotify-icon.png"><a href="../spotify/spotify.html" data-localise="__MSG_spotify__">Spotify</a></div>
       <div class="title"> <img src="../../../assets/images/wikipedia-icon.svg"><a href="../wikipedia/wikipedia.html" data-localise="__MSG_wikipedia__">Wikipedia</a></div>
@@ -153,10 +152,6 @@
         <input id="reddit" type="checkbox">
       </div>
       <div> 
-        <div> <img src="../../../assets/images/pixiv-icon.svg">Pixiv</div>
-        <input id="pixiv" type="checkbox">
-      </div>
-      <div> 
         <div> <img src="../../../assets/images/spotify-icon.png">Spotify</div>
         <input id="spotify" type="checkbox">
       </div>
diff --git a/src/pages/options/imgur/imgur.html b/src/pages/options/imgur/imgur.html
index a97c1c28..2f959996 100644
--- a/src/pages/options/imgur/imgur.html
+++ b/src/pages/options/imgur/imgur.html
@@ -23,7 +23,6 @@
       <div class="title"> <img src="../../../assets/images/tiktok-icon.png"><a href="../tiktok/tiktok.html" data-localise="__MSG_tiktok__">TikTok</a></div>
       <div class="title"> <img src="../../../assets/images/reddit-icon.png"><a href="../reddit/reddit.html" data-localise="__MSG_reddit__">Reddit</a></div>
       <div class="title"> <img src="../../../assets/images/imgur-icon.png"><a class="selected" href="../imgur/imgur.html" data-localise="__MSG_imgur__">Imgur</a></div>
-      <div class="title"> <img src="../../../assets/images/pixiv-icon.svg"><a href="../pixiv/pixiv.html" data-localise="__MSG_pixiv__">Pixiv</a></div>
       <div class="title"> <img src="../../../assets/images/librespeed-icon.svg"><a href="../speedtest/speedtest.html" data-localise="__MSG_speedtest__">Speedtest</a></div>
       <div class="title"> <img src="../../../assets/images/spotify-icon.png"><a href="../spotify/spotify.html" data-localise="__MSG_spotify__">Spotify</a></div>
       <div class="title"> <img src="../../../assets/images/wikipedia-icon.svg"><a href="../wikipedia/wikipedia.html" data-localise="__MSG_wikipedia__">Wikipedia</a></div>
diff --git a/src/pages/options/imgur/imgur.js b/src/pages/options/imgur/imgur.js
index 8d4428cf..2830f665 100644
--- a/src/pages/options/imgur/imgur.js
+++ b/src/pages/options/imgur/imgur.js
@@ -42,7 +42,7 @@ function init() {
             ],
             r => {
                 disableImgurElement.checked = !r.disableImgur;
-                protocol.value = r.imgurProtocol;
+                protocolElement.value = r.imgurProtocol;
                 changeProtocolSettings(r.imgurProtocol);
             }
         );
diff --git a/src/pages/options/instagram/instagram.html b/src/pages/options/instagram/instagram.html
index bc52cd3b..9ff2651c 100644
--- a/src/pages/options/instagram/instagram.html
+++ b/src/pages/options/instagram/instagram.html
@@ -23,7 +23,6 @@
       <div class="title"> <img src="../../../assets/images/tiktok-icon.png"><a href="../tiktok/tiktok.html" data-localise="__MSG_tiktok__">TikTok</a></div>
       <div class="title"> <img src="../../../assets/images/reddit-icon.png"><a href="../reddit/reddit.html" data-localise="__MSG_reddit__">Reddit</a></div>
       <div class="title"> <img src="../../../assets/images/imgur-icon.png"><a href="../imgur/imgur.html" data-localise="__MSG_imgur__">Imgur</a></div>
-      <div class="title"> <img src="../../../assets/images/pixiv-icon.svg"><a href="../pixiv/pixiv.html" data-localise="__MSG_pixiv__">Pixiv</a></div>
       <div class="title"> <img src="../../../assets/images/librespeed-icon.svg"><a href="../speedtest/speedtest.html" data-localise="__MSG_speedtest__">Speedtest</a></div>
       <div class="title"> <img src="../../../assets/images/spotify-icon.png"><a href="../spotify/spotify.html" data-localise="__MSG_spotify__">Spotify</a></div>
       <div class="title"> <img src="../../../assets/images/wikipedia-icon.svg"><a href="../wikipedia/wikipedia.html" data-localise="__MSG_wikipedia__">Wikipedia</a></div>
diff --git a/src/pages/options/lbry/lbry.html b/src/pages/options/lbry/lbry.html
index d5d459f7..4b6033aa 100644
--- a/src/pages/options/lbry/lbry.html
+++ b/src/pages/options/lbry/lbry.html
@@ -23,7 +23,6 @@
       <div class="title"> <img src="../../../assets/images/tiktok-icon.png"><a href="../tiktok/tiktok.html" data-localise="__MSG_tiktok__">TikTok</a></div>
       <div class="title"> <img src="../../../assets/images/reddit-icon.png"><a href="../reddit/reddit.html" data-localise="__MSG_reddit__">Reddit</a></div>
       <div class="title"> <img src="../../../assets/images/imgur-icon.png"><a href="../imgur/imgur.html" data-localise="__MSG_imgur__">Imgur</a></div>
-      <div class="title"> <img src="../../../assets/images/pixiv-icon.svg"><a href="../pixiv/pixiv.html" data-localise="__MSG_pixiv__">Pixiv</a></div>
       <div class="title"> <img src="../../../assets/images/librespeed-icon.svg"><a href="../speedtest/speedtest.html" data-localise="__MSG_speedtest__">Speedtest</a></div>
       <div class="title"> <img src="../../../assets/images/spotify-icon.png"><a href="../spotify/spotify.html" data-localise="__MSG_spotify__">Spotify</a></div>
       <div class="title"> <img src="../../../assets/images/wikipedia-icon.svg"><a href="../wikipedia/wikipedia.html" data-localise="__MSG_wikipedia__">Wikipedia</a></div>
diff --git a/src/pages/options/lbry/lbry.js b/src/pages/options/lbry/lbry.js
index 4511373c..3ab04369 100644
--- a/src/pages/options/lbry/lbry.js
+++ b/src/pages/options/lbry/lbry.js
@@ -2,18 +2,15 @@ import lbryHelper from "../../../assets/javascripts/helpers/lbry.js";
 import commonHelper from "../../../assets/javascripts/helpers/common.js";
 
 let disableLbryElement = document.getElementById("disable-lbry");
-disableLbryElement.addEventListener("change",
-    (event) => lbryHelper.setDisable(!event.target.checked)
-);
-
 let protocolElement = document.getElementById("protocol")
-protocolElement.addEventListener("change",
-    event => {
-        let protocol = event.target.options[protocolElement.selectedIndex].value
-        lbryHelper.setProtocol(protocol);
-        changeProtocolSettings(protocol);
-    }
-);
+
+document.addEventListener("change", async () => {
+    await browser.storage.local.set({
+        disableLbryTargets: !lbryHelper.checked,
+        lbryTargetsProtocol: protocolElement.value,
+    });
+    changeProtocolSettings(protocolElement.value)
+})
 
 function changeProtocolSettings(protocol) {
     let normalDiv = document.getElementsByClassName("normal")[0];
@@ -28,37 +25,20 @@ function changeProtocolSettings(protocol) {
     }
 }
 
-lbryHelper.init().then(() => {
-    disableLbryElement.checked = !lbryHelper.getDisable();
+browser.storage.local.get(
+    [
+        "disableLbryTargets",
+        "lbryTargetsProtocol"
+    ],
+    r => {
+    disableLbryElement.checked = !r.disableLbryTargets;
 
-    let protocol = lbryHelper.getProtocol();
+    let protocol = r.lbryTargetsProtocol;
     protocolElement.value = protocol;
     changeProtocolSettings(protocol);
 
-    browser.storage.local.get("librarianLatency").then(r => {
-        commonHelper.processDefaultCustomInstances(
-            'librarian',
-            'normal',
-            lbryHelper,
-            document,
-            lbryHelper.getLibrarianNormalRedirectsChecks,
-            lbryHelper.setLibrarianNormalRedirectsChecks,
-            lbryHelper.getLibrarianNormalCustomRedirects,
-            lbryHelper.setLibrarianNormalCustomRedirects,
-            r.librarianLatency,
-        );
-    })
-
-    commonHelper.processDefaultCustomInstances(
-        'librarian',
-        'tor',
-        lbryHelper,
-        document,
-        lbryHelper.getLibrarianTorRedirectsChecks,
-        lbryHelper.setLibrarianTorRedirectsChecks,
-        lbryHelper.getLibrarianTorCustomRedirects,
-        lbryHelper.setLibrarianTorCustomRedirects
-    )
+    commonHelper.processDefaultCustomInstances('librarian', 'normal', lbryHelper, document);
+    commonHelper.processDefaultCustomInstances('librarian', 'tor', lbryHelper, document)
 })
 
 
@@ -75,17 +55,7 @@ latencyElement.addEventListener("click",
         commonHelper.testLatency(latencyLabel, redirects.librarian.normal).then(r => {
             browser.storage.local.set({ librarianLatency: r });
             latencyLabel.innerHTML = oldHtml;
-            commonHelper.processDefaultCustomInstances(
-                'librarian',
-                'normal',
-                lbryHelper,
-                document,
-                lbryHelper.getLibrarianNormalRedirectsChecks,
-                lbryHelper.setLibrarianNormalRedirectsChecks,
-                lbryHelper.getLibrarianNormalCustomRedirects,
-                lbryHelper.setLibrarianNormalCustomRedirects,
-                r,
-            );
+            commonHelper.processDefaultCustomInstances('librarian', 'normal', lbryHelper, document);
             latencyElement.removeEventListener("click", reloadWindow);
         });
     }
diff --git a/src/pages/options/maps/maps.html b/src/pages/options/maps/maps.html
index d4288761..fe18892a 100644
--- a/src/pages/options/maps/maps.html
+++ b/src/pages/options/maps/maps.html
@@ -23,7 +23,6 @@
       <div class="title"> <img src="../../../assets/images/tiktok-icon.png"><a href="../tiktok/tiktok.html" data-localise="__MSG_tiktok__">TikTok</a></div>
       <div class="title"> <img src="../../../assets/images/reddit-icon.png"><a href="../reddit/reddit.html" data-localise="__MSG_reddit__">Reddit</a></div>
       <div class="title"> <img src="../../../assets/images/imgur-icon.png"><a href="../imgur/imgur.html" data-localise="__MSG_imgur__">Imgur</a></div>
-      <div class="title"> <img src="../../../assets/images/pixiv-icon.svg"><a href="../pixiv/pixiv.html" data-localise="__MSG_pixiv__">Pixiv</a></div>
       <div class="title"> <img src="../../../assets/images/librespeed-icon.svg"><a href="../speedtest/speedtest.html" data-localise="__MSG_speedtest__">Speedtest</a></div>
       <div class="title"> <img src="../../../assets/images/spotify-icon.png"><a href="../spotify/spotify.html" data-localise="__MSG_spotify__">Spotify</a></div>
       <div class="title"> <img src="../../../assets/images/wikipedia-icon.svg"><a href="../wikipedia/wikipedia.html" data-localise="__MSG_wikipedia__">Wikipedia</a></div>
diff --git a/src/pages/options/maps/maps.js b/src/pages/options/maps/maps.js
index 17c628dd..982b7980 100644
--- a/src/pages/options/maps/maps.js
+++ b/src/pages/options/maps/maps.js
@@ -33,17 +33,7 @@ mapsHelper.init().then(() => {
     changeFrontendsSettings(frontend);
 
     browser.storage.local.get("facilLatency").then(r => {
-        commonHelper.processDefaultCustomInstances(
-            'facil',
-            'normal',
-            mapsHelper,
-            document,
-            mapsHelper.getFacilNormalRedirectsChecks,
-            mapsHelper.setFacilNormalRedirectsChecks,
-            mapsHelper.getFacilNormalCustomRedirects,
-            mapsHelper.setFacilNormalCustomRedirects,
-            r.facilLatency,
-        )
+        commonHelper.processDefaultCustomInstances('facil', 'normal', mapsHelper, document, r.facilLatency)
     })
 })
 
@@ -60,17 +50,7 @@ latencyElement.addEventListener("click",
         commonHelper.testLatency(latencyLabel, redirects.facil.normal).then(r => {
             browser.storage.local.set({ facilLatency: r });
             latencyLabel.innerHTML = oldHtml;
-            commonHelper.processDefaultCustomInstances(
-                'facil',
-                'normal',
-                mapsHelper,
-                document,
-                mapsHelper.getFacilNormalRedirectsChecks,
-                mapsHelper.setFacilNormalRedirectsChecks,
-                mapsHelper.getFacilNormalCustomRedirects,
-                mapsHelper.setFacilNormalCustomRedirects,
-                r,
-            );
+            commonHelper.processDefaultCustomInstances('facil', 'normal', mapsHelper, document);
             latencyElement.removeEventListener("click", reloadWindow);
         });
     }
diff --git a/src/pages/options/medium/medium.html b/src/pages/options/medium/medium.html
index 303524f7..e7c0a336 100644
--- a/src/pages/options/medium/medium.html
+++ b/src/pages/options/medium/medium.html
@@ -23,7 +23,6 @@
       <div class="title"> <img src="../../../assets/images/tiktok-icon.png"><a href="../tiktok/tiktok.html" data-localise="__MSG_tiktok__">TikTok</a></div>
       <div class="title"> <img src="../../../assets/images/reddit-icon.png"><a href="../reddit/reddit.html" data-localise="__MSG_reddit__">Reddit</a></div>
       <div class="title"> <img src="../../../assets/images/imgur-icon.png"><a href="../imgur/imgur.html" data-localise="__MSG_imgur__">Imgur</a></div>
-      <div class="title"> <img src="../../../assets/images/pixiv-icon.svg"><a href="../pixiv/pixiv.html" data-localise="__MSG_pixiv__">Pixiv</a></div>
       <div class="title"> <img src="../../../assets/images/librespeed-icon.svg"><a href="../speedtest/speedtest.html" data-localise="__MSG_speedtest__">Speedtest</a></div>
       <div class="title"> <img src="../../../assets/images/spotify-icon.png"><a href="../spotify/spotify.html" data-localise="__MSG_spotify__">Spotify</a></div>
       <div class="title"> <img src="../../../assets/images/wikipedia-icon.svg"><a href="../wikipedia/wikipedia.html" data-localise="__MSG_wikipedia__">Wikipedia</a></div>
diff --git a/src/pages/options/medium/medium.js b/src/pages/options/medium/medium.js
index d79c1de5..4fb04092 100644
--- a/src/pages/options/medium/medium.js
+++ b/src/pages/options/medium/medium.js
@@ -2,18 +2,32 @@ import mediumHelper from "../../../assets/javascripts/helpers/medium.js";
 import commonHelper from "../../../assets/javascripts/helpers/common.js";
 
 let disableMediumElement = document.getElementById("disable-medium");
-disableMediumElement.addEventListener("change",
-    (event) => mediumHelper.setDisable(!event.target.checked)
-);
-
 let protocolElement = document.getElementById("protocol")
-protocolElement.addEventListener("change",
-    (event) => {
-        let protocol = event.target.options[protocolElement.selectedIndex].value
-        mediumHelper.setProtocol(protocol);
+
+browser.storage.local.get(
+    [
+        "disableMedium",
+        "mediumProtocol"
+    ],
+    r => {
+        disableMediumElement.checked = !r.disableMedium;
+
+        let protocol = r.mediumProtocol;
+        protocolElement.value = protocol;
         changeProtocolSettings(protocol);
+
+        commonHelper.processDefaultCustomInstances('scribe', 'normal', mediumHelper, document)
+        commonHelper.processDefaultCustomInstances('scribe', 'tor', mediumHelper, document)
     }
-);
+)
+
+document.addEventListener("change", async () => {
+    await browser.storage.local.set({
+        disableMedium: !disableMediumElement.checked,
+        mediumProtocol: protocolElement.value,
+    })
+    changeProtocolSettings(protocolElement.value);
+})
 
 function changeProtocolSettings(protocol) {
     let normalDiv = document.getElementsByClassName("normal")[0];
@@ -28,41 +42,6 @@ function changeProtocolSettings(protocol) {
     }
 }
 
-
-mediumHelper.init().then(() => {
-    disableMediumElement.checked = !mediumHelper.getDisable();
-
-    let protocol = mediumHelper.getProtocol();
-    protocolElement.value = protocol;
-    changeProtocolSettings(protocol);
-
-
-    browser.storage.local.get("scribeLatency").then(r => {
-        commonHelper.processDefaultCustomInstances(
-            'scribe',
-            'normal',
-            mediumHelper,
-            document,
-            mediumHelper.getScribeNormalRedirectsChecks,
-            mediumHelper.setScribeNormalRedirectsChecks,
-            mediumHelper.getScribeNormalCustomRedirects,
-            mediumHelper.setScribeNormalCustomRedirects,
-            r.scribeLatency,
-        )
-    })
-
-    commonHelper.processDefaultCustomInstances(
-        'scribe',
-        'tor',
-        mediumHelper,
-        document,
-        mediumHelper.getScribeTorRedirectsChecks,
-        mediumHelper.setScribeTorRedirectsChecks,
-        mediumHelper.getScribeTorCustomRedirects,
-        mediumHelper.setScribeTorCustomRedirects
-    )
-})
-
 let latencyElement = document.getElementById("latency");
 let latencyLabel = document.getElementById("latency-label");
 latencyElement.addEventListener("click",
@@ -76,17 +55,7 @@ latencyElement.addEventListener("click",
         commonHelper.testLatency(latencyLabel, redirects.scribe.normal).then(r => {
             browser.storage.local.set({ scribeLatency: r });
             latencyLabel.innerHTML = oldHtml;
-            commonHelper.processDefaultCustomInstances(
-                'scribe',
-                'normal',
-                mediumHelper,
-                document,
-                mediumHelper.getScribeNormalRedirectsChecks,
-                mediumHelper.setScribeNormalRedirectsChecks,
-                mediumHelper.getScribeNormalCustomRedirects,
-                mediumHelper.setScribeNormalCustomRedirects,
-                r,
-            );
+            commonHelper.processDefaultCustomInstances('scribe', 'normal', mediumHelper, document);
             latencyElement.removeEventListener("click", reloadWindow);
         });
     }
diff --git a/src/pages/options/peertube/peertube.html b/src/pages/options/peertube/peertube.html
index dd034bed..1a4bfa66 100644
--- a/src/pages/options/peertube/peertube.html
+++ b/src/pages/options/peertube/peertube.html
@@ -23,7 +23,6 @@
       <div class="title"> <img src="../../../assets/images/tiktok-icon.png"><a href="../tiktok/tiktok.html" data-localise="__MSG_tiktok__">TikTok</a></div>
       <div class="title"> <img src="../../../assets/images/reddit-icon.png"><a href="../reddit/reddit.html" data-localise="__MSG_reddit__">Reddit</a></div>
       <div class="title"> <img src="../../../assets/images/imgur-icon.png"><a href="../imgur/imgur.html" data-localise="__MSG_imgur__">Imgur</a></div>
-      <div class="title"> <img src="../../../assets/images/pixiv-icon.svg"><a href="../pixiv/pixiv.html" data-localise="__MSG_pixiv__">Pixiv</a></div>
       <div class="title"> <img src="../../../assets/images/librespeed-icon.svg"><a href="../speedtest/speedtest.html" data-localise="__MSG_speedtest__">Speedtest</a></div>
       <div class="title"> <img src="../../../assets/images/spotify-icon.png"><a href="../spotify/spotify.html" data-localise="__MSG_spotify__">Spotify</a></div>
       <div class="title"> <img src="../../../assets/images/wikipedia-icon.svg"><a href="../wikipedia/wikipedia.html" data-localise="__MSG_wikipedia__">Wikipedia</a></div>
diff --git a/src/pages/options/peertube/peertube.js b/src/pages/options/peertube/peertube.js
index 0b7a09e6..419523d0 100644
--- a/src/pages/options/peertube/peertube.js
+++ b/src/pages/options/peertube/peertube.js
@@ -2,18 +2,31 @@ import peertubeHelper from "../../../assets/javascripts/helpers/peertube.js";
 import commonHelper from "../../../assets/javascripts/helpers/common.js";
 
 let disablePeertubeElement = document.getElementById("disable-peertube");
-disablePeertubeElement.addEventListener("change",
-    (event) => peertubeHelper.setDisable(!event.target.checked)
-);
-
 let protocolElement = document.getElementById("protocol")
-protocolElement.addEventListener("change",
-    (event) => {
-        let protocol = event.target.options[protocolElement.selectedIndex].value
-        peertubeHelper.setProtocol(protocol);
+browser.storage.local.get(
+    [
+        "disablePeertubeTargets",
+        "peertubeTargetsProtocol"
+    ],
+    r => {
+        disablePeertubeElement.checked = !r.disablePeertubeTargets;
+
+        let protocol = peertubeTargetsProtocol;
+        protocolElement.value = protocol;
         changeProtocolSettings(protocol);
+
+        commonHelper.processDefaultCustomInstances('simpleertube', 'normal', peertubeHelper, document);
+        commonHelper.processDefaultCustomInstances('simpleertube', 'tor', peertubeHelper, document)
     }
-);
+)
+
+document.addEventListener("change", async () => {
+    await browser.storage.local.set({
+        disablePeertubeTargets: !disablePeertubeElement.checked,
+        peertubeTargetsProtocol: protocolElement.value
+    })
+    changeProtocolSettings(protocolElement.value);
+})
 
 function changeProtocolSettings(protocol) {
     let normalDiv = document.getElementsByClassName("normal")[0];
@@ -28,39 +41,6 @@ function changeProtocolSettings(protocol) {
     }
 }
 
-peertubeHelper.init().then(() => {
-    disablePeertubeElement.checked = !peertubeHelper.getDisable();
-
-    let protocol = peertubeHelper.getProtocol();
-    protocolElement.value = protocol;
-    changeProtocolSettings(protocol);
-
-    browser.storage.local.get("simpleertubeLatency").then(r => {
-        commonHelper.processDefaultCustomInstances(
-            'simpleertube',
-            'normal',
-            peertubeHelper,
-            document,
-            peertubeHelper.getSimpleertubeNormalRedirectsChecks,
-            peertubeHelper.setSimpleertubeNormalRedirectsChecks,
-            peertubeHelper.getSimpleertubeNormalCustomRedirects,
-            peertubeHelper.setSimpleertubeNormalCustomRedirects
-        );
-    })
-
-    commonHelper.processDefaultCustomInstances(
-        'simpleertube',
-        'tor',
-        peertubeHelper,
-        document,
-        peertubeHelper.getSimpleertubeTorRedirectsChecks,
-        peertubeHelper.setSimpleertubeTorRedirectsChecks,
-        peertubeHelper.getSimpleertubeTorCustomRedirects,
-        peertubeHelper.setSimpleertubeTorCustomRedirects
-    )
-})
-
-
 let latencyElement = document.getElementById("latency");
 let latencyLabel = document.getElementById("latency-label");
 latencyElement.addEventListener("click",
diff --git a/src/pages/options/pixiv/pixiv.html b/src/pages/options/pixiv/pixiv.html
deleted file mode 100644
index 7adbcf2c..00000000
--- a/src/pages/options/pixiv/pixiv.html
+++ /dev/null
@@ -1,135 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-  <head>
-    <meta charset="utf-8">
-    <meta name="viewport" content="width=device-width, initial-scale=1">
-    <link rel="icon" type="image/x-icon" href="../../../assets/images/libredirect.svg">
-    <link href="../../stylesheets/styles.css" rel="stylesheet">
-    <title>General</title>
-  </head>
-</html>
-<script type="module" src="../../../assets/javascripts/localise.js"></script>
-<body class="option" dir="auto">
-    <section class="links">
-      <div class="title">
-        <svg xmlns="http://www.w3.org/2000/svg" enable-background="new 0 0 24 24" height="26px" viewBox="0 0 24 24" width="26px" fill="currentColor">
-          <path d="M19.14,12.94c0.04-0.3,0.06-0.61,0.06-0.94c0-0.32-0.02-0.64-0.07-0.94l2.03-1.58c0.18-0.14,0.23-0.41,0.12-0.61 l-1.92-3.32c-0.12-0.22-0.37-0.29-0.59-0.22l-2.39,0.96c-0.5-0.38-1.03-0.7-1.62-0.94L14.4,2.81c-0.04-0.24-0.24-0.41-0.48-0.41 h-3.84c-0.24,0-0.43,0.17-0.47,0.41L9.25,5.35C8.66,5.59,8.12,5.92,7.63,6.29L5.24,5.33c-0.22-0.08-0.47,0-0.59,0.22L2.74,8.87 C2.62,9.08,2.66,9.34,2.86,9.48l2.03,1.58C4.84,11.36,4.8,11.69,4.8,12s0.02,0.64,0.07,0.94l-2.03,1.58 c-0.18,0.14-0.23,0.41-0.12,0.61l1.92,3.32c0.12,0.22,0.37,0.29,0.59,0.22l2.39-0.96c0.5,0.38,1.03,0.7,1.62,0.94l0.36,2.54 c0.05,0.24,0.24,0.41,0.48,0.41h3.84c0.24,0,0.44-0.17,0.47-0.41l0.36-2.54c0.59-0.24,1.13-0.56,1.62-0.94l2.39,0.96 c0.22,0.08,0.47,0,0.59-0.22l1.92-3.32c0.12-0.22,0.07-0.47-0.12-0.61L19.14,12.94z M12,15.6c-1.98,0-3.6-1.62-3.6-3.6 s1.62-3.6,3.6-3.6s3.6,1.62,3.6,3.6S13.98,15.6,12,15.6z"></path>
-        </svg><a href="../general/general.html" data-localise="__MSG_general__">General</a>
-      </div>
-      <div class="title"> <img src="../../../assets/images/youtube-icon.png"><a href="../youtube/youtube.html" data-localise="__MSG_youtube__">YouTube </a></div>
-      <div class="title"> <img src="../../../assets/images/youtube-music-icon.png"><a href="../youtubeMusic/youtubeMusic.html" data-localise="__MSG_ytmusic__">YT Music</a></div>
-      <div class="title"> <img src="../../../assets/images/twitter-icon.png"><a href="../twitter/twitter.html" data-localise="__MSG_twitter__">Twitter</a></div>
-      <div class="title"> <img src="../../../assets/images/instagram-icon.png"><a href="../instagram/instagram.html" data-localise="__MSG_instagram__">Instagram</a></div>
-      <div class="title"> <img src="../../../assets/images/tiktok-icon.png"><a href="../tiktok/tiktok.html" data-localise="__MSG_tiktok__">TikTok</a></div>
-      <div class="title"> <img src="../../../assets/images/reddit-icon.png"><a href="../reddit/reddit.html" data-localise="__MSG_reddit__">Reddit</a></div>
-      <div class="title"> <img src="../../../assets/images/imgur-icon.png"><a href="../imgur/imgur.html" data-localise="__MSG_imgur__">Imgur</a></div>
-      <div class="title"> <img src="../../../assets/images/pixiv-icon.svg"><a class="selected" href="../pixiv/pixiv.html" data-localise="__MSG_pixiv__">Pixiv</a></div>
-      <div class="title"> <img src="../../../assets/images/librespeed-icon.svg"><a href="../speedtest/speedtest.html" data-localise="__MSG_speedtest__">Speedtest</a></div>
-      <div class="title"> <img src="../../../assets/images/spotify-icon.png"><a href="../spotify/spotify.html" data-localise="__MSG_spotify__">Spotify</a></div>
-      <div class="title"> <img src="../../../assets/images/wikipedia-icon.svg"><a href="../wikipedia/wikipedia.html" data-localise="__MSG_wikipedia__">Wikipedia</a></div>
-      <div class="title"> 
-        <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1770 1000" fill="currentColor">
-          <circle cx="500" cy="500" r="500"></circle>
-          <ellipse ry="475" rx="250" cy="501" cx="1296"></ellipse>
-          <ellipse cx="1682" cy="502" rx="88" ry="424"></ellipse>
-        </svg><a href="../medium/medium.html" data-localise="__MSG_medium__">Medium</a>
-      </div>
-      <div class="title"> <img src="../../../assets/images/peertube-icon.svg"><a href="../peertube/peertube.html" data-localise="__MSG_peertube__">Peertube</a></div>
-      <div class="title"> <img src="../../../assets/images/lbry-icon.png"><a href="../lbry/lbry.html" data-localise="__MSG_lbry__">LBRY/Odysee</a></div>
-      <div class="title"> 
-        <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor">
-          <path d="M15.5 14h-.79l-.28-.27C15.41 12.59 16 11.11 16 9.5 16 5.91 13.09 3 9.5 3S3 5.91 3 9.5 5.91 16 9.5 16c1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99L20.49 19l-4.99-5zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14z"></path>
-        </svg><a href="../search/search.html" data-localise="__MSG_search__">Search</a>
-      </div>
-      <div class="title"> 
-        <svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 0 24 24" width="24px" fill="currentColor">
-          <path d="M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"></path>
-        </svg><a href="../translate/translate.html" data-localise="__MSG_translate__">Translate</a>
-      </div>
-      <div class="title"> 
-        <svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 0 24 24" width="24px" fill="currentColor">
-          <path d="M12 2C8.13 2 5 5.13 5 9c0 5.25 7 13 7 13s7-7.75 7-13c0-3.87-3.13-7-7-7zm0 9.5c-1.38 0-2.5-1.12-2.5-2.5s1.12-2.5 2.5-2.5 2.5 1.12 2.5 2.5-1.12 2.5-2.5 2.5z"></path>
-        </svg><a href="../maps/maps.html" data-localise="__MSG_maps__">Maps</a>
-      </div>
-      <div class="title"> 
-        <svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 0 24 24" width="24px" fill="currentColor">
-          <path d="M19.35 10.04C18.67 6.59 15.64 4 12 4 9.11 4 6.6 5.64 5.35 8.04 2.34 8.36 0 10.91 0 14c0 3.31 2.69 6 6 6h13c2.76 0 5-2.24 5-5 0-2.64-2.05-4.78-4.65-4.96zM14 13v4h-4v-4H7l5-5 5 5h-3z"></path>
-        </svg><a href="../sendTargets/sendTargets.html" data-localise="__MSG_sendFiles__">Send Files</a>
-      </div>
-    </section>
-  <section class="option-block">
-    <div class="some-block option-block">
-      <h4 data-localise="__MSG_enable__">Enable</h4>
-      <input id="disable-pixiv" type="checkbox">
-    </div>
-    <div class="some-block option-block">
-      <h4>
-        <x data-localise="__MSG_frontend__">Frontend</x>:<span style="color:red;" data-localise="__MSG_notFullyPrivate__">This isn't a fully private frontend</span>
-      </h4>
-      <select id="maps-frontend">
-        <option value="pixivMoe" data-localise="__MSG_pixivMoe__">pixiv萌え</option>
-      </select>
-    </div>
-    <div class="some-block option-block">
-      <h4 data-localise="__MSG_protocol__">Protocol</h4>
-      <select id="protocol">
-        <option value="normal" data-localise="__MSG_normal__">Normal</option>
-        <option value="tor" data-localise="__MSG_tor__">Tor        </option>
-      </select>
-    </div>
-    <div id="pixivMoe">
-      <hr>
-      <div class="normal">
-                <div class="some-block option-block">
-                  <h4 data-localise="__MSG_defaultInstances__">Default Instances</h4>
-                </div>
-                <div class="checklist"></div>
-                <hr>
-                <div class="some-block option-block">
-                  <h4 data-localise="__MSG_customInstances__">Custom Instances</h4>
-                </div>
-                <form class="custom-instance-form">
-                  <div class="some-block option-block">
-                    <input class="custom-instance" placeholder="https://pixivMoe.com" type="url">
-                    <button class="add add-instance" type="submit">
-                      <svg xmlns="https://www.w3.org/2000/svg" height="20px" viewBox="0 0 24 24" width="20px" fill="currentColor">
-                        <path d="M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z"></path>
-                      </svg>
-                    </button>
-                  </div>
-                </form>
-                <div class="checklist custom-checklist"></div>
-                <label class="button button-inline" id="latency-label" for="latency"> 
-                  <svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 0 24 24" width="24px" fill="currentColor">
-                    <path d="M19 19H5V5h7V3H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2v-7h-2v7zM14 3v2h3.59l-9.83 9.83 1.41 1.41L19 6.41V10h2V3h-7z"></path>
-                  </svg>&nbsp;
-                  <x data-localise="__MSG_testInstancesLatency__">Test Instances Latency</x>
-                </label>
-                <input class="button button-inline" id="latency" style="display:none;">
-      </div>
-      <div class="tor">
-                <div class="some-block option-block">
-                  <h4 data-localise="__MSG_defaultInstances__">Default Instances</h4>
-                </div>
-                <div class="checklist"></div>
-                <hr>
-                <div class="some-block option-block">
-                  <h4 data-localise="__MSG_customInstances__">Custom Instances</h4>
-                </div>
-                <form class="custom-instance-form">
-                  <div class="some-block option-block">
-                    <input class="custom-instance" placeholder="https://pixivMoe.onion" type="url">
-                    <button class="add add-instance" type="submit">
-                      <svg xmlns="https://www.w3.org/2000/svg" height="20px" viewBox="0 0 24 24" width="20px" fill="currentColor">
-                        <path d="M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z"></path>
-                      </svg>
-                    </button>
-                  </div>
-                </form>
-                <div class="checklist custom-checklist"></div>
-      </div>
-    </div>
-  </section>
-  <script type="module" src="../init.js"></script>
-  <script type="module" src="./pixiv.js"></script>
-</body>
\ No newline at end of file
diff --git a/src/pages/options/pixiv/pixiv.js b/src/pages/options/pixiv/pixiv.js
deleted file mode 100644
index fe60734b..00000000
--- a/src/pages/options/pixiv/pixiv.js
+++ /dev/null
@@ -1,93 +0,0 @@
-import pixivHelper from "../../../assets/javascripts/helpers/pixiv.js";
-import commonHelper from "../../../assets/javascripts/helpers/common.js";
-
-let disablePixivElement = document.getElementById("disable-pixiv");
-disablePixivElement.addEventListener("change",
-    (event) => pixivHelper.setDisable(!event.target.checked)
-);
-
-let protocolElement = document.getElementById("protocol")
-protocolElement.addEventListener("change",
-    (event) => {
-        let protocol = event.target.options[protocolElement.selectedIndex].value
-        pixivHelper.setProtocol(protocol);
-        changeProtocolSettings(protocol);
-    }
-);
-
-function changeProtocolSettings(protocol) {
-    let normalDiv = document.getElementsByClassName("normal")[0];
-    let torDiv = document.getElementsByClassName("tor")[0];
-    if (protocol == 'normal') {
-        normalDiv.style.display = 'block';
-        torDiv.style.display = 'none';
-    }
-    else if (protocol == 'tor') {
-        normalDiv.style.display = 'none';
-        torDiv.style.display = 'block';
-    }
-}
-
-pixivHelper.init().then(() => {
-    disablePixivElement.checked = !pixivHelper.getDisable();
-
-    let protocol = pixivHelper.getProtocol();
-    protocolElement.value = protocol;
-    changeProtocolSettings(protocol);
-
-
-    browser.storage.local.get("pixivMoeLatency").then(r => {
-        commonHelper.processDefaultCustomInstances(
-            'pixivMoe',
-            'normal',
-            pixivHelper,
-            document,
-            pixivHelper.getPixivMoeNormalRedirectsChecks,
-            pixivHelper.setPixivMoeNormalRedirectsChecks,
-            pixivHelper.getPixivMoeNormalCustomRedirects,
-            pixivHelper.setPixivMoeNormalCustomRedirects
-        );
-    })
-
-    commonHelper.processDefaultCustomInstances(
-        'pixivMoe',
-        'tor',
-        pixivHelper,
-        document,
-        pixivHelper.getPixivMoeTorRedirectsChecks,
-        pixivHelper.setPixivMoeTorRedirectsChecks,
-        pixivHelper.getPixivMoeTorCustomRedirects,
-        pixivHelper.setPixivMoeTorCustomRedirects
-    )
-})
-
-
-let latencyElement = document.getElementById("latency");
-let latencyLabel = document.getElementById("latency-label");
-latencyElement.addEventListener("click",
-    async () => {
-        let reloadWindow = () => location.reload();
-        latencyElement.addEventListener("click", reloadWindow);
-        await pixivHelper.init();
-        let redirects = pixivHelper.getRedirects();
-        const oldHtml = latencyLabel.innerHTML;
-        latencyLabel.innerHTML = '...';
-        commonHelper.testLatency(latencyLabel, redirects.pixivMoe.normal).then(r => {
-            browser.storage.local.set({ pixivMoeLatency: r });
-            latencyLabel.innerHTML = oldHtml;
-            commonHelper.processDefaultCustomInstances(
-                'pixivMoe',
-                'normal',
-                pixivHelper,
-                document,
-                pixivHelper.getPixivMoeNormalRedirectsChecks,
-                pixivHelper.setPixivMoeNormalRedirectsChecks,
-                pixivHelper.getPixivMoeNormalCustomRedirects,
-                pixivHelper.setPixivMoeNormalCustomRedirects,
-                r,
-            );
-            latencyElement.removeEventListener("click", reloadWindow);
-        });
-
-    }
-);
\ No newline at end of file
diff --git a/src/pages/options/reddit/reddit.html b/src/pages/options/reddit/reddit.html
index 47c0b3b2..9ccc130d 100644
--- a/src/pages/options/reddit/reddit.html
+++ b/src/pages/options/reddit/reddit.html
@@ -23,7 +23,6 @@
       <div class="title"> <img src="../../../assets/images/tiktok-icon.png"><a href="../tiktok/tiktok.html" data-localise="__MSG_tiktok__">TikTok</a></div>
       <div class="title"> <img src="../../../assets/images/reddit-icon.png"><a class="selected" href="../reddit/reddit.html" data-localise="__MSG_reddit__">Reddit</a></div>
       <div class="title"> <img src="../../../assets/images/imgur-icon.png"><a href="../imgur/imgur.html" data-localise="__MSG_imgur__">Imgur</a></div>
-      <div class="title"> <img src="../../../assets/images/pixiv-icon.svg"><a href="../pixiv/pixiv.html" data-localise="__MSG_pixiv__">Pixiv</a></div>
       <div class="title"> <img src="../../../assets/images/librespeed-icon.svg"><a href="../speedtest/speedtest.html" data-localise="__MSG_speedtest__">Speedtest</a></div>
       <div class="title"> <img src="../../../assets/images/spotify-icon.png"><a href="../spotify/spotify.html" data-localise="__MSG_spotify__">Spotify</a></div>
       <div class="title"> <img src="../../../assets/images/wikipedia-icon.svg"><a href="../wikipedia/wikipedia.html" data-localise="__MSG_wikipedia__">Wikipedia</a></div>
@@ -67,7 +66,6 @@
       <select id="reddit-frontend">
         <option value="libreddit">Libreddit</option>
         <option value="teddit">Teddit</option>
-        <option value="old">old.reddit.com</option>
       </select>
     </div>
     <div class="some-block option-block">
diff --git a/src/pages/options/reddit/reddit.js b/src/pages/options/reddit/reddit.js
index 47bd1856..3f79eeaa 100644
--- a/src/pages/options/reddit/reddit.js
+++ b/src/pages/options/reddit/reddit.js
@@ -45,11 +45,6 @@ document.addEventListener("change", async () => {
     init();
 })
 
-window.onblur = () => {
-    redditHelper.initLibredditCookies();
-    redditHelper.initTedditCookies();
-}
-
 function changeProtocolSettings(protocol) {
     let normalLibredditDiv = libredditDivElement.getElementsByClassName("normal")[0];
     let torLibredditDiv = libredditDivElement.getElementsByClassName("tor")[0];
@@ -91,56 +86,54 @@ function changeFrontendsSettings(frontend) {
         tedditDivElement.style.display = 'none';
     }
 }
-function init() {
-    browser.storage.local.get(
-        [
-            "disableReddit",
-            "bypassWatchOnReddit",
-            "redditProtocol",
-            "redditFrontend",
-
-            "enableLibredditCustomSettings",
-
-            "redditTheme",
-            "redditFrontPage",
-            "redditLayout",
-            "redditWide",
-            "redditPostSort",
-            "redditCommentSort",
-            "redditShowNsfw",
-            "redditAutoplayVideos",
-            "redditUseHls",
-            "redditHideHlsNotification",
-        ],
-        r => {
-            disableRedditElement.checked = !r.disableReddit
-            bypassWatchOnRedditElement.checked = r.bypassWatchOnReddit
-            protocolElement.value = r.redditProtocol
-            redditFrontendElement.value = r.redditFrontend
-            enableLibredditSettingsElement.checked = r.enableLibredditCustomSettings
-            changeFrontendsSettings(r.redditFrontend);
-            changeProtocolSettings(r.redditProtocol);
-
-            theme.value = r.redditTheme;
-            front_page.value = r.redditFrontPage;
-            layout.value = r.redditLayout;
-            wide.checked = r.redditWide;
-            post_sort.value = r.redditPostSort;
-            comment_sort.value = r.redditCommentSort;
-            show_nsfw.checked = r.redditShowNsfw;
-            autoplay_videos.checked = r.redditAutoplayVideos;
-            use_hls.checked = r.redditUseHls;
-            hide_hls_notification.checked = r.redditHideHlsNotification;
-        }
-    )
-
-    commonHelper.processDefaultCustomInstances('libreddit', 'normal', redditHelper, document)
-    commonHelper.processDefaultCustomInstances('libreddit', 'tor', redditHelper, document)
-
-    commonHelper.processDefaultCustomInstances('teddit', 'normal', redditHelper, document);
-    commonHelper.processDefaultCustomInstances('teddit', 'tor', redditHelper, document);
-}
-init();
+
+browser.storage.local.get(
+    [
+        "disableReddit",
+        "bypassWatchOnReddit",
+        "redditProtocol",
+        "redditFrontend",
+
+        "enableLibredditCustomSettings",
+
+        "redditTheme",
+        "redditFrontPage",
+        "redditLayout",
+        "redditWide",
+        "redditPostSort",
+        "redditCommentSort",
+        "redditShowNsfw",
+        "redditAutoplayVideos",
+        "redditUseHls",
+        "redditHideHlsNotification",
+    ],
+    r => {
+        disableRedditElement.checked = !r.disableReddit
+        bypassWatchOnRedditElement.checked = r.bypassWatchOnReddit
+        protocolElement.value = r.redditProtocol
+        redditFrontendElement.value = r.redditFrontend
+        enableLibredditSettingsElement.checked = r.enableLibredditCustomSettings
+        changeFrontendsSettings(r.redditFrontend);
+        changeProtocolSettings(r.redditProtocol);
+
+        theme.value = r.redditTheme;
+        front_page.value = r.redditFrontPage;
+        layout.value = r.redditLayout;
+        wide.checked = r.redditWide;
+        post_sort.value = r.redditPostSort;
+        comment_sort.value = r.redditCommentSort;
+        show_nsfw.checked = r.redditShowNsfw;
+        autoplay_videos.checked = r.redditAutoplayVideos;
+        use_hls.checked = r.redditUseHls;
+        hide_hls_notification.checked = r.redditHideHlsNotification;
+    }
+)
+
+commonHelper.processDefaultCustomInstances('libreddit', 'normal', redditHelper, document)
+commonHelper.processDefaultCustomInstances('libreddit', 'tor', redditHelper, document)
+commonHelper.processDefaultCustomInstances('teddit', 'normal', redditHelper, document);
+commonHelper.processDefaultCustomInstances('teddit', 'tor', redditHelper, document);
+
 
 let latencyLibredditElement = document.getElementById("latency-libreddit");
 let latencyLibredditLabel = document.getElementById("latency-libreddit-label");
@@ -178,4 +171,9 @@ latencyTedditElement.addEventListener("click",
             latencyTedditElement.removeEventListener("click", reloadWindow);
         });
     }
-);
\ No newline at end of file
+);
+
+window.onblur = () => {
+    redditHelper.initLibredditCookies();
+    redditHelper.initTedditCookies();
+}
\ No newline at end of file
diff --git a/src/pages/options/search/search.html b/src/pages/options/search/search.html
index cc1bb006..3c0d9d89 100644
--- a/src/pages/options/search/search.html
+++ b/src/pages/options/search/search.html
@@ -23,7 +23,6 @@
       <div class="title"> <img src="../../../assets/images/tiktok-icon.png"><a href="../tiktok/tiktok.html" data-localise="__MSG_tiktok__">TikTok</a></div>
       <div class="title"> <img src="../../../assets/images/reddit-icon.png"><a href="../reddit/reddit.html" data-localise="__MSG_reddit__">Reddit</a></div>
       <div class="title"> <img src="../../../assets/images/imgur-icon.png"><a href="../imgur/imgur.html" data-localise="__MSG_imgur__">Imgur</a></div>
-      <div class="title"> <img src="../../../assets/images/pixiv-icon.svg"><a href="../pixiv/pixiv.html" data-localise="__MSG_pixiv__">Pixiv</a></div>
       <div class="title"> <img src="../../../assets/images/librespeed-icon.svg"><a href="../speedtest/speedtest.html" data-localise="__MSG_speedtest__">Speedtest</a></div>
       <div class="title"> <img src="../../../assets/images/spotify-icon.png"><a href="../spotify/spotify.html" data-localise="__MSG_spotify__">Spotify</a></div>
       <div class="title"> <img src="../../../assets/images/wikipedia-icon.svg"><a href="../wikipedia/wikipedia.html" data-localise="__MSG_wikipedia__">Wikipedia</a></div>
diff --git a/src/pages/options/search/search.js b/src/pages/options/search/search.js
index 197b17f4..893c3e4f 100644
--- a/src/pages/options/search/search.js
+++ b/src/pages/options/search/search.js
@@ -1,66 +1,75 @@
 import searchHelper from "../../../assets/javascripts/helpers/search.js";
 import commonHelper from "../../../assets/javascripts/helpers/common.js";
 
+let searxDiv = document.getElementById("searx");
+let searxngDiv = document.getElementById("searxng")
+let whoogleDiv = document.getElementById("whoogle");
+
 let disableSearchElement = document.getElementById("disable-search");
-disableSearchElement.addEventListener("change", event => searchHelper.setDisable(!event.target.checked));
+let searchFrontendElement = document.getElementById("search-frontend");
+let protocolElement = document.getElementById("protocol")
 
+browser.storage.local.get(
+  [
+    "disableSearch",
+    "searchFrontend",
+    "searchProtocol",
+  ],
+  r => {
+    disableSearchElement.checked = !disableSearch;
 
-let searxDivElement = document.getElementById("searx");
-let searxngDivElement = document.getElementById("searxng")
-let whoogleDivElement = document.getElementById("whoogle");
+    searchFrontendElement.value = r.searchFronten;
+    changeFrontendsSettings(r.searchFronten);
 
+    protocolElement.value = r.searchProtocol;
+    changeProtocolSettings(r.searchProtocol);
+  }
+);
+
+document.addEventListener("change", async () => {
+  await browser.storage.local.set({
+    disableSearch: !disableSearchElement.checked,
+    searchFrontend: searchFrontendElement.value,
+    searchProtocol: protocolElement.value,
+  });
+  changeFrontendsSettings(searchFrontendElement.value);
+  changeProtocolSettings(protocolElement.value);
+})
 
 function changeFrontendsSettings(frontend) {
   let SearxWhoogleElement = document.getElementById("searx-whoogle");
   if (frontend == 'searx') {
-    searxDivElement.style.display = 'block';
-    searxngDivElement.style.display = 'none';
-    whoogleDivElement.style.display = 'none';
+    searxDiv.style.display = 'block';
+    searxngDiv.style.display = 'none';
+    whoogleDiv.style.display = 'none';
     SearxWhoogleElement.style.display = 'block';
   }
   else if (frontend == 'searxng') {
-    searxDivElement.style.display = 'none';
-    searxngDivElement.style.display = 'block';
-    whoogleDivElement.style.display = 'none';
+    searxDiv.style.display = 'none';
+    searxngDiv.style.display = 'block';
+    whoogleDiv.style.display = 'none';
     SearxWhoogleElement.style.display = 'block';
   }
   else if (frontend == 'whoogle') {
-    searxDivElement.style.display = 'none';
-    searxngDivElement.style.display = 'none';
-    whoogleDivElement.style.display = 'block';
+    searxDiv.style.display = 'none';
+    searxngDiv.style.display = 'none';
+    whoogleDiv.style.display = 'block';
     SearxWhoogleElement.style.display = 'block';
   }
 }
-let searchFrontendElement = document.getElementById("search-frontend");
-searchFrontendElement.addEventListener("change",
-  event => {
-    let frontend = event.target.options[searchFrontendElement.selectedIndex].value
-    searchHelper.setFrontend(frontend)
-    changeFrontendsSettings(frontend);
-  }
-);
-
-let protocolElement = document.getElementById("protocol")
-protocolElement.addEventListener("change",
-  event => {
-    let protocol = event.target.options[protocolElement.selectedIndex].value
-    searchHelper.setProtocol(protocol);
-    changeProtocolSettings(protocol);
-  }
-);
 
 function changeProtocolSettings(protocol) {
-  let normalsearxDiv = searxDivElement.getElementsByClassName("normal")[0];
-  let torsearxDiv = searxDivElement.getElementsByClassName("tor")[0];
-  let i2psearxDiv = searxDivElement.getElementsByClassName("i2p")[0];
+  let normalsearxDiv = searxDiv.getElementsByClassName("normal")[0];
+  let torsearxDiv = searxDiv.getElementsByClassName("tor")[0];
+  let i2psearxDiv = searxDiv.getElementsByClassName("i2p")[0];
 
-  let normalsearxngDiv = searxngDivElement.getElementsByClassName("normal")[0];
-  let torsearxngDiv = searxngDivElement.getElementsByClassName("tor")[0];
-  let i2psearxngDiv = searxngDivElement.getElementsByClassName("i2p")[0];
+  let normalsearxngDiv = searxngDiv.getElementsByClassName("normal")[0];
+  let torsearxngDiv = searxngDiv.getElementsByClassName("tor")[0];
+  let i2psearxngDiv = searxngDiv.getElementsByClassName("i2p")[0];
 
-  let normalwhoogleDiv = whoogleDivElement.getElementsByClassName("normal")[0];
-  let torwhoogleDiv = whoogleDivElement.getElementsByClassName("tor")[0];
-  let i2pwhoogleDiv = whoogleDivElement.getElementsByClassName("i2p")[0];
+  let normalwhoogleDiv = whoogleDiv.getElementsByClassName("normal")[0];
+  let torwhoogleDiv = whoogleDiv.getElementsByClassName("tor")[0];
+  let i2pwhoogleDiv = whoogleDiv.getElementsByClassName("i2p")[0];
 
   if (protocol == 'normal') {
     normalsearxDiv.style.display = 'block';
@@ -97,125 +106,15 @@ function changeProtocolSettings(protocol) {
   }
 }
 
-searchHelper.init().then(() => {
-  disableSearchElement.checked = !searchHelper.getDisable();
-  let frontend = searchHelper.getFrontend();
-  searchFrontendElement.value = frontend;
-  changeFrontendsSettings(frontend);
-
-  let protocol = searchHelper.getProtocol();
-  protocolElement.value = protocol;
-  changeProtocolSettings(protocol);
-
-  browser.storage.local.get("searxLatency").then(r => {
-    commonHelper.processDefaultCustomInstances(
-      'searx',
-      'normal',
-      searchHelper,
-      document,
-      searchHelper.getSearxNormalRedirectsChecks,
-      searchHelper.setSearxNormalRedirectsChecks,
-      searchHelper.getSearxNormalCustomRedirects,
-      searchHelper.setSearxNormalCustomRedirects,
-      r.searxLatency
-    );
-  })
-
-  commonHelper.processDefaultCustomInstances(
-    'searx',
-    'tor',
-    searchHelper,
-    document,
-    searchHelper.getSearxTorRedirectsChecks,
-    searchHelper.setSearxTorRedirectsChecks,
-    searchHelper.getSearxTorCustomRedirects,
-    searchHelper.setSearxTorCustomRedirects
-  );
-
-  commonHelper.processDefaultCustomInstances(
-    'searx',
-    'i2p',
-    searchHelper,
-    document,
-    searchHelper.getSearxI2pRedirectsChecks,
-    searchHelper.setSearxI2pRedirectsChecks,
-    searchHelper.getSearxI2pCustomRedirects,
-    searchHelper.setSearxI2pCustomRedirects
-  );
-
-  browser.storage.local.get("searxngLatency").then(r => {
-    commonHelper.processDefaultCustomInstances(
-      'searxng',
-      'normal',
-      searchHelper,
-      document,
-      searchHelper.getSearxngNormalRedirectsChecks,
-      searchHelper.setSearxngNormalRedirectsChecks,
-      searchHelper.getSearxngNormalCustomRedirects,
-      searchHelper.setSearxngNormalCustomRedirects,
-      r.searxngLatency,
-    );
-  })
-
-  commonHelper.processDefaultCustomInstances(
-    'searxng',
-    'tor',
-    searchHelper,
-    document,
-    searchHelper.getSearxngTorRedirectsChecks,
-    searchHelper.setSearxngTorRedirectsChecks,
-    searchHelper.getSearxngTorCustomRedirects,
-    searchHelper.setSearxngTorCustomRedirects
-  );
-
-  commonHelper.processDefaultCustomInstances(
-    'searxng',
-    'i2p',
-    searchHelper,
-    document,
-    searchHelper.getSearxngI2pRedirectsChecks,
-    searchHelper.setSearxngI2pRedirectsChecks,
-    searchHelper.getSearxngI2pCustomRedirects,
-    searchHelper.setSearxngI2pCustomRedirects
-  );
-
-  browser.storage.local.get("whoogleLatency").then(r => {
-    commonHelper.processDefaultCustomInstances(
-      'whoogle',
-      'normal',
-      searchHelper,
-      document,
-      searchHelper.getWhoogleNormalRedirectsChecks,
-      searchHelper.setWhoogleNormalRedirectsChecks,
-      searchHelper.getWhoogleNormalCustomRedirects,
-      searchHelper.setWhoogleNormalCustomRedirects,
-      r.whoogleLatency,
-    );
-  })
-
-  commonHelper.processDefaultCustomInstances(
-    'whoogle',
-    'tor',
-    searchHelper,
-    document,
-    searchHelper.getWhoogleTorRedirectsChecks,
-    searchHelper.setWhoogleTorRedirectsChecks,
-    searchHelper.getWhoogleTorCustomRedirects,
-    searchHelper.setWhoogleTorCustomRedirects
-  );
-
-  commonHelper.processDefaultCustomInstances(
-    'whoogle',
-    'i2p',
-    searchHelper,
-    document,
-    searchHelper.getWhoogleI2pRedirectsChecks,
-    searchHelper.setWhoogleI2pRedirectsChecks,
-    searchHelper.getWhoogleI2pCustomRedirects,
-    searchHelper.setWhoogleI2pCustomRedirects
-  );
-});
-
+commonHelper.processDefaultCustomInstances('searx', 'normal', searchHelper, document);
+commonHelper.processDefaultCustomInstances('searx', 'tor', searchHelper, document);
+commonHelper.processDefaultCustomInstances('searx', 'i2p', searchHelper, document);
+commonHelper.processDefaultCustomInstances('searxng', 'normal', searchHelper, document);
+commonHelper.processDefaultCustomInstances('searxng', 'tor', searchHelper, document);
+commonHelper.processDefaultCustomInstances('searxng', 'i2p', searchHelper, document);
+commonHelper.processDefaultCustomInstances('whoogle', 'normal', searchHelper, document);
+commonHelper.processDefaultCustomInstances('whoogle', 'tor', searchHelper, document);
+commonHelper.processDefaultCustomInstances('whoogle', 'i2p', searchHelper, document);
 
 let latencySearxElement = document.getElementById("latency-searx");
 let latencySearxLabel = document.getElementById("latency-searx-label");
@@ -230,17 +129,7 @@ latencySearxElement.addEventListener("click",
     commonHelper.testLatency(latencySearxLabel, redirects.searx.normal).then(r => {
       browser.storage.local.set({ searxLatency: r });
       latencySearxLabel.innerHTML = oldHtml;
-      commonHelper.processDefaultCustomInstances(
-        'searx',
-        'normal',
-        searchHelper,
-        document,
-        searchHelper.getSearxNormalRedirectsChecks,
-        searchHelper.setSearxNormalRedirectsChecks,
-        searchHelper.getSearxNormalCustomRedirects,
-        searchHelper.setSearxNormalCustomRedirects,
-        r,
-      );
+      commonHelper.processDefaultCustomInstances('searx', 'normal', searchHelper, document);
       latencySearxElement.removeEventListener("click", reloadWindow);
     });
   }
@@ -259,17 +148,7 @@ latencySearxngElement.addEventListener("click",
     commonHelper.testLatency(latencySearxngLabel, redirects.searxng.normal).then(r => {
       browser.storage.local.set({ searxngLatency: r });
       latencySearxngLabel.innerHTML = oldHtml;
-      commonHelper.processDefaultCustomInstances(
-        'searxng',
-        'normal',
-        searchHelper,
-        document,
-        searchHelper.getSearxngNormalRedirectsChecks,
-        searchHelper.setSearxngNormalRedirectsChecks,
-        searchHelper.getSearxngNormalCustomRedirects,
-        searchHelper.setSearxngNormalCustomRedirects,
-        r,
-      );
+      commonHelper.processDefaultCustomInstances('searxng', 'normal', searchHelper, document);
       latencySearxngElement.removeEventListener("click", reloadWindow);
     });
   }
@@ -288,18 +167,13 @@ latencyWhoogleElement.addEventListener("click",
     commonHelper.testLatency(latencyWhoogleLabel, redirects.whoogle.normal).then(r => {
       browser.storage.local.set({ whoogleLatency: r });
       latencyWhoogleLabel.innerHTML = oldHtml;
-      commonHelper.processDefaultCustomInstances(
-        'whoogle',
-        'normal',
-        searchHelper,
-        document,
-        searchHelper.getWhoogleNormalRedirectsChecks,
-        searchHelper.setWhoogleNormalRedirectsChecks,
-        searchHelper.getWhoogleNormalCustomRedirects,
-        searchHelper.setWhoogleNormalCustomRedirects,
-        r,
-      );
+      commonHelper.processDefaultCustomInstances('whoogle', 'normal', searchHelper, document);
       latencyWhoogleElement.removeEventListener("click", reloadWindow);
     });
   }
-);
\ No newline at end of file
+);
+
+window.onblur = () => {
+  searchHelper.initSearxCookies();
+  searchHelper.initSearxngCookies();
+}
\ No newline at end of file
diff --git a/src/pages/options/sendTargets/sendTargets.html b/src/pages/options/sendTargets/sendTargets.html
index c54c1582..b63c8233 100644
--- a/src/pages/options/sendTargets/sendTargets.html
+++ b/src/pages/options/sendTargets/sendTargets.html
@@ -23,7 +23,6 @@
       <div class="title"> <img src="../../../assets/images/tiktok-icon.png"><a href="../tiktok/tiktok.html" data-localise="__MSG_tiktok__">TikTok</a></div>
       <div class="title"> <img src="../../../assets/images/reddit-icon.png"><a href="../reddit/reddit.html" data-localise="__MSG_reddit__">Reddit</a></div>
       <div class="title"> <img src="../../../assets/images/imgur-icon.png"><a href="../imgur/imgur.html" data-localise="__MSG_imgur__">Imgur</a></div>
-      <div class="title"> <img src="../../../assets/images/pixiv-icon.svg"><a href="../pixiv/pixiv.html" data-localise="__MSG_pixiv__">Pixiv</a></div>
       <div class="title"> <img src="../../../assets/images/librespeed-icon.svg"><a href="../speedtest/speedtest.html" data-localise="__MSG_speedtest__">Speedtest</a></div>
       <div class="title"> <img src="../../../assets/images/spotify-icon.png"><a href="../spotify/spotify.html" data-localise="__MSG_spotify__">Spotify</a></div>
       <div class="title"> <img src="../../../assets/images/wikipedia-icon.svg"><a href="../wikipedia/wikipedia.html" data-localise="__MSG_wikipedia__">Wikipedia</a></div>
diff --git a/src/pages/options/sendTargets/sendTargets.js b/src/pages/options/sendTargets/sendTargets.js
index ae6f9e77..dc40f83f 100644
--- a/src/pages/options/sendTargets/sendTargets.js
+++ b/src/pages/options/sendTargets/sendTargets.js
@@ -2,18 +2,28 @@ import sendTargetsHelper from "../../../assets/javascripts/helpers/sendTargets.j
 import commonHelper from "../../../assets/javascripts/helpers/common.js";
 
 let disableSendTargetsElement = document.getElementById("disable-sendTargets");
-disableSendTargetsElement.addEventListener("change",
-    (event) => sendTargetsHelper.setDisable(!event.target.checked)
-);
-
 let protocolElement = document.getElementById("protocol")
-protocolElement.addEventListener("change",
-    (event) => {
-        let protocol = event.target.options[protocolElement.selectedIndex].value
-        sendTargetsHelper.setProtocol(protocol);
-        changeProtocolSettings(protocol);
+
+browser.storage.local.get(
+    [
+        "disableSendTarget",
+        "sendTargetsProtocol",
+    ],
+    r => {
+        disableSendTargetsElement.checked = !r.disableSendTarget;
+
+        protocolElement.value = r.sendTargetsProtocol;
+        changeProtocolSettings(r.sendTargetsProtocol);
     }
-);
+)
+
+document.addEventListener("change", async () => {
+    await browser.storage.local.set({
+        disableSendTarget: !disableSendTargetsElement.checked,
+        sendTargetsProtocol: protocolElement.value,
+    })
+    changeProtocolSettings(protocolElement.value);
+})
 
 function changeProtocolSettings(protocol) {
     let normalDiv = document.getElementsByClassName("normal")[0];
@@ -28,38 +38,8 @@ function changeProtocolSettings(protocol) {
     }
 }
 
-sendTargetsHelper.init().then(() => {
-    disableSendTargetsElement.checked = !sendTargetsHelper.getDisable();
-
-    let protocol = sendTargetsHelper.getProtocol();
-    protocolElement.value = protocol;
-    changeProtocolSettings(protocol);
-
-    browser.storage.local.get("sendLatency").then(r => {
-        commonHelper.processDefaultCustomInstances(
-            'send',
-            'normal',
-            sendTargetsHelper,
-            document,
-            sendTargetsHelper.getSendNormalRedirectsChecks,
-            sendTargetsHelper.setSendNormalRedirectsChecks,
-            sendTargetsHelper.getSendNormalCustomRedirects,
-            sendTargetsHelper.setSendNormalCustomRedirects,
-            r.sendLatency,
-        );
-    })
-
-    commonHelper.processDefaultCustomInstances(
-        'send',
-        'tor',
-        sendTargetsHelper,
-        document,
-        sendTargetsHelper.getSendTorRedirectsChecks,
-        sendTargetsHelper.setSendTorRedirectsChecks,
-        sendTargetsHelper.getSendTorCustomRedirects,
-        sendTargetsHelper.setSendTorCustomRedirects
-    )
-})
+commonHelper.processDefaultCustomInstances('send', 'normal', sendTargetsHelper, document);
+commonHelper.processDefaultCustomInstances('send', 'tor', sendTargetsHelper, document,)
 
 let latencyElement = document.getElementById("latency");
 let latencyLabel = document.getElementById("latency-label");
@@ -74,17 +54,7 @@ latencyElement.addEventListener("click",
         commonHelper.testLatency(latencyLabel, redirects.send.normal).then(r => {
             browser.storage.local.set({ sendLatency: r });
             latencyLabel.innerHTML = oldHtml;
-            commonHelper.processDefaultCustomInstances(
-                'send',
-                'normal',
-                sendTargetsHelper,
-                document,
-                sendTargetsHelper.getSendNormalRedirectsChecks,
-                sendTargetsHelper.setSendNormalRedirectsChecks,
-                sendTargetsHelper.getSendNormalCustomRedirects,
-                sendTargetsHelper.setSendNormalCustomRedirects,
-                r,
-            )
+            commonHelper.processDefaultCustomInstances('send', 'normal', sendTargetsHelper, document)
             latencyElement.removeEventListener("click", reloadWindow)
         });
     }
diff --git a/src/pages/options/speedtest/speedtest.html b/src/pages/options/speedtest/speedtest.html
index 5ac5cdaa..369d226a 100644
--- a/src/pages/options/speedtest/speedtest.html
+++ b/src/pages/options/speedtest/speedtest.html
@@ -23,7 +23,6 @@
       <div class="title"> <img src="../../../assets/images/tiktok-icon.png"><a href="../tiktok/tiktok.html" data-localise="__MSG_tiktok__">TikTok</a></div>
       <div class="title"> <img src="../../../assets/images/reddit-icon.png"><a href="../reddit/reddit.html" data-localise="__MSG_reddit__">Reddit</a></div>
       <div class="title"> <img src="../../../assets/images/imgur-icon.png"><a href="../imgur/imgur.html" data-localise="__MSG_imgur__">Imgur</a></div>
-      <div class="title"> <img src="../../../assets/images/pixiv-icon.svg"><a href="../pixiv/pixiv.html" data-localise="__MSG_pixiv__">Pixiv</a></div>
       <div class="title"> <img src="../../../assets/images/librespeed-icon.svg"><a class="selected" href="../speedtest/speedtest.html" data-localise="__MSG_speedtest__">Speedtest</a></div>
       <div class="title"> <img src="../../../assets/images/spotify-icon.png"><a href="../spotify/spotify.html" data-localise="__MSG_spotify__">Spotify</a></div>
       <div class="title"> <img src="../../../assets/images/wikipedia-icon.svg"><a href="../wikipedia/wikipedia.html" data-localise="__MSG_wikipedia__">Wikipedia</a></div>
diff --git a/src/pages/options/speedtest/speedtest.js b/src/pages/options/speedtest/speedtest.js
index 077d6440..95fa9fea 100644
--- a/src/pages/options/speedtest/speedtest.js
+++ b/src/pages/options/speedtest/speedtest.js
@@ -2,18 +2,28 @@ import speedtestHelper from "../../../assets/javascripts/helpers/speedtest.js";
 import commonHelper from "../../../assets/javascripts/helpers/common.js";
 
 let disableSpeedtestElement = document.getElementById("disable-speedtest");
-disableSpeedtestElement.addEventListener("change",
-    (event) => speedtestHelper.setDisable(!event.target.checked)
-);
-
 let protocolElement = document.getElementById("protocol")
-protocolElement.addEventListener("change",
-    (event) => {
-        let protocol = event.target.options[protocolElement.selectedIndex].value
-        speedtestHelper.setProtocol(protocol);
-        changeProtocolSettings(protocol);
+
+browser.storage.local.get(
+    [
+        "disableSpeedtest",
+        "speedtestProtocol",
+    ],
+    r => {
+        disableSpeedtestElement.checked = !r.disableSpeedtest;
+
+        protocolElement.value = r.speedtestProtocol;
+        changeProtocolSettings(r.speedtestProtocol);
     }
-);
+)
+
+document.addEventListener("change", async () => {
+    await browser.storage.local.set({
+        disableSpeedtest: !disableSpeedtestElement.checked,
+        speedtestProtocol: protocolElement.value,
+    })
+    changeProtocolSettings(protocolElement.value);
+})
 
 function changeProtocolSettings(protocol) {
     let normalDiv = document.getElementsByClassName("normal")[0];
@@ -28,38 +38,8 @@ function changeProtocolSettings(protocol) {
     }
 }
 
-speedtestHelper.init().then(() => {
-    disableSpeedtestElement.checked = !speedtestHelper.getDisable();
-
-    let protocol = speedtestHelper.getProtocol();
-    protocolElement.value = protocol;
-    changeProtocolSettings(protocol);
-
-    browser.storage.local.get("librespeedLatency").then(r => {
-    commonHelper.processDefaultCustomInstances(
-        'librespeed',
-        'normal',
-        speedtestHelper,
-        document,
-        speedtestHelper.getLibrespeedNormalRedirectsChecks,
-        speedtestHelper.setLibrespeedNormalRedirectsChecks,
-        speedtestHelper.getLibrespeedNormalCustomRedirects,
-        speedtestHelper.setLibrespeedNormalCustomRedirects,
-        r.librespeedLatency,
-    );
-    })
-
-    commonHelper.processDefaultCustomInstances(
-        'librespeed',
-        'tor',
-        speedtestHelper,
-        document,
-        speedtestHelper.getLibrespeedTorRedirectsChecks,
-        speedtestHelper.setLibrespeedTorRedirectsChecks,
-        speedtestHelper.getLibrespeedTorCustomRedirects,
-        speedtestHelper.setLibrespeedTorCustomRedirects
-    )
-})
+commonHelper.processDefaultCustomInstances('librespeed', 'normal', speedtestHelper, document);
+commonHelper.processDefaultCustomInstances('librespeed', 'tor', speedtestHelper, document);
 
 let latencyElement = document.getElementById("latency");
 let latencyLabel = document.getElementById("latency-label");
@@ -74,17 +54,7 @@ latencyElement.addEventListener("click",
         commonHelper.testLatency(latencyLabel, redirects.librespeed.normal).then(r => {
             browser.storage.local.set({ librespeedLatency: r });
             latencyLabel.innerHTML = oldHtml;
-            commonHelper.processDefaultCustomInstances(
-                'librespeed',
-                'normal',
-                speedtestHelper,
-                document,
-                speedtestHelper.getLibrespeedNormalRedirectsChecks,
-                speedtestHelper.setLibrespeedNormalRedirectsChecks,
-                speedtestHelper.getLibrespeedNormalCustomRedirects,
-                speedtestHelper.setLibrespeedNormalCustomRedirects,
-                r,
-            )
+            commonHelper.processDefaultCustomInstances('librespeed', 'normal', speedtestHelper, document)
             latencyElement.removeEventListener("click", reloadWindow)
         });
     }
diff --git a/src/pages/options/spotify/spotify.html b/src/pages/options/spotify/spotify.html
index 0496875a..03a1ca9e 100644
--- a/src/pages/options/spotify/spotify.html
+++ b/src/pages/options/spotify/spotify.html
@@ -23,7 +23,6 @@
       <div class="title"> <img src="../../../assets/images/tiktok-icon.png"><a href="../tiktok/tiktok.html" data-localise="__MSG_tiktok__">TikTok</a></div>
       <div class="title"> <img src="../../../assets/images/reddit-icon.png"><a href="../reddit/reddit.html" data-localise="__MSG_reddit__">Reddit</a></div>
       <div class="title"> <img src="../../../assets/images/imgur-icon.png"><a href="../imgur/imgur.html" data-localise="__MSG_imgur__">Imgur</a></div>
-      <div class="title"> <img src="../../../assets/images/pixiv-icon.svg"><a href="../pixiv/pixiv.html" data-localise="__MSG_pixiv__">Pixiv</a></div>
       <div class="title"> <img src="../../../assets/images/librespeed-icon.svg"><a href="../speedtest/speedtest.html" data-localise="__MSG_speedtest__">Speedtest</a></div>
       <div class="title"> <img src="../../../assets/images/spotify-icon.png"><a class="selected" href="../spotify/spotify.html" data-localise="__MSG_spotify__">Spotify</a></div>
       <div class="title"> <img src="../../../assets/images/wikipedia-icon.svg"><a href="../wikipedia/wikipedia.html" data-localise="__MSG_wikipedia__">Wikipedia</a></div>
@@ -62,13 +61,6 @@
       <h4 data-localise="__MSG_enable__">Enable</h4>
       <input id="disable-spotify" type="checkbox">
     </div>
-    <div class="some-block option-block">
-      <h4 data-localise="__MSG_protocol__">Protocol</h4>
-      <select id="protocol">
-        <option value="normal" data-localise="__MSG_normal__">Normal</option>
-        <option value="tor" data-localise="__MSG_tor__">Tor</option>
-      </select>
-    </div>
     <div id="soju">
       <hr>
       <div class="normal">
@@ -99,27 +91,6 @@
                 </label>
                 <input class="button button-inline" id="latency" style="display:none;">
       </div>
-      <div class="tor">
-                <div class="some-block option-block">
-                  <h4 data-localise="__MSG_defaultInstances__">Default Instances</h4>
-                </div>
-                <div class="checklist"></div>
-                <hr>
-                <div class="some-block option-block">
-                  <h4 data-localise="__MSG_customInstances__">Custom Instances</h4>
-                </div>
-                <form class="custom-instance-form">
-                  <div class="some-block option-block">
-                    <input class="custom-instance" placeholder="https://soju.onion" type="url">
-                    <button class="add add-instance" type="submit">
-                      <svg xmlns="https://www.w3.org/2000/svg" height="20px" viewBox="0 0 24 24" width="20px" fill="currentColor">
-                        <path d="M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z"></path>
-                      </svg>
-                    </button>
-                  </div>
-                </form>
-                <div class="checklist custom-checklist"></div>
-      </div>
       <script type="module" src="../init.js"></script>
       <script type="module" src="./spotify.js"></script>
     </div>
diff --git a/src/pages/options/spotify/spotify.js b/src/pages/options/spotify/spotify.js
index d158412d..33cc9e91 100644
--- a/src/pages/options/spotify/spotify.js
+++ b/src/pages/options/spotify/spotify.js
@@ -2,64 +2,17 @@ import spotifyHelper from "../../../assets/javascripts/helpers/spotify.js";
 import commonHelper from "../../../assets/javascripts/helpers/common.js";
 
 let disableSpotifyElement = document.getElementById("disable-spotify");
-disableSpotifyElement.addEventListener("change",
-    (event) => spotifyHelper.setDisable(!event.target.checked)
-);
 
-let protocolElement = document.getElementById("protocol")
-protocolElement.addEventListener("change",
-    (event) => {
-        let protocol = event.target.options[protocolElement.selectedIndex].value
-        spotifyHelper.setProtocol(protocol);
-        changeProtocolSettings(protocol);
+browser.storage.local.get(
+    [
+        "disableSpotifyTargets",
+    ],
+    r => {
+        disableSpotifyElement.checked = !r.disableSpotifyTargets;
     }
-);
+)
 
-function changeProtocolSettings(protocol) {
-    let normalDiv = document.getElementsByClassName("normal")[0];
-    let torDiv = document.getElementsByClassName("tor")[0];
-    if (protocol == 'normal') {
-        normalDiv.style.display = 'block';
-        torDiv.style.display = 'none';
-    }
-    else if (protocol == 'tor') {
-        normalDiv.style.display = 'none';
-        torDiv.style.display = 'block';
-    }
-}
-
-spotifyHelper.init().then(() => {
-    disableSpotifyElement.checked = !spotifyHelper.getDisable();
-
-    let protocol = spotifyHelper.getProtocol();
-    protocolElement.value = protocol;
-    changeProtocolSettings(protocol);
-
-    browser.storage.local.get("sojuLatency").then(r => {
-        commonHelper.processDefaultCustomInstances(
-            'soju',
-            'normal',
-            spotifyHelper,
-            document,
-            spotifyHelper.getSojuNormalRedirectsChecks,
-            spotifyHelper.setSojuNormalRedirectsChecks,
-            spotifyHelper.getSojuNormalCustomRedirects,
-            spotifyHelper.setSojuNormalCustomRedirects,
-            r.sojuLatency,
-        );
-    })
-
-    commonHelper.processDefaultCustomInstances(
-        'soju',
-        'tor',
-        spotifyHelper,
-        document,
-        spotifyHelper.getSojuTorRedirectsChecks,
-        spotifyHelper.setSojuTorRedirectsChecks,
-        spotifyHelper.getSojuTorCustomRedirects,
-        spotifyHelper.setSojuTorCustomRedirects
-    )
-})
+commonHelper.processDefaultCustomInstances('soju', 'normal', spotifyHelper, document);
 
 let latencyElement = document.getElementById("latency");
 let latencyLabel = document.getElementById("latency-label");
@@ -74,17 +27,7 @@ latencyElement.addEventListener("click",
         commonHelper.testLatency(latencyLabel, redirects.soju.normal).then(r => {
             browser.storage.local.set({ sojuLatency: r });
             latencyLabel.innerHTML = oldHtml;
-            commonHelper.processDefaultCustomInstances(
-                'soju',
-                'normal',
-                spotifyHelper,
-                document,
-                spotifyHelper.getSojuNormalRedirectsChecks,
-                spotifyHelper.setSojuNormalRedirectsChecks,
-                spotifyHelper.getSojuNormalCustomRedirects,
-                spotifyHelper.setSojuNormalCustomRedirects,
-                r,
-            )
+            commonHelper.processDefaultCustomInstances('soju', 'normal', spotifyHelper, document)
             latencyElement.removeEventListener("click", reloadWindow)
         });
     }
diff --git a/src/pages/options/tiktok/tiktok.html b/src/pages/options/tiktok/tiktok.html
index 9aff1e47..e422eef7 100644
--- a/src/pages/options/tiktok/tiktok.html
+++ b/src/pages/options/tiktok/tiktok.html
@@ -23,7 +23,6 @@
       <div class="title"> <img src="../../../assets/images/tiktok-icon.png"><a class="selected" href="../tiktok/tiktok.html" data-localise="__MSG_tiktok__">TikTok</a></div>
       <div class="title"> <img src="../../../assets/images/reddit-icon.png"><a href="../reddit/reddit.html" data-localise="__MSG_reddit__">Reddit</a></div>
       <div class="title"> <img src="../../../assets/images/imgur-icon.png"><a href="../imgur/imgur.html" data-localise="__MSG_imgur__">Imgur</a></div>
-      <div class="title"> <img src="../../../assets/images/pixiv-icon.svg"><a href="../pixiv/pixiv.html" data-localise="__MSG_pixiv__">Pixiv</a></div>
       <div class="title"> <img src="../../../assets/images/librespeed-icon.svg"><a href="../speedtest/speedtest.html" data-localise="__MSG_speedtest__">Speedtest</a></div>
       <div class="title"> <img src="../../../assets/images/spotify-icon.png"><a href="../spotify/spotify.html" data-localise="__MSG_spotify__">Spotify</a></div>
       <div class="title"> <img src="../../../assets/images/wikipedia-icon.svg"><a href="../wikipedia/wikipedia.html" data-localise="__MSG_wikipedia__">Wikipedia</a></div>
diff --git a/src/pages/options/tiktok/tiktok.js b/src/pages/options/tiktok/tiktok.js
index 299664db..61841145 100644
--- a/src/pages/options/tiktok/tiktok.js
+++ b/src/pages/options/tiktok/tiktok.js
@@ -26,68 +26,44 @@ document.addEventListener("change", async () => {
 
 window.onblur = tiktokHelper.initProxiTokCookies;
 
-function init() {
-    tiktokHelper.init().then(() => {
-        browser.storage.local.get(
-            [
-                "disableTiktok",
-                "tiktokProtocol",
-
-                "enableTiktokCustomSettings",
-
-                "proxiTokTheme",
-                "proxiTokApiLegacy",
-            ],
-            r => {
-                disable.checked = !r.disableTiktok;
-                protocol.value = r.tiktokProtocol;
-                let normalDiv = document.getElementsByClassName("normal")[0];
-                let torDiv = document.getElementsByClassName("tor")[0];
-                if (r.tiktokProtocol == 'normal') {
-                    normalDiv.style.display = 'block';
-                    torDiv.style.display = 'none';
-                }
-                else if (r.tiktokProtocol == 'tor') {
-                    normalDiv.style.display = 'none';
-                    torDiv.style.display = 'block';
-                }
-
-                enableCustomSettings.checked = r.enableTiktokCustomSettings;
-                if (r.enableTiktokCustomSettings)
-                    customSettingsDiv.style.display = 'block';
-                else
-                    customSettingsDiv.style.display = 'none';
-
-                theme.value = r.proxiTokTheme;
-                api_legacy.value = r.proxiTokApiLegacy
-            }
-        )
-        browser.storage.local.get("proxiTokLatency").then(r => {
-            commonHelper.processDefaultCustomInstances(
-                'proxiTok',
-                'normal',
-                tiktokHelper,
-                document,
-                tiktokHelper.getProxiTokNormalRedirectsChecks,
-                tiktokHelper.setProxiTokNormalRedirectsChecks,
-                tiktokHelper.getProxiTokNormalCustomRedirects,
-                tiktokHelper.setProxiTokNormalCustomRedirects,
-                r.proxiTokLatency,
-            );
-        })
-        commonHelper.processDefaultCustomInstances(
-            'proxiTok',
-            'tor',
-            tiktokHelper,
-            document,
-            tiktokHelper.getProxiTokTorRedirectsChecks,
-            tiktokHelper.setProxiTokTorRedirectsChecks,
-            tiktokHelper.getProxiTokTorCustomRedirects,
-            tiktokHelper.setProxiTokTorCustomRedirects
-        )
-    })
-}
-init();
+browser.storage.local.get(
+    [
+        "disableTiktok",
+        "tiktokProtocol",
+
+        "enableTiktokCustomSettings",
+
+        "proxiTokTheme",
+        "proxiTokApiLegacy",
+    ],
+    r => {
+        disable.checked = !r.disableTiktok;
+        protocol.value = r.tiktokProtocol;
+        let normalDiv = document.getElementsByClassName("normal")[0];
+        let torDiv = document.getElementsByClassName("tor")[0];
+        if (r.tiktokProtocol == 'normal') {
+            normalDiv.style.display = 'block';
+            torDiv.style.display = 'none';
+        }
+        else if (r.tiktokProtocol == 'tor') {
+            normalDiv.style.display = 'none';
+            torDiv.style.display = 'block';
+        }
+
+        enableCustomSettings.checked = r.enableTiktokCustomSettings;
+        if (r.enableTiktokCustomSettings)
+            customSettingsDiv.style.display = 'block';
+        else
+            customSettingsDiv.style.display = 'none';
+
+        theme.value = r.proxiTokTheme;
+        api_legacy.value = r.proxiTokApiLegacy
+    }
+)
+
+commonHelper.processDefaultCustomInstances('proxiTok', 'normal', tiktokHelper, document);
+commonHelper.processDefaultCustomInstances('proxiTok', 'tor', tiktokHelper, document)
+
 
 let latencyElement = document.getElementById("latency");
 let latencyLabel = document.getElementById("latency-label");
@@ -102,17 +78,7 @@ latencyElement.addEventListener("click",
         commonHelper.testLatency(latencyLabel, redirects.proxiTok.normal).then(r => {
             browser.storage.local.set({ proxiTokLatency: r });
             latencyLabel.innerHTML = oldHtml;
-            commonHelper.processDefaultCustomInstances(
-                'proxiTok',
-                'normal',
-                tiktokHelper,
-                document,
-                tiktokHelper.getProxiTokNormalRedirectsChecks,
-                tiktokHelper.setProxiTokNormalRedirectsChecks,
-                tiktokHelper.getProxiTokNormalCustomRedirects,
-                tiktokHelper.setProxiTokNormalCustomRedirects,
-                r,
-            )
+            commonHelper.processDefaultCustomInstances('proxiTok', 'normal', tiktokHelper, document)
             latencyElement.removeEventListener("click", reloadWindow)
         });
     }
diff --git a/src/pages/options/translate/translate.html b/src/pages/options/translate/translate.html
index 8f63ace9..f80854f1 100644
--- a/src/pages/options/translate/translate.html
+++ b/src/pages/options/translate/translate.html
@@ -23,7 +23,6 @@
       <div class="title"> <img src="../../../assets/images/tiktok-icon.png"><a href="../tiktok/tiktok.html" data-localise="__MSG_tiktok__">TikTok</a></div>
       <div class="title"> <img src="../../../assets/images/reddit-icon.png"><a href="../reddit/reddit.html" data-localise="__MSG_reddit__">Reddit</a></div>
       <div class="title"> <img src="../../../assets/images/imgur-icon.png"><a href="../imgur/imgur.html" data-localise="__MSG_imgur__">Imgur</a></div>
-      <div class="title"> <img src="../../../assets/images/pixiv-icon.svg"><a href="../pixiv/pixiv.html" data-localise="__MSG_pixiv__">Pixiv</a></div>
       <div class="title"> <img src="../../../assets/images/librespeed-icon.svg"><a href="../speedtest/speedtest.html" data-localise="__MSG_speedtest__">Speedtest</a></div>
       <div class="title"> <img src="../../../assets/images/spotify-icon.png"><a href="../spotify/spotify.html" data-localise="__MSG_spotify__">Spotify</a></div>
       <div class="title"> <img src="../../../assets/images/wikipedia-icon.svg"><a href="../wikipedia/wikipedia.html" data-localise="__MSG_wikipedia__">Wikipedia</a></div>
diff --git a/src/pages/options/twitter/twitter.html b/src/pages/options/twitter/twitter.html
index d7b14abf..d553d72c 100644
--- a/src/pages/options/twitter/twitter.html
+++ b/src/pages/options/twitter/twitter.html
@@ -23,7 +23,6 @@
       <div class="title"> <img src="../../../assets/images/tiktok-icon.png"><a href="../tiktok/tiktok.html" data-localise="__MSG_tiktok__">TikTok</a></div>
       <div class="title"> <img src="../../../assets/images/reddit-icon.png"><a href="../reddit/reddit.html" data-localise="__MSG_reddit__">Reddit</a></div>
       <div class="title"> <img src="../../../assets/images/imgur-icon.png"><a href="../imgur/imgur.html" data-localise="__MSG_imgur__">Imgur</a></div>
-      <div class="title"> <img src="../../../assets/images/pixiv-icon.svg"><a href="../pixiv/pixiv.html" data-localise="__MSG_pixiv__">Pixiv</a></div>
       <div class="title"> <img src="../../../assets/images/librespeed-icon.svg"><a href="../speedtest/speedtest.html" data-localise="__MSG_speedtest__">Speedtest</a></div>
       <div class="title"> <img src="../../../assets/images/spotify-icon.png"><a href="../spotify/spotify.html" data-localise="__MSG_spotify__">Spotify</a></div>
       <div class="title"> <img src="../../../assets/images/wikipedia-icon.svg"><a href="../wikipedia/wikipedia.html" data-localise="__MSG_wikipedia__">Wikipedia</a></div>
diff --git a/src/pages/options/twitter/twitter.js b/src/pages/options/twitter/twitter.js
index bd611497..b77f5ecc 100644
--- a/src/pages/options/twitter/twitter.js
+++ b/src/pages/options/twitter/twitter.js
@@ -21,8 +21,56 @@ let hlsPlayback = document.getElementById('nitter').getElementsByClassName('hlsP
 let proxyVideos = document.getElementById('nitter').getElementsByClassName('proxyVideos')[0];
 let muteVideos = document.getElementById('nitter').getElementsByClassName('muteVideos')[0];
 let autoplayGifs = document.getElementById('nitter').getElementsByClassName('autoplayGifs')[0];
-
 let nitterElement = document.getElementById("nitter");
+
+browser.storage.local.get(
+    [
+        "disableTwitter",
+        "twitterProtocol",
+        "enableTwitterCustomSettings",
+        "bypassWatchOnTwitter",
+        "nitterTheme",
+        "nitterInfiniteScroll",
+        "nitterStickyProfile",
+        "nitterBidiSupport",
+        "nitterHideTweetStats",
+        "nitterHideBanner",
+        "nitterHidePins",
+        "nitterHideReplies",
+        "nitterSquareAvatars",
+        "nitterMp4Playback",
+        "nitterHlsPlayback",
+        "nitterProxyVideos",
+        "nitterMuteVideos",
+        "nitterAutoplayGifs",
+    ],
+    r => {
+        disableTwitterElement.checked = !r.disableTwitter;
+        enableYoutubeCustomSettingsElement.checked = r.enableTwitterCustomSettings;
+        bypassWatchOnTwitterElement.checked = r.bypassWatchOnTwitter;
+        protocolElement.value = r.twitterProtocol;
+        changeProtocolSettings(r.twitterProtocol);
+        
+        // Display
+        theme.value = r.nitterTheme;
+        infiniteScroll.checked = r.nitterInfiniteScroll;
+        stickyProfile.checked = r.nitterStickyProfile;
+        bidiSupport.checked = r.nitterBidiSupport;
+        hideTweetStats.checked = r.nitterHideTweetStats;
+        hideBanner.checked = r.nitterHideBanner;
+        hidePins.checked = r.nitterHidePins;
+        hideReplies.checked = r.nitterHideReplies;
+        squareAvatars.checked = r.nitterSquareAvatars;
+        
+        // Media
+        mp4Playback.checked = r.nitterMp4Playback;
+        hlsPlayback.checked = r.nitterHlsPlayback;
+        proxyVideos.checked = r.nitterProxyVideos;
+        muteVideos.checked = r.nitterMuteVideos;
+        autoplayGifs.checked = r.nitterAutoplayGifs;
+    }
+)
+
 document.addEventListener("change", async () => {
     await browser.storage.local.set({
         disableTwitter: !disableTwitterElement.checked,
@@ -68,58 +116,8 @@ function changeProtocolSettings(protocol) {
         for (const item of customSettingsDivElement) item.style.display = 'none';
 }
 
-function init() {
-    twitterHelper.init().then(() => {
-        disableTwitterElement.checked = !twitterHelper.getDisable();
-        enableYoutubeCustomSettingsElement.checked = twitterHelper.getEnableCustomSettings();
-        bypassWatchOnTwitterElement.checked = twitterHelper.getBypassWatchOnTwitter();
-
-        let protocol = twitterHelper.getProtocol();
-        protocolElement.value = protocol;
-        changeProtocolSettings(protocol);
-        theme.value = twitterHelper.getTheme();
-        infiniteScroll.checked = twitterHelper.getInfiniteScroll();
-        stickyProfile.checked = twitterHelper.getStickyProfile();
-        bidiSupport.checked = twitterHelper.getBidiSupport();
-        hideTweetStats.checked = twitterHelper.getHideTweetStats();
-        hideBanner.checked = twitterHelper.getHideBanner();
-        hidePins.checked = twitterHelper.getHidePins();
-        hideReplies.checked = twitterHelper.getHideReplies();
-        squareAvatars.checked = twitterHelper.getSquareAvatars();
-        mp4Playback.checked = twitterHelper.getMp4Playback();
-        hlsPlayback.checked = twitterHelper.getHlsPlayback();
-        proxyVideos.checked = twitterHelper.getProxyVideos();
-        muteVideos.checked = twitterHelper.getMuteVideos();
-        autoplayGifs.checked = twitterHelper.getAutoplayGifs();
-
-        browser.storage.local.get("nitterLatency").then(r => {
-            commonHelper.processDefaultCustomInstances(
-                'nitter',
-                'normal',
-                twitterHelper,
-                document,
-                twitterHelper.getNitterNormalRedirectsChecks,
-                twitterHelper.setNitterNormalRedirectsChecks,
-                twitterHelper.getNitterNormalCustomRedirects,
-                twitterHelper.setNitterNormalCustomRedirects,
-                r.nitterLatency,
-            );
-        });
-
-        commonHelper.processDefaultCustomInstances(
-            'nitter',
-            'tor',
-            twitterHelper,
-            document,
-            twitterHelper.getNitterTorRedirectsChecks,
-            twitterHelper.setNitterTorRedirectsChecks,
-            twitterHelper.getNitterTorCustomRedirects,
-            twitterHelper.setNitterTorCustomRedirects
-        )
-    });
-}
-init();
-
+// commonHelper.processDefaultCustomInstances('nitter', 'normal', twitterHelper, document);
+// commonHelper.processDefaultCustomInstances('nitter', 'tor', twitterHelper, document)
 window.onblur = twitterHelper.initNitterCookies;
 
 let latencyElement = document.getElementById("latency");
@@ -135,17 +133,7 @@ latencyElement.addEventListener("click",
         commonHelper.testLatency(latencyLabel, redirects.nitter.normal).then(r => {
             browser.storage.local.set({ nitterLatency: r });
             latencyLabel.innerHTML = oldHtml;
-            commonHelper.processDefaultCustomInstances(
-                'nitter',
-                'normal',
-                twitterHelper,
-                document,
-                twitterHelper.getNitterNormalRedirectsChecks,
-                twitterHelper.setNitterNormalRedirectsChecks,
-                twitterHelper.getNitterNormalCustomRedirects,
-                twitterHelper.setNitterNormalCustomRedirects,
-                r,
-            )
+            commonHelper.processDefaultCustomInstances('nitter', 'normal', twitterHelper, document)
             latencyElement.removeEventListener("click", reloadWindow)
         });
     }
diff --git a/src/pages/options/wikipedia/wikipedia.html b/src/pages/options/wikipedia/wikipedia.html
index 246c269b..4d0f08cb 100644
--- a/src/pages/options/wikipedia/wikipedia.html
+++ b/src/pages/options/wikipedia/wikipedia.html
@@ -23,7 +23,6 @@
       <div class="title"> <img src="../../../assets/images/tiktok-icon.png"><a href="../tiktok/tiktok.html" data-localise="__MSG_tiktok__">TikTok</a></div>
       <div class="title"> <img src="../../../assets/images/reddit-icon.png"><a href="../reddit/reddit.html" data-localise="__MSG_reddit__">Reddit</a></div>
       <div class="title"> <img src="../../../assets/images/imgur-icon.png"><a href="../imgur/imgur.html" data-localise="__MSG_imgur__">Imgur</a></div>
-      <div class="title"> <img src="../../../assets/images/pixiv-icon.svg"><a href="../pixiv/pixiv.html" data-localise="__MSG_pixiv__">Pixiv</a></div>
       <div class="title"> <img src="../../../assets/images/librespeed-icon.svg"><a href="../speedtest/speedtest.html" data-localise="__MSG_speedtest__">Speedtest</a></div>
       <div class="title"> <img src="../../../assets/images/spotify-icon.png"><a href="../spotify/spotify.html" data-localise="__MSG_spotify__">Spotify</a></div>
       <div class="title"> <img src="../../../assets/images/wikipedia-icon.svg"><a class="selected" href="../wikipedia/wikipedia.html" data-localise="__MSG_wikipedia__">Wikipedia</a></div>
diff --git a/src/pages/options/wikipedia/wikipedia.js b/src/pages/options/wikipedia/wikipedia.js
index 526068b4..0d9a1a6c 100644
--- a/src/pages/options/wikipedia/wikipedia.js
+++ b/src/pages/options/wikipedia/wikipedia.js
@@ -2,18 +2,27 @@ import wikipediaHelper from "../../../assets/javascripts/helpers/wikipedia.js";
 import commonHelper from "../../../assets/javascripts/helpers/common.js";
 
 let disableWikipediaElement = document.getElementById("disable-wikipedia");
-disableWikipediaElement.addEventListener("change",
-    event => wikipediaHelper.setDisable(!event.target.checked)
-);
-
 let protocolElement = document.getElementById("protocol");
-protocolElement.addEventListener("change",
-    event => {
-        let protocol = event.target.options[protocolElement.selectedIndex].value
-        wikipediaHelper.setProtocol(protocol);
-        changeProtocolSettings(protocol);
+
+browser.storage.local.get(
+    [
+        "disableWikipedia",
+        "wikipediaProtocol",
+    ],
+    r => {
+        disableWikipediaElement.checked = !r.disableWikipedia;
+        protocolElement.value = r.wikipediaProtocol;
+        changeProtocolSettings(r.wikipediaProtocol);
     }
-);
+)
+
+document.addEventListener("change", async () => {
+    await browser.storage.local.set({
+        disableWikipedia: !disableWikipediaElement.checked,
+        wikipediaProtocol: protocolElement.value,
+    })
+    changeProtocolSettings(protocolElement.value)
+})
 
 function changeProtocolSettings(protocol) {
     let normalDiv = document.getElementsByClassName("normal")[0];
@@ -35,51 +44,11 @@ function changeProtocolSettings(protocol) {
         i2pDiv.style.display = 'block';
     }
 }
+commonHelper.processDefaultCustomInstances('wikiless', 'normal', wikipediaHelper, document);
+commonHelper.processDefaultCustomInstances('wikiless', 'tor', wikipediaHelper, document)
+commonHelper.processDefaultCustomInstances('wikiless', 'i2p', wikipediaHelper, document)
 
-wikipediaHelper.init().then(() => {
-    disableWikipediaElement.checked = !wikipediaHelper.getDisable();
-
-    let protocol = wikipediaHelper.getProtocol();
-    console.log('protocol', protocol);
-    protocolElement.value = protocol;
-    changeProtocolSettings(protocol);
-
-    browser.storage.local.get("wikilessLatency").then(r => {
-        commonHelper.processDefaultCustomInstances(
-            'wikiless',
-            'normal',
-            wikipediaHelper,
-            document,
-            wikipediaHelper.getWikilessNormalRedirectsChecks,
-            wikipediaHelper.setWikilessNormalRedirectsChecks,
-            wikipediaHelper.getWikilessNormalCustomRedirects,
-            wikipediaHelper.setWikilessNormalCustomRedirects,
-            r.wikilessLatency,
-        );
-    })
-
-    commonHelper.processDefaultCustomInstances(
-        'wikiless',
-        'tor',
-        wikipediaHelper,
-        document,
-        wikipediaHelper.getWikilessTorRedirectsChecks,
-        wikipediaHelper.setWikilessTorRedirectsChecks,
-        wikipediaHelper.getWikilessTorCustomRedirects,
-        wikipediaHelper.setWikilessTorCustomRedirects
-    )
-
-    commonHelper.processDefaultCustomInstances(
-        'wikiless',
-        'i2p',
-        wikipediaHelper,
-        document,
-        wikipediaHelper.getWikilessI2pRedirectsChecks,
-        wikipediaHelper.setWikilessI2pRedirectsChecks,
-        wikipediaHelper.getWikilessI2pCustomRedirects,
-        wikipediaHelper.setWikilessI2pCustomRedirects
-    )
-})
+window.onblur = wikipediaHelper.initWikilessCookies;
 
 let latencyElement = document.getElementById("latency");
 let latencyLabel = document.getElementById("latency-label");
@@ -94,17 +63,7 @@ latencyElement.addEventListener("click",
         commonHelper.testLatency(latencyLabel, redirects.wikiless.normal).then(r => {
             browser.storage.local.set({ wikilessLatency: r });
             latencyLabel.innerHTML = oldHtml;
-            commonHelper.processDefaultCustomInstances(
-                'wikiless',
-                'normal',
-                wikipediaHelper,
-                document,
-                wikipediaHelper.getWikilessNormalRedirectsChecks,
-                wikipediaHelper.setWikilessNormalRedirectsChecks,
-                wikipediaHelper.getWikilessNormalCustomRedirects,
-                wikipediaHelper.setWikilessNormalCustomRedirects,
-                r,
-            )
+            commonHelper.processDefaultCustomInstances('wikiless', 'normal', wikipediaHelper, document)
             latencyElement.removeEventListener("click", reloadWindow)
         });
     }
diff --git a/src/pages/options/youtube/youtube.html b/src/pages/options/youtube/youtube.html
index 569e7f12..aa257726 100644
--- a/src/pages/options/youtube/youtube.html
+++ b/src/pages/options/youtube/youtube.html
@@ -23,7 +23,6 @@
       <div class="title"> <img src="../../../assets/images/tiktok-icon.png"><a href="../tiktok/tiktok.html" data-localise="__MSG_tiktok__">TikTok</a></div>
       <div class="title"> <img src="../../../assets/images/reddit-icon.png"><a href="../reddit/reddit.html" data-localise="__MSG_reddit__">Reddit</a></div>
       <div class="title"> <img src="../../../assets/images/imgur-icon.png"><a href="../imgur/imgur.html" data-localise="__MSG_imgur__">Imgur</a></div>
-      <div class="title"> <img src="../../../assets/images/pixiv-icon.svg"><a href="../pixiv/pixiv.html" data-localise="__MSG_pixiv__">Pixiv</a></div>
       <div class="title"> <img src="../../../assets/images/librespeed-icon.svg"><a href="../speedtest/speedtest.html" data-localise="__MSG_speedtest__">Speedtest</a></div>
       <div class="title"> <img src="../../../assets/images/spotify-icon.png"><a href="../spotify/spotify.html" data-localise="__MSG_spotify__">Spotify</a></div>
       <div class="title"> <img src="../../../assets/images/wikipedia-icon.svg"><a href="../wikipedia/wikipedia.html" data-localise="__MSG_wikipedia__">Wikipedia</a></div>
@@ -182,7 +181,7 @@
           <input class="volume" type="range" min="0" max="100" step="1">
         </div>
         <div class="some-block option-block">
-          <h4 data-localise="__MSG_prefDashQuality__">Default comments</h4>
+          <h4 data-localise="__MSG_defaultComments__">Default comments</h4>
           <select class="comments[0]">
             <option value="" data-localise="__MSG_none__">none</option>
             <option value="youtube">YouTube</option>
diff --git a/src/pages/options/youtubeMusic/youtubeMusic.html b/src/pages/options/youtubeMusic/youtubeMusic.html
index 9286ed64..5a93bffc 100644
--- a/src/pages/options/youtubeMusic/youtubeMusic.html
+++ b/src/pages/options/youtubeMusic/youtubeMusic.html
@@ -23,7 +23,6 @@
       <div class="title"> <img src="../../../assets/images/tiktok-icon.png"><a href="../tiktok/tiktok.html" data-localise="__MSG_tiktok__">TikTok</a></div>
       <div class="title"> <img src="../../../assets/images/reddit-icon.png"><a href="../reddit/reddit.html" data-localise="__MSG_reddit__">Reddit</a></div>
       <div class="title"> <img src="../../../assets/images/imgur-icon.png"><a href="../imgur/imgur.html" data-localise="__MSG_imgur__">Imgur</a></div>
-      <div class="title"> <img src="../../../assets/images/pixiv-icon.svg"><a href="../pixiv/pixiv.html" data-localise="__MSG_pixiv__">Pixiv</a></div>
       <div class="title"> <img src="../../../assets/images/librespeed-icon.svg"><a href="../speedtest/speedtest.html" data-localise="__MSG_speedtest__">Speedtest</a></div>
       <div class="title"> <img src="../../../assets/images/spotify-icon.png"><a href="../spotify/spotify.html" data-localise="__MSG_spotify__">Spotify</a></div>
       <div class="title"> <img src="../../../assets/images/wikipedia-icon.svg"><a href="../wikipedia/wikipedia.html" data-localise="__MSG_wikipedia__">Wikipedia</a></div>
diff --git a/src/pages/options/youtubeMusic/youtubeMusic.js b/src/pages/options/youtubeMusic/youtubeMusic.js
index 98d8b9a0..54a6f8d6 100644
--- a/src/pages/options/youtubeMusic/youtubeMusic.js
+++ b/src/pages/options/youtubeMusic/youtubeMusic.js
@@ -2,27 +2,23 @@ import youtubeMusicHelper from "../../../assets/javascripts/helpers/youtubeMusic
 import commonHelper from "../../../assets/javascripts/helpers/common.js";
 
 let disableYoutubeMusicElement = document.getElementById("disable-beatbump");
-disableYoutubeMusicElement.addEventListener("change",
-    (event) => youtubeMusicHelper.setDisable(!event.target.checked)
-);
 
-youtubeMusicHelper.init().then(() => {
-    disableYoutubeMusicElement.checked = !youtubeMusicHelper.getDisable();
+browser.storage.local.get(
+    [
+        "disableYoutubeMusic",
+    ],
+    r => {
+        disableYoutubeMusicElement.checked = !r.disableYoutubeMusic;
+    }
+);
 
-    browser.storage.local.get("beatbumpLatency").then(r => {
-        commonHelper.processDefaultCustomInstances(
-            'beatbump',
-            'normal',
-            youtubeMusicHelper,
-            document,
-            youtubeMusicHelper.getBeatbumpNormalRedirectsChecks,
-            youtubeMusicHelper.setBeatbumpNormalRedirectsChecks,
-            youtubeMusicHelper.getBeatbumpNormalCustomRedirects,
-            youtubeMusicHelper.setBeatbumpNormalCustomRedirects,
-            r.beatbumpLatency,
-        );
+document.addEventListener("change", async () => {
+    await browser.storage.local.set({
+        disableYoutubeMusic: !disableYoutubeMusicElement.checked,
     })
-});
+})
+
+commonHelper.processDefaultCustomInstances('beatbump', 'normal', youtubeMusicHelper, document);
 
 let latencyElement = document.getElementById("latency");
 let latencyLabel = document.getElementById("latency-label");
@@ -37,17 +33,7 @@ latencyElement.addEventListener("click",
         commonHelper.testLatency(latencyLabel, redirects.beatbump.normal).then(r => {
             browser.storage.local.set({ beatbumpLatency: r });
             latencyLabel.innerHTML = oldHtml;
-            commonHelper.processDefaultCustomInstances(
-                'beatbump',
-                'normal',
-                youtubeMusicHelper,
-                document,
-                youtubeMusicHelper.getBeatbumpNormalRedirectsChecks,
-                youtubeMusicHelper.setBeatbumpNormalRedirectsChecks,
-                youtubeMusicHelper.getBeatbumpNormalCustomRedirects,
-                youtubeMusicHelper.setBeatbumpNormalCustomRedirects,
-                r,
-            )
+            commonHelper.processDefaultCustomInstances('beatbump', 'normal', youtubeMusicHelper, document)
             latencyElement.removeEventListener("click", reloadWindow)
         });
     }
diff --git a/src/pages/popup/popup.html b/src/pages/popup/popup.html
index 2c4f76d5..465b177b 100644
--- a/src/pages/popup/popup.html
+++ b/src/pages/popup/popup.html
@@ -68,15 +68,6 @@
     <input id="disable-reddit" type="checkbox" checked />
   </div>
 
-  <div id="pixiv" class="some-block">
-    <a class="title" href="https://pixiv.net">
-      <!-- https://clipground.com/pics/getsecond?url=pixiv-logo-2.png -->
-      <img src="../../assets/images/pixiv-icon.svg" />
-      <h4 data-localise="__MSG_pixiv__">Pixiv</h4>
-    </a>
-    <input id="disable-pixiv" type="checkbox" checked />
-  </div>
-
   <div id="spotify" class="some-block">
     <a class="title" href="https://spotify.com">
       <img src="../../../assets/images/spotify-icon.png" />
diff --git a/src/pages/popup/popup.js b/src/pages/popup/popup.js
index 60146900..a7d6450a 100644
--- a/src/pages/popup/popup.js
+++ b/src/pages/popup/popup.js
@@ -14,7 +14,6 @@ import wikipediaHelper from "../../assets/javascripts/helpers/wikipedia.js";
 import mediumHelper from "../../assets/javascripts/helpers/medium.js";
 import imgurHelper from "../../assets/javascripts/helpers/imgur.js";
 import tiktokHelper from "../../assets/javascripts/helpers/tiktok.js";
-import pixivHelper from "../../assets/javascripts/helpers/pixiv.js";
 import spotifyHelper from "../../assets/javascripts/helpers/spotify.js";
 import sendTargetsHelper from "../../assets/javascripts/helpers/sendTargets.js";
 import peertubeHelper from "../../assets/javascripts/helpers/peertube.js";
@@ -36,7 +35,6 @@ let disableLbryElement = document.getElementById("disable-lbry");
 let disableSendTargetsElement = document.getElementById("disable-sendTargets");
 let disableImgurElement = document.getElementById("disable-imgur");
 let disableTiktokElement = document.getElementById("disable-tiktok");
-let disablePixivElement = document.getElementById("disable-pixiv");
 let disableSpotifyElement = document.getElementById("disable-spotify");
 
 let copyRawElement = document.getElementById('copy_raw');
@@ -53,7 +51,6 @@ browser.storage.local.get(
     "disableWikipedia",
     "disableImgur",
     "disableTiktok",
-    "disablePixiv",
     "disableSpotifyTargets",
     "disableMedium",
     "disablePeertubeTargets",
@@ -72,7 +69,6 @@ browser.storage.local.get(
     disableWikipediaElement.checked = !r.disableWikipedia;
     disableImgurElement.checked = !r.disableImgur;
     disableTiktokElement.checked = !r.disableTiktok;
-    disablePixivElement.checked = !r.disablePixiv;
     disableSpotifyElement.checked = !r.disableSpotifyTargets;
     disableMediumElement.checked = !r.disableMedium;
     disablePeertubeElement.checked = !r.disablePeertubeTargets;
@@ -94,7 +90,6 @@ document.addEventListener("change", () => {
     disableWikipedia: !disableWikipediaElement.checked,
     disableImgur: !disableImgurElement.checked,
     disableTiktok: !disableTiktokElement.checked,
-    disablePixiv: !disablePixivElement.checked,
     disableSpotifyTargets: !disableSpotifyElement.checked,
     disableMedium: !disableMediumElement.checked,
     disablePeertubeTargets: !disablePeertubeElement.checked,