about summary refs log tree commit diff stats
path: root/src/assets/javascripts
diff options
context:
space:
mode:
Diffstat (limited to 'src/assets/javascripts')
-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
18 files changed, 756 insertions, 2208 deletions
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,
 };