diff --git a/app/Http/Controllers/SettingsController.php b/app/Http/Controllers/SettingsController.php
new file mode 100644
index 0000000000000000000000000000000000000000..49df0a239efb277fc5b56908751ffa51b3e1b7e2
--- /dev/null
+++ b/app/Http/Controllers/SettingsController.php
@@ -0,0 +1,247 @@
+<?php
+
+namespace App\Http\Controllers;
+
+use Cookie;
+use LaravelLocalization;
+use \App\MetaGer;
+use \Illuminate\Http\Request;
+
+class SettingsController extends Controller
+{
+    public function index(Request $request)
+    {
+        $fokus = $request->input('fokus', '');
+        $fokusName = "";
+        if (empty($fokus)) {
+            return redirect('/');
+        } else {
+            $fokusName = trans('index.foki.' . $fokus);
+        }
+
+        $langFile = MetaGer::getLanguageFile();
+        $langFile = json_decode(file_get_contents($langFile));
+
+        $sumas = $this->getSumas($fokus);
+
+        # Parse the Parameter Filter
+        $filters = [];
+        $filteredSumas = false;
+        foreach ($langFile->filter->{"parameter-filter"} as $name => $filter) {
+            $values = $filter->values;
+            $cookie = Cookie::get($fokus . "_setting_" . $filter->{"get-parameter"});
+            foreach ($sumas as $suma => $sumaInfo) {
+                if (!$filteredSumas && $sumaInfo["filtered"]) {
+                    $filteredSumas = true;
+                }
+                if (!$sumaInfo["filtered"] && $sumaInfo["enabled"] && !empty($filter->sumas->{$suma})) {
+                    if (empty($filters[$name])) {
+                        $filters[$name] = $filter;
+                        unset($filters[$name]->values);
+                    }
+                    if (empty($filters[$name]->values)) {
+                        $filters[$name]->values = (object) [];
+                    }
+                    foreach ($filter->sumas->{$suma}->values as $key => $value) {
+                        $filters[$name]->values->$key = $values->$key;
+                    }
+                }
+
+            }
+        }
+
+        $url = $request->input('url', '');
+
+        # Check if any setting is active
+        $cookies = Cookie::get();
+        $settingActive = false;
+        foreach ($cookies as $key => $value) {
+            if (\starts_with($key, [$fokus . "_engine_", $fokus . "_setting_"])) {
+                $settingActive = true;
+            }
+        }
+
+        return view('settings.index')
+            ->with('title', trans('titles.settings', ['fokus' => $fokusName]))
+            ->with('fokus', $request->input('fokus', ''))
+            ->with('fokusName', $fokusName)
+            ->with('filteredSumas', $filteredSumas)
+            ->with('sumas', $sumas)
+            ->with('filter', $filters)
+            ->with('settingActive', $settingActive)
+            ->with('url', $url);
+    }
+
+    private function getSumas($fokus)
+    {
+        $langFile = MetaGer::getLanguageFile();
+        $langFile = json_decode(file_get_contents($langFile));
+
+        $sumasFoki = $langFile->foki->{$fokus}->sumas;
+
+        $sumas = [];
+        foreach ($sumasFoki as $suma) {
+            if ((!empty($langFile->sumas->{$suma}->disabled) && $langFile->sumas->{$suma}->disabled) ||
+                (!empty($langFile->sumas->{$suma}->{"auto-disabled"}) && $langFile->sumas->{$suma}->{"auto-disabled"})) {
+                continue;
+            }
+            $sumas[$suma]["display-name"] = $langFile->sumas->{$suma}->{"display-name"};
+            $sumas[$suma]["filtered"] = false;
+            if (Cookie::get($fokus . "_engine_" . $suma) === "off") {
+                $sumas[$suma]["enabled"] = false;
+            } else {
+                $sumas[$suma]["enabled"] = true;
+            }
+        }
+
+        foreach ($langFile->filter->{"parameter-filter"} as $name => $filter) {
+            $values = $filter->values;
+            $cookie = Cookie::get($fokus . "_setting_" . $filter->{"get-parameter"});
+            foreach ($sumas as $suma => $sumaInfo) {
+                if ($cookie !== null && (empty($filter->sumas->{$suma}) || (!empty($filter->sumas->{$suma}) && empty($filter->sumas->{$suma}->values->$cookie)))) {
+                    $sumas[$suma]["filtered"] = true;
+                }
+            }
+        }
+        return $sumas;
+    }
+
+    public function disableSearchEngine(Request $request)
+    {
+        $suma = $request->input('suma', '');
+        $fokus = $request->input('fokus', '');
+        $url = $request->input('url', '');
+
+        if (empty($suma) || empty($fokus)) {
+            abort(404);
+        }
+
+        # Only disable this engine if it's not the last
+        $sumas = $this->getSumas($fokus);
+        $sumaCount = 0;
+        foreach ($sumas as $name => $sumainfo) {
+            if (!$sumainfo["filtered"] && $sumainfo["enabled"]) {
+                $sumaCount++;
+            }
+        }
+        $langFile = MetaGer::getLanguageFile();
+        $langFile = json_decode(file_get_contents($langFile));
+
+        if ($sumaCount > 1 && in_array($suma, $langFile->foki->{$fokus}->sumas)) {
+            $path = \Request::path();
+            $cookiePath = "/" . substr($path, 0, strpos($path, "meta/") + 5);
+            Cookie::queue($fokus . "_engine_" . $suma, "off", 525600, $cookiePath, null, false, false);
+        }
+
+        return redirect(LaravelLocalization::getLocalizedURL(LaravelLocalization::getCurrentLocale(), route('settings', ["fokus" => $fokus, "url" => $url])));
+
+    }
+
+    public function enableSearchEngine(Request $request)
+    {
+        $suma = $request->input('suma', '');
+        $fokus = $request->input('fokus', '');
+        $url = $request->input('url', '');
+
+        if (empty($suma) || empty($fokus)) {
+            abort(404);
+        }
+
+        if (Cookie::get($fokus . "_engine_" . $suma) !== null) {
+            $path = \Request::path();
+            $cookiePath = "/" . substr($path, 0, strpos($path, "meta/") + 5);
+            Cookie::queue($fokus . "_engine_" . $suma, "", 0, $cookiePath, null, false, false);
+        }
+
+        return redirect(LaravelLocalization::getLocalizedURL(LaravelLocalization::getCurrentLocale(), route('settings', ["fokus" => $fokus, "url" => $url])));
+
+    }
+
+    public function enableFilter(Request $request)
+    {
+        $fokus = $request->input('fokus', '');
+        $url = $request->input('url', '');
+        if (empty($fokus)) {
+            abort(404);
+        }
+
+        $newFilters = $request->except(["fokus", "url"]);
+
+        $langFile = MetaGer::getLanguageFile();
+        $langFile = json_decode(file_get_contents($langFile));
+
+        foreach ($newFilters as $key => $value) {
+            if ($value === "") {
+                $path = \Request::path();
+                $cookiePath = "/" . substr($path, 0, strpos($path, "meta/") + 5);
+                Cookie::queue($fokus . "_setting_" . $key, "", 0, $cookiePath, null, false, false);
+            } else {
+                # Check if this filter and its value exists:
+                foreach ($langFile->filter->{"parameter-filter"} as $name => $filter) {
+                    if ($key === $filter->{"get-parameter"} && !empty($filter->values->$value)) {
+                        $path = \Request::path();
+                        $cookiePath = "/" . substr($path, 0, strpos($path, "meta/") + 5);
+                        Cookie::queue($fokus . "_setting_" . $key, $value, 525600, $cookiePath, null, false, false);
+                        break;
+                    }
+                }
+            }
+        }
+
+        return redirect(LaravelLocalization::getLocalizedURL(LaravelLocalization::getCurrentLocale(), route('settings', ["fokus" => $fokus, "url" => $url])));
+
+    }
+
+    public function deleteSettings(Request $request)
+    {
+        $fokus = $request->input('fokus', '');
+        $url = $request->input('url', '');
+        if (empty($fokus)) {
+            abort(404);
+        }
+
+        $cookies = Cookie::get();
+        foreach ($cookies as $key => $value) {
+            if (\starts_with($key, [$fokus . "_engine_", $fokus . "_setting_"])) {
+                $path = \Request::path();
+                $cookiePath = "/" . substr($path, 0, strpos($path, "meta/") + 5);
+                Cookie::queue($key, "", 0, $cookiePath, null, false, false);
+            }
+        }
+
+        return redirect(LaravelLocalization::getLocalizedURL(LaravelLocalization::getCurrentLocale(), route('settings', ["fokus" => $fokus, "url" => $url])));
+    }
+
+    public function allSettingsIndex(Request $request)
+    {
+        $sumaFile = MetaGer::getLanguageFile();
+        $sumaFile = json_decode(file_get_contents($sumaFile));
+
+        return view('settings.allSettings')
+            ->with('title', trans('titles.allSettings'))
+            ->with('url', $request->input('url', ''))
+            ->with('sumaFile', $sumaFile);
+    }
+
+    public function removeOneSetting(Request $request)
+    {
+        $key = $request->input('key', '');
+        $path = \Request::path();
+        $cookiePath = "/" . substr($path, 0, strpos($path, "meta/") + 5);
+        Cookie::queue($key, "", 0, $cookiePath, null, false, false);
+
+        return redirect($request->input('url', 'https://metager.de'));
+
+    }
+
+    public function removeAllSettings(Request $request)
+    {
+        $path = \Request::path();
+        $cookiePath = "/" . substr($path, 0, strpos($path, "meta/") + 5);
+
+        foreach (Cookie::get() as $key => $value) {
+            Cookie::queue($key, "", 0, $cookiePath, null, false, false);
+        }
+        return redirect($request->input('url', 'https://metager.de'));
+    }
+}
diff --git a/app/Http/Controllers/StartpageController.php b/app/Http/Controllers/StartpageController.php
index e3288540ff25caba05778dd8920ee2030dacc934..df7a46cfe8aed439bb78b692440bc9dfcf0a56e1 100644
--- a/app/Http/Controllers/StartpageController.php
+++ b/app/Http/Controllers/StartpageController.php
@@ -88,52 +88,15 @@ class StartpageController extends Controller
         return loadPage($subpage);
     }
 
-    public function loadPlugin($params, $locale = "de")
+    public function loadPlugin($locale = "de")
     {
-        $params = unserialize(base64_decode($params));
-        $requests = $params;
-        $params = [];
-        foreach ($requests as $key => $value) {
-            if (strpos($key, "param_") === 0) {
-                $key = substr($key, strpos($key, "param_") + 6);
-            }
-            $params[$key] = $value;
-        }
-
-        if (!isset($params['focus'])) {
-            $params['focus'] = 'web';
-        }
-
-        if (!isset($params['encoding'])) {
-            $params['encoding'] = 'utf8';
-        }
-
-        if (!isset($params['lang'])) {
-            $params['lang'] = 'all';
-        }
-
-        if (isset($params['request']) && ($params['request'] === "GET" || $params['request'] === "POST")) {
-            $request = $params['request'];
-        } else {
-            $request = "GET";
-        }
-
-        array_forget($params, 'eingabe');
-        array_forget($params, 'out');
-        array_forget($params, 'page');
-        array_forget($params, 'request');
-        array_forget($params, 'focus');
-        array_forget($params, 'encoding');
-        array_forget($params, 'lang');
-
         $link = action('MetaGerSearch@search', []);
 
         $response = Response::make(
             view('plugin')
                 ->with('link', $link)
-                ->with('params', $params)
                 ->with('hostname', gethostname())
-                ->with('request', $request), "200");
+            , "200");
         $response->header('Content-Type', "application/opensearchdescription+xml");
         return $response;
     }
diff --git a/app/Http/Kernel.php b/app/Http/Kernel.php
index 8402ac6e0569077cd473e20b48a1b6f5bab1107e..1071b8326be8048d74bdbede515e27426309fa52 100644
--- a/app/Http/Kernel.php
+++ b/app/Http/Kernel.php
@@ -26,7 +26,6 @@ class Kernel extends HttpKernel
      */
     protected $middlewareGroups = [
         'web' => [
-            \App\Http\Middleware\EncryptCookies::class,
             \Illuminate\Routing\Middleware\SubstituteBindings::class,
         ],
 
@@ -36,7 +35,6 @@ class Kernel extends HttpKernel
         ],
 
         'enableCookies' => [
-            \App\Http\Middleware\EncryptCookies::class,
             \Illuminate\Routing\Middleware\SubstituteBindings::class,
             \Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class,
         ],
diff --git a/app/MetaGer.php b/app/MetaGer.php
index 20194cbbfcc90df7118978a78c1e29c8ffd679a2..461d13adc70eecff690ee3f97533de66791755a9 100644
--- a/app/MetaGer.php
+++ b/app/MetaGer.php
@@ -481,10 +481,10 @@ class MetaGer
             # Check if this engine is disabled and can't be used
             $disabled = empty($this->sumaFile->sumas->{$suma}->disabled) ? false : $this->sumaFile->sumas->{$suma}->disabled;
             $autoDisabled = empty($this->sumaFile->sumas->{$suma}->{"auto-disabled"}) ? false : $this->sumaFile->sumas->{$suma}->{"auto-disabled"};
-            if ($disabled || $autoDisabled) {
-                continue;
+            if ($disabled || $autoDisabled
+                || \Cookie::get($this->getFokus() . "_engine_" . $suma) === "off") { # Check if the user has disabled this engine
+            continue;
             }
-
             # Check if this engine can use eventually defined query-filter
             $valid = true;
             foreach ($this->queryFilter as $queryFilter => $filter) {
@@ -497,8 +497,7 @@ class MetaGer
             if ($valid) {
                 foreach ($this->parameterFilter as $filterName => $filter) {
                     # We need to check if the searchengine supports the parameter value, too
-                    $value = $request->input($filter->{"get-parameter"}, "");
-                    if (empty($filter->sumas->$suma) || empty($filter->sumas->{$suma}->values->{$value})) {
+                    if (empty($filter->sumas->$suma) || empty($filter->sumas->{$suma}->values->{$filter->value})) {
                         $valid = false;
                         break;
                     }
@@ -531,6 +530,12 @@ class MetaGer
             $this->enabledSearchengines["yahoo-ads"] = $this->sumaFile->sumas->{"yahoo-ads"};
         }
 
+        # Special case if search engines are disabled
+        # Since bing is normally only active if a filter is set but it should be active, too if yahoo is disabled
+        if ($this->getFokus() === "web" && empty($this->enabledSearchengines["yahoo"]) && \Cookie::get("web_engine_bing") !== "off") {
+            $this->enabledSearchengines["bing"] = $this->sumaFile->sumas->{"bing"};
+        }
+
         if (sizeof($this->enabledSearchengines) === 0) {
             $filter = "";
             foreach ($this->queryFilter as $queryFilter => $filterPhrase) {
@@ -629,27 +634,55 @@ class MetaGer
         $availableFilter = [];
 
         foreach ($parameterFilter as $filterName => $filter) {
+            $values = $filter->values;
             # Check if any of the enabled search engines provide this filter
             foreach ($this->enabledSearchengines as $engineName => $engine) {
                 if (!empty($filter->sumas->$engineName)) {
-                    $availableFilter[$filterName] = $filter;
+                    if (empty($availableFilter[$filterName])) {
+                        $availableFilter[$filterName] = $filter;
+                        unset($availableFilter[$filterName]->values);
+                    }
+                    if (empty($availableFilter[$filterName]->values)) {
+                        $availableFilter[$filterName]->values = (object) ["" => $values->{""}];
+                    }
+                    foreach ($filter->sumas->{$engineName}->values as $key => $value) {
+                        $availableFilter[$filterName]->values->$key = $values->$key;
+                    }
                 }
             }
             # We will also add the filter from the opt-in search engines (the searchengines that are only used when a filter of it is too)
             foreach ($this->sumaFile->foki->{$this->fokus}->sumas as $suma) {
-                if ($this->sumaFile->sumas->{$suma}->{"filter-opt-in"}) {
+                if ($this->sumaFile->sumas->{$suma}->{"filter-opt-in"} && \Cookie::get($this->getFokus() . "_engine_" . $suma) !== "off") {
                     if (!empty($filter->sumas->{$suma})) {
                         # If the searchengine is disabled this filter shouldn't be available
                         if ((!empty($this->sumaFile->sumas->{$suma}->disabled) && $this->sumaFile->sumas->{$suma}->disabled === true)
                             || (!empty($this->sumaFile->sumas->{$suma}->{"auto-disabled"}) && $this->sumaFile->sumas->{$suma}->{"auto-disabled"} === true)) {
                             continue;
                         }
-                        $availableFilter[$filterName] = $filter;
+                        if (empty($availableFilter[$filterName])) {
+                            $availableFilter[$filterName] = $filter;
+                            unset($availableFilter[$filterName]->values);
+                        }
+                        if (empty($availableFilter[$filterName]->values)) {
+                            $availableFilter[$filterName]->values = (object) ["" => $values->{""}];
+                        }
+                        foreach ($filter->sumas->{$suma}->values as $key => $value) {
+                            $availableFilter[$filterName]->values->$key = $values->$key;
+                        }
                     }
                 }
             }
         }
 
+        # Set the current values for the filters
+        foreach ($availableFilter as $filterName => $filter) {
+            if (\Request::filled($filter->{"get-parameter"})) {
+                $filter->value = \Request::input($filter->{"get-parameter"});
+            } else if (\Cookie::get($this->getFokus() . "_setting_" . $filter->{"get-parameter"}) !== null) {
+                $filter->value = \Cookie::get($this->getFokus() . "_setting_" . $filter->{"get-parameter"});
+            }
+        }
+
         return $availableFilter;
     }
 
@@ -1018,10 +1051,17 @@ class MetaGer
             } else {
                 $usedParameters[$filter->{"get-parameter"}] = true;
             }
-            if ($request->filled($filter->{"get-parameter"})) {
-                $this->parameterFilter[$filterName] = $filter;
+
+            if (($request->filled($filter->{"get-parameter"}) && $request->input($filter->{"get-parameter"}) !== "off") ||
+                \Cookie::get($this->getFokus() . "_setting_" . $filter->{"get-parameter"}) !== null) { # If the filter is set via Cookie
+            $this->parameterFilter[$filterName] = $filter;
+                $this->parameterFilter[$filterName]->value = $request->input($filter->{"get-parameter"}, '');
+                if (empty($this->parameterFilter[$filterName]->value)) {
+                    $this->parameterFilter[$filterName]->value = \Cookie::get($this->getFokus() . "_setting_" . $filter->{"get-parameter"});
+                }
             }
         }
+
         $this->searchCheckHostBlacklist($request);
         $this->searchCheckDomainBlacklist($request);
         $this->searchCheckUrlBlacklist();
@@ -1418,6 +1458,31 @@ class MetaGer
         return $this->searchUid;
     }
 
+    public function getManualParameterFilterSet()
+    {
+        $filters = $this->sumaFile->filter->{"parameter-filter"};
+        foreach ($filters as $filterName => $filter) {
+            if (\Request::filled($filter->{"get-parameter"})
+                && \Cookie::get($this->getFokus() . "_setting_" . $filter->{"get-parameter"}) !== \Request::input($filter->{"get-parameter"})) {
+                return true;
+            }
+        }
+        return false;
+    }
+
+    public function getSavedSettingCount()
+    {
+        $cookies = \Cookie::get();
+        $count = 0;
+
+        foreach ($cookies as $key => $value) {
+            if (starts_with($key, [$this->getFokus() . "_setting_", $this->getFokus() . "_engine_"])) {
+                $count++;
+            }
+        }
+        return $count;
+    }
+
 # Einfache Getter
 
     public function getVerificationId()
@@ -1490,6 +1555,16 @@ class MetaGer
         return $this->language;
     }
 
+    public static function getLanguageFile()
+    {
+        $locale = LaravelLocalization::getCurrentLocale();
+        if ($locale === "en") {
+            return config_path('sumasEn.json');
+        } else {
+            return config_path('sumas.json');
+        }
+    }
+
     public function getLang()
     {
         return $this->lang;
diff --git a/app/Models/Searchengine.php b/app/Models/Searchengine.php
index f6bacb0969824ad4d4a414946dd7225cd3973a97..0ca550a50abff92538e9fcd279e24c962d26ba6c 100644
--- a/app/Models/Searchengine.php
+++ b/app/Models/Searchengine.php
@@ -7,7 +7,6 @@ use App\MetaGer;
 use Cache;
 use Illuminate\Foundation\Bus\DispatchesJobs;
 use Illuminate\Support\Facades\Redis;
-use Request;
 
 abstract class Searchengine
 {
@@ -76,7 +75,8 @@ abstract class Searchengine
 
         # Parse enabled Parameter-Filter
         foreach ($metager->getParameterFilter() as $filterName => $filter) {
-            $inputParameter = Request::input($filter->{"get-parameter"}, "");
+            $inputParameter = $filter->value;
+
             if (empty($inputParameter) || empty($filter->sumas->{$name}->values->{$inputParameter})) {
                 continue;
             }
diff --git a/resources/js/focus-creator.js b/resources/js/focus-creator.js
deleted file mode 100644
index f5eea805db4a211889e24bfc0ccccca1d45a7c18..0000000000000000000000000000000000000000
--- a/resources/js/focus-creator.js
+++ /dev/null
@@ -1,65 +0,0 @@
-$(function() {
-  setLabelText();
-  setKeyListeners();
-  setDropdownListeners();
-});
-
-/**
- * Sets all action listeners for this page
- */
-function setKeyListeners() {
-  $(document).keydown(function(event) {
-    if ($("input#show-create-focus").is(":checked")) {
-      if (event.keyCode == 27) {
-        $("input#show-create-focus").prop("checked", false);
-      } else if (event.keyCode == 13) {
-        $("#customSearchForm").submit();
-      }
-    }
-  });
-}
-
-function setDropdownListeners() {
-  // Listener for 'Open/Collapse all' label
-  $("input:checkbox#toggle-dropdowns").change(function() {
-    if ($(this).is(":checked")) {
-      // Open all dropdowns
-      $(".focus-dropdown-toggle").prop("checked", true);
-    } else {
-      // Close all dropdowns
-      $(".focus-dropdown-toggle").prop("checked", false);
-    }
-    setLabelText();
-  });
-  // Change 'Open/Collapse' all when single dropdown is changed
-  $(".focus-dropdown-toggle").change(function() {
-    var expanded = false;
-    $(".focus-dropdown-toggle").each(function() {
-      if ($(this).is(":checked")) {
-        expanded = true;
-      }
-    });
-    if (expanded === true) {
-      $("input:checkbox#toggle-dropdowns").prop("checked", true);
-    } else {
-      $("input:checkbox#toggle-dropdowns").prop("checked", false);
-    }
-    setLabelText();
-  });
-}
-
-//
-// Adjusts the 'Open/Colapse all' label
-function setLabelText() {
-  if ($("input:checkbox#toggle-dropdowns").is(":checked")) {
-    $("#toggle-dropdowns-label").html(
-      t("close-dropdowns") +
-        ' <i class="fa fa-minus-square" aria-hidden="true"></i>'
-    );
-  } else {
-    $("#toggle-dropdowns-label").html(
-      t("open-dropdowns") +
-        ' <i class="fa fa-plus-square" aria-hidden="true"></i>'
-    );
-  }
-}
diff --git a/resources/js/scriptSettings.js b/resources/js/scriptSettings.js
new file mode 100644
index 0000000000000000000000000000000000000000..144a2ce85ce0db74d07d8ef35c0312e39c6e1731
--- /dev/null
+++ b/resources/js/scriptSettings.js
@@ -0,0 +1,7 @@
+$(document).ready(function () {
+    $("#filter-form").find("button[type=submit]").css("display", "none");
+    $("#filter-form").find("select").on("change", function () {
+        $("#filter-form").submit();
+    });
+    console.log("Test");
+});
\ No newline at end of file
diff --git a/resources/js/searchbar.js b/resources/js/searchbar.js
deleted file mode 100644
index c0620dc815c3ec0b9d5ad98665bf316f769d4a1f..0000000000000000000000000000000000000000
--- a/resources/js/searchbar.js
+++ /dev/null
@@ -1,87 +0,0 @@
-$(function() {
-  loadLocalStorage();
-  setActionListenersSearchbar();
-  updateLangLabelCode();
-});
-
-function setActionListenersSearchbar() {
-  $("#input-key").change(saveKey);
-  $("#input-lang").change(saveLang);
-}
-
-function saveKey() {
-  var key = $("#input-key").val();
-  localStorage.setItem("key", key);
-}
-
-function loadKey() {
-  var key = localStorage.getItem("key");
-  if (key != null) {
-    $("#input-key").val(key);
-  }
-}
-
-function saveLang() {
-  var lang = $("#input-lang").val();
-  if (lang != "all") localStorage.setItem("lang", lang);
-  else localStorage.removeItem("lang");
-  updateLangLabelCode(lang);
-}
-
-function loadLang() {
-  var lang = localStorage.getItem("lang");
-  if (lang != null) {
-    $("#input-lang").val(lang);
-  }
-}
-
-/**
- * Loads the user theme and stored settings from local storage
- */
-function loadLocalStorage() {
-  if (localStorage) {
-    setSettings();
-    loadKey();
-    loadLang();
-  }
-}
-
-function setSettings() {
-  var acceptedParams = ["autocomplete", "key", "lang", "newtab", "sprueche"];
-  for (var key in localStorage) {
-    var value = localStorage.getItem(key);
-    var accepted = false;
-    for (var i in acceptedParams) {
-      if (key === "param_" + acceptedParams[i]) {
-        accepted = true;
-      }
-    }
-    if (accepted) {
-      key = key.substring(6);
-      // Check for existing hidden fields for this key
-      var existing = $('.search-hidden input[name="' + key + '"]');
-      if (existing.length === 0) {
-        // if none exist, create a new one
-        $(".search-hidden").append(
-          '<input type="hidden" name="' + key + '" value="' + value + '">'
-        );
-      }
-    }
-  }
-  // Change the request method to the given parameter
-  var requestMethod = localStorage.getItem("request");
-  if (
-    requestMethod !== null &&
-    (requestMethod === "GET" || requestMethod === "POST")
-  ) {
-    $("#searchForm").attr("method", requestMethod);
-  }
-}
-
-function updateLangLabelCode(langcode = null) {
-  if (!langcode) {
-    var langcode = localStorage.getItem("lang");
-  }
-  if (langcode == "all") langcode = "";
-  $("#lang-label-code").html(langcode);
-}
diff --git a/resources/js/settings.js b/resources/js/settings.js
deleted file mode 100644
index 8910eb9cdd6aec2504b8d2c11e9e19f796edb211..0000000000000000000000000000000000000000
--- a/resources/js/settings.js
+++ /dev/null
@@ -1,84 +0,0 @@
-$(document).ready(function () {
-  // Wenn LocalStorage verfügbar ist, geben wir die Möglichkeit die Einstellungen dort zu speichern
-  tickOptions();
-  if (localStorage) {
-    $('#save').removeClass('hidden');
-    $('#save').click(function () {
-      localStorage.setItem('pers', true);
-      $('input[type=checkbox]:checked, input[type=hidden]').each(function () {
-        localStorage.setItem($(this).attr('name'), $(this).val());
-      });
-      $('select').each(function () {
-        localStorage.setItem($(this).attr('name'), $(this).val());
-      });
-      $('input[type=text]').each(function () {
-        localStorage.setItem($(this).attr('name'), $(this).val());
-      });
-      document.location.href = $('#save').attr('data-href');
-    });
-  }
-  $('.checker').click(function () {
-    var selector = '.' + $(this).attr('data-type');
-    if ($(selector + ' input:checked').length) {
-      $(selector + ' input').prop('checked', false);
-    } else {
-      $(selector + ' input').prop('checked', true);
-    }
-  });
-  $('#unten').click(function () {
-    $('#settings-form').append('<input type="hidden" name="usage" value="once">');
-    switch (getLanguage()) {
-      case 'de':
-        alert('Auf der folgenden Startseite sind Ihre Einstellungen nun einmalig gespeichert. Nach Ihrer ersten Suche sind diese wieder verloren. Wenn Sie diese speichern möchten, können Sie sich allerdings ein Lesezeichen für die generierte Startseite einrichten.');
-        break;
-      case 'en':
-        alert('On the following startpage your settings are saved one-time. They will be lost after your first search. Though if you want to save them, you can create a bookmark for the generated startpage.');
-        break;
-      case 'es':
-        // alert(""); TODO
-        break;
-    }
-  });
-  $('#plugin').click(function () {
-    $('form').attr('action', $('#save').attr('data-href') + '#plugin-modal');
-    switch (getLanguage()) {
-      case 'de':
-        alert('Ihr Browserplugin mit den persönlichen Sucheinstellungen wurde generiert. Folgen Sie bitte der Anleitung auf der folgenden Seite um es zu installieren. Beachten Sie: Zuvor sollten Sie ein eventuell bereits installiertes MetaGer-Plugin entfernen.');
-        break;
-      case 'en':
-        alert('Your browser plugin with personal settings was generated. Please follow the instructions on the following page to install it. Notice that beforehand you might have to delete a former MetaGer plugin.');
-        break;
-      case 'es':
-        // alert(""); TODO
-        break;
-    }
-  });
-  $('#settings-focus').val('angepasst');
-});
-
-function tickOptions () {
-  if (localStorage && localStorage.getItem('pers')) {
-    for (var i = 0; i < localStorage.length; i++) {
-      var key = localStorage.key(i);
-      var value = localStorage.getItem(key);
-      if (key.startsWith('param_')) {
-        if ($('input[name=' + key + ']').length) {
-          $('input[name=' + key + ']').attr('checked', '');
-        } else {
-          $('select[name=' + key + '] > option[value=' + value + ']').attr('selected', true);
-        }
-      }
-    }
-  } else {
-    $('div.web input').attr('checked', true);
-  }
-}
-
-function getLanguage () {
-  var metaData = document.getElementsByTagName('meta');
-  for (var m in metaData) {
-    if (metaData[m]['httpEquiv'] == 'language') {
-      return metaData[m]['content'];
-    }
-  }
-}
diff --git a/resources/lang/de/metaGer.php b/resources/lang/de/metaGer.php
index 4722f9c15c5a574c9721a8cf089a9e1063891a79..533811fbf10e02c260c5766ff89af0b1753c7387 100644
--- a/resources/lang/de/metaGer.php
+++ b/resources/lang/de/metaGer.php
@@ -23,7 +23,7 @@ return [
     'feedback' => 'Nichts Passendes dabei? Geben Sie uns Feedback: ',
 
     'results' => "Ergebnisse",
-    'filter.noFilter' => 'Alle',
+    'filter.noFilter' => 'Beliebig',
     'filter.reset' => 'Filter zurücksetzen',
 
     'filter.sitesearch' => 'Sitesearch',
@@ -121,4 +121,6 @@ return [
     "filter.market.chk" => "Chinesisch (Hong Kong SAR)",
     "filter.market.cc" => "Chinesisch (China)",
     "filter.market.ct" => "Chinesisch (Taiwan)",
+
+    "settings" => "Einstellungen",
 ];
diff --git a/resources/lang/de/settings.php b/resources/lang/de/settings.php
index 467168e614b9b7bec2681e2761c400d92f4fc24d..773ad441c6474e9195f5c961ef6df87548015433 100644
--- a/resources/lang/de/settings.php
+++ b/resources/lang/de/settings.php
@@ -1,38 +1,33 @@
 <?php
 
 return [
-    "head.1"	=>	"Einstellungen",
-    "head.2"	=>	"Hier können Sie Ihr MetaGer anpassen: Nach Anklicken Ihrer gewünschten Einstellungen müssen Sie wählen, ob Sie die Einstellungen dauerhaft speichern, oder nur einmalig setzen wollen.",
-    "allgemein.1"	=>	"Allgemein",
-    "quotes.label"	=>	"Sprüche",
-    "quotes.on"	=>	"anzeigen",
-    "quotes.off"	=>	"nicht anzeigen",
-    "tab.label"	=>	"Ergebnisse öffnen:",
-    "tab.new"	=>	"In einem neuen Tab",
-    "tab.same"	=>	"Im gleichen Tab",
-    "language.label"	=>	"Sprache auswählen:",
-    "language.all"	=>	"Alle Sprachen",
-    "language.de"	=>	"Deutsch",
-    "language.en"	=>	"Englisch",
-    "suchmaschinen.1"	=>	"Suchmaschinen",
-    "suchmaschinen.2"	=>	"(alle abwählen)",
-    "suchmaschinen.3"	=>	"(alle an-/abwählen)",
-    "abort"	=>	"abbrechen",
-    "speichern.1"	=>	"Startseite für einmalige Nutzung generieren",
-    "speichern.2"	=>	"Einstellungen dauerhaft speichern",
-    "speichern.3"	=>	"Plugin mit diesen Einstellungen generieren",
-    "speichern.4"	=>	"Einstellungen zurücksetzen",
-    "request"	=>	"Abfragemethode",
-    "autocomplete.label"	=>	"Auto-Vervollständigung (Sucheingabe)",
-    "autocomplete.on"	=>	"ein",
-    "autocomplete.off"	=>	"aus",
-    "key.label"	=>	"Schlüssel für werbefreie Suche",
-    "key.placeholder"	=>	"Schlüssel eingeben",
-    "foki.web"	=>	"Web",
-    "foki.andere"	=>	"Andere",
-    "foki.produktsuche"	=>	"Produktsuche",
-    "foki.wissenschaft"	=>	"Wissenschaft",
-    "foki.nachrichten"	=>	"News/Politik",
-    "foki.bilder"	=>	"Bilder",
-    "autocomplete"	=>	"Automatisch vervollständigen"
-];
\ No newline at end of file
+    "header.1" => "Sucheinstellungen",
+    "text.1" => "Hier können Sie dauerhafte Sucheinstellungen für Ihre MetaGer-Suche im Fokus :fokusName vornehmen. Sollten diese nicht dauerhaft gespeichert bleiben, überprüfen Sie bitte in Ihren Browsereinstellungen, ob dieser beim Beenden gespeicherte Cookies löscht.",
+
+    "hint.header" => "Hinweis",
+    "hint.text" => "Um Ihre Sucheinstellungen zu speichern, verwenden wir nicht-personenbeziehbare Cookies. Diese werden im Klartext in Ihrem Browser gespeichert. Sie können sich eine Übersicht aller von Ihnen vorgenommenen Einstellungen und Cookies <a href=\":link\">anzeigen lassen</a>.",
+
+    "header.2" => "Verwendete Suchmaschinen",
+    "text.2" => "Nachfolgend sehen Sie alle für diesen Fokus verfügbaren Suchmaschinen. Mit einem Klick auf den Namen können Sie Ein-/Ausgeschaltet werden. Eingeschaltete Suchmaschinen sind in grün dargestellt. Ausgeschaltete in rot oder grau.",
+    "disabledByFilter" => "Durch Suchfilter deaktiviert:",
+
+    "header.3" => "Suchfilter",
+    "text.3" => "An dieser Stelle können Sie Suchfilter dauerhaft setzen. Mit der Auswahl eines Suchfilters stehen nur noch Suchmaschinen zur Verfügung, welche diesen Filter unterstützen. Umgekehrt werden auch nur Suchfilter angezeigt, welche von der aktuellen Suchmaschinenauswahl unterstützt werden.",
+
+    "save" => "Speichern",
+    "reset" => "Alle Einstellungen löschen",
+    "back" => "Zurück zur letzten Seite",
+
+    // Translations from the settings overview
+    'noSettings' => "Aktuell sind keine Einstellungen gesetzt!",
+    'allSettings.header' => "Auf :root gesetzte Einstellungen",
+    'allSettings.text' => "Hier finden Sie eine Übersicht aller von Ihnen gesetzten Einstellungen und Cookies. Sie können einzelne Einträge löschen, oder alle entfernen. Bedenken Sie, dass die zugehörigen Einstellungen dann nicht mehr verwendet werden.",
+
+    'meaning' => "Bedeutung",
+    'actions' => "Aktionen",
+
+    'engineDisabled' => "Die Suchmaschine :engine wird im Fokus :focus nicht abgefragt.",
+    'inFocus' => "im Fokus",
+    'key' => "Ihr Schlüssel für die werbefreie Suche",
+    'removeCookie' => "Diesen Cookie entfernen",
+];
diff --git a/resources/lang/de/titles.php b/resources/lang/de/titles.php
index e11ed3a1d2cfd9b0476e88979819ee51c0d33608..213977cfe9e4bdc062e60ca987cd0e5d4bac0c67 100644
--- a/resources/lang/de/titles.php
+++ b/resources/lang/de/titles.php
@@ -24,4 +24,6 @@ return [
     'asso' => 'Assoziator - MetaGer',
     'plugin' => 'Plugin - MetaGer',
     'key' => 'Mitgliederschlüssel - MetaGer',
+    'settings' => 'Sucheinstellungen (:fokus)',
+    'allSettings' => 'Alle Sucheinstellungen - MetaGer',
 ];
diff --git a/resources/lang/en/metaGer.php b/resources/lang/en/metaGer.php
index f38ed57c7f8940d08af757071a1268e6d44a5491..fb295e43d050bdf49873d19e1649cd1127b50321 100644
--- a/resources/lang/en/metaGer.php
+++ b/resources/lang/en/metaGer.php
@@ -23,7 +23,7 @@ return [
     'feedback' => 'Not what you were looking for? Give us feedback: ',
 
     'results' => "Results",
-    'filter.noFilter' => 'All',
+    'filter.noFilter' => 'Any',
     'filter.reset' => 'Reset filter',
 
     'filter.sitesearch' => 'Sitesearch',
@@ -121,11 +121,6 @@ return [
     "filter.market.chk" => "Chinese (Hong Kong SAR)",
     "filter.market.cc" => "Chinese (China)",
     "filter.market.ct" => "Chinese (Taiwan)",
-];
-
-
-
-
-
-
 
+    "settings" => "Settings",
+];
diff --git a/resources/lang/en/settings.php b/resources/lang/en/settings.php
index 6a8776ed37ddfc51ac67d20c8f2adcc9fd936505..af7c83a1200c3351bd66c73e61131d2c9f163bad 100644
--- a/resources/lang/en/settings.php
+++ b/resources/lang/en/settings.php
@@ -1,38 +1,33 @@
 <?php
 
 return [
-    "head.1"	=>	"Settings",
-    "head.2"	=>	"Here you can customize your MetaGer: After selecting your desired settings, you have to choose whether you want to save the settings permanently or for one time use. Please confirm with one of the buttons on the bottom of this page.",
-    "allgemein.1"	=>	"General",
-    "quotes.label"	=>	"Sayings",
-    "quotes.on"	=>	"show",
-    "quotes.off"	=>	"hide",
-    "tab.label"	=>	"Show results:",
-    "tab.new"	=>	"in a new tab",
-    "tab.same"	=>	"in the same tab",
-    "language.label"	=>	"Select language",
-    "language.all"	=>	"all languages",
-    "language.de"	=>	"german",
-    "language.en"	=>	"english",
-    "suchmaschinen.1"	=>	"search engines",
-    "suchmaschinen.2"	=>	"(deselect all)",
-    "suchmaschinen.3"	=>	"(select / deselect all)",
-    "abort"	=>	"abort",
-    "speichern.1"	=>	"Create a startpage for one-time use",
-    "speichern.2"	=>	"Save settings permanently",
-    "speichern.3"	=>	"Generate plugin with these settings",
-    "speichern.4"	=>	"Reset saved settings",
-    "request"	=>	"Query method",
-    "autocomplete.label"	=>	"Auto complete (of search input)",
-    "autocomplete.on"	=>	"on",
-    "autocomplete.off"	=>	"off",
-    "key.label"	=>	"The key for ad-free search",
-    "key.placeholder"	=>	"Put in the key here",
-    "foki.web"	=>	"Web",
-    "foki.andere"	=>	"Others",
-    "foki.produktsuche"	=>	"Shopping",
-    "foki.wissenschaft"	=>	"Science",
-    "foki.nachrichten"	=>	"News/Politics",
-    "foki.bilder"	=>	"Pictures",
-    "autocomplete"	=>	"autocomplete (search input)"
+    "header.1" => "Search Preferences",
+    "text.1" => "Here you can set permanent search settings for your MetaGer search in focus :fokusName. If these do not remain permanently stored, please check in your browser settings whether it deletes cookies stored on exit.",
+
+    "hint.header" => "Note",
+    "hint.text" => "To save your search settings, we use non-personally identifiable cookies. These are saved in clear text in your browser. You can see an <a href=\":link\">overview</a> of all the settings and cookies you have made.",
+
+    "header.2" => "Used Search Engines",
+    "text.2" => "Below are all the search engines available for this focus. With a click on the name they can be switched on / off. Used search engines are shown in green. Not used ones in red or gray.",
+    "disabledByFilter" => "Disabled by Search Filter:",
+
+    "header.3" => "Search Filters",
+    "text.3" => "At this point you can set search filters permanently. With the selection of a search filter, only search engines are available that support this filter. Conversely, only search filters are displayed which are supported by the current search engine selection.",
+
+    "save" => "Save",
+    "reset" => "Delete all settings",
+    "back" => "Back to the last page",
+
+    // Translations from the settings overview
+    'noSettings' => "Currently no settings are set!",
+    'allSettings.header' => "Settings on :root",
+    'allSettings.text' => "Here you will find an overview of all settings and cookies you have set. You can delete individual entries or remove them all. Keep in mind that the associated settings will no longer be used.",
+
+    'meaning' => "Meaning",
+    'actions' => "Actions",
+
+    'engineDisabled' => "The search engine :engine will not be queried in focus :focus.",
+    'inFocus' => "in focus",
+    'key' => "Your key to the ad-free search",
+    'removeCookie' => "Remove this cookie",
 ];
diff --git a/resources/less/metager/general/cards.less b/resources/less/metager/general/cards.less
index 984e0baea5e638889a64c8831cf25396b53c2910..9821c419acda6b28611fea43dd70be65a2115e81 100644
--- a/resources/less/metager/general/cards.less
+++ b/resources/less/metager/general/cards.less
@@ -4,14 +4,17 @@
     background-color: white;
     box-shadow: 0px 1px 1.5px 0px rgba(0, 0, 0, 0.12), 1px 0px 1px 0px rgba(0, 0, 0, 0.24);
     padding: 8px;
+    margin: 4px;
 }
 
 .card-heavy {
     .card;
     box-shadow: 0px 4px 5px 0px rgba(0, 0, 0, 0.12), 4px 0px 5px 0px rgba(0, 0, 0, 0.24);
+    margin: 8px;
 }
 
 .card-light {
     .card;
     box-shadow: 0px 0px 1px 0px rgba(0, 0, 0, 0.12), 0px 0px 1px 0px rgba(0, 0, 0, 0.24);
+    margin: 4px;
 }
\ No newline at end of file
diff --git a/resources/less/metager/metager.less b/resources/less/metager/metager.less
index 32137ee5e1eb71190a821a119e43687e4578e27e..edbe70c98e5312f06282cb485062b1febc6d2c22 100644
--- a/resources/less/metager/metager.less
+++ b/resources/less/metager/metager.less
@@ -13,6 +13,7 @@
 @import "./pages/resultpage.less";
 @import "./pages/start-page.less";
 @import "./pages/widget.less";
+@import "./pages/settings.less";
 // Parts
 @import "./parts/aufruf-winter.less";
 @import "./parts/footer.less";
diff --git a/resources/less/metager/pages/resultpage/result-page.less b/resources/less/metager/pages/resultpage/result-page.less
index 874a1a7a6a850ebcc75d9d5059b6492c23bfe5af..879d74bb824c18750e9d862c5c02edd211fd17f4 100644
--- a/resources/less/metager/pages/resultpage/result-page.less
+++ b/resources/less/metager/pages/resultpage/result-page.less
@@ -464,6 +464,7 @@ a {
         border-bottom: 1px solid #ccc;
         @media (max-width: @screen-mobile) {
             .card;
+            margin: 0;
         }
         &>div {
             padding-right: 16px;
@@ -498,6 +499,7 @@ a {
     padding: 0 8px;
     @media(max-width: @screen-mobile){
         .card;
+        margin: 0;
     }
     input[type=checkbox]{
         display: none;
@@ -508,20 +510,44 @@ a {
         transform: scaleY(0);
         transition: transform .5s, max-height .5s;
     }
-    input[type=checkbox]:checked + div.scrollbox {
+    input[type=checkbox]:checked + div.scrollbox{
         max-height:200px;
         transform: scaleY(1);
     }
     #toggle-box {
         display: flex;
         align-items: center;
+        margin-left: -8px;
+        @media(max-width: 350px){
+            flex-direction: row-reverse;
+            flex-wrap: wrap-reverse;
+            justify-content: space-around;
+            > div {
+                margin-top: 8px;
+                margin-bottom: 8px;
+            }
+            #filter-toggle {
+                flex-direction: column;
+            }
+        }
+        > div {
+            margin-left: 8px;
+        }
+        #filter-toggle {
+            display: flex;
+            flex-wrap: wrap;
+            align-items: center;
+            justify-content: center;
+            flex-grow: 0;
+            margin-left: 0px;
+            >div {
+                margin-left: 8px;
+            }
+        }
         #result-count {
             flex-grow: 1;
             text-align: right;
         }
-        #options-reset {
-            margin-left: 10px;
-        }
         .option-toggle {
             text-align: center;
             label{
@@ -536,8 +562,6 @@ a {
         justify-content: left;
         overflow: hidden;
         overflow-x: auto;
-        border-bottom: 1px solid #ccc;
-        padding-bottom: 8px;
         padding-top: 8px;
         #options-items {
             display: -ms-flexbox;
@@ -566,6 +590,24 @@ a {
             }
         }
     }
+    #settings {
+        text-align: center;
+        a {
+            color: #333;
+            &:hover {
+                color: red;
+                span.badge {
+                    background-color: red;
+                }
+            }
+            
+            span.badge {
+                margin-top: -12px;
+                font-size: .7em;
+                font-weight: normal;
+            }
+        }
+    }
 }
 
 #spendenaufruf {
diff --git a/resources/less/metager/pages/settings.less b/resources/less/metager/pages/settings.less
new file mode 100644
index 0000000000000000000000000000000000000000..2d61c26fc0d9f0f7342fafc00827d15aa9d32add
--- /dev/null
+++ b/resources/less/metager/pages/settings.less
@@ -0,0 +1,51 @@
+#settings {
+    .sumas {
+        display: flex;
+        flex-wrap: wrap;
+        margin-left: -8px;
+        .suma button {
+            padding: 8px;
+            margin-left: 8px;
+            margin-top: 8px;
+            border-radius: 4px;
+        }
+        &.enabled-engines .suma button {
+            background-color: #9ad79a;
+        }
+        &.disabled-engines .suma button {
+            background-color: #fea0a0;
+        }
+        &.filtered-engines .suma{
+            background-color: #bababa;
+            padding: 8px;
+            margin-left: 8px;
+            margin-top: 8px;
+            border-radius: 4px;
+        }
+    }
+
+    #filter-options {
+        display: flex;
+        flex-wrap: wrap;
+        margin-left: -8px;
+        > div {
+            margin-left: 8px;
+        }
+    }
+
+    #actions {
+        display: flex;
+        align-items: center;
+        justify-content: center;
+        flex-wrap: wrap;
+        > #back, > a, > form {
+            margin-left: 8px;
+            margin-top: 4px;
+            margin-bottom: 4px;
+        }
+    }
+
+    #no-settings {
+        text-align: center;
+    }
+}
\ No newline at end of file
diff --git a/resources/less/metager/pages/start-page.less b/resources/less/metager/pages/start-page.less
index 78bda4903fbee8de219d499773667bfdfc0ff47f..f3afdb33df55c4fff20a51b1d757762b4cd8f1ec 100644
--- a/resources/less/metager/pages/start-page.less
+++ b/resources/less/metager/pages/start-page.less
@@ -6,7 +6,7 @@
     flex-grow: 1;
     display: flex;
     flex-direction: column;
-    justify-content: center;
+    margin-top: 5vh;
     @media(max-width: @main-content-width) {
         width: 100%;
     }
@@ -33,7 +33,6 @@
         width: 30px;
         height: 30px;
         align-items: center;
-        justify-content: center;
         display: none;
         &:hover{
             color: red;
@@ -47,6 +46,8 @@
 }
 
 .startpage #main-content {
+    justify-content: center;
+    margin-top: 0;
     @media(max-width: @screen-mobile){
         justify-content: start;
         margin-top: 20vh;
diff --git a/resources/views/index.blade.php b/resources/views/index.blade.php
index 476090f2b66050704d48aa45e331ea1934ed3a87..20596384b53bfd0fb3ca582499439614b09d53cd 100644
--- a/resources/views/index.blade.php
+++ b/resources/views/index.blade.php
@@ -14,7 +14,6 @@
 		<i class="fas fa-angle-double-down"></i>
 	</a>
 	<script src="{{ mix('js/scriptStartPage.js') }}" defer></script>
-	<script src="{{ mix('js/searchbar.js') }}" defer></script>
 @endsection
 
 @section('additional-content')
diff --git a/resources/views/layouts/researchandtabs.blade.php b/resources/views/layouts/researchandtabs.blade.php
index f47ca05e12549fce09a5fa82e751a046b8c38526..2597a147d0457095118409717d80f4503843e507 100644
--- a/resources/views/layouts/researchandtabs.blade.php
+++ b/resources/views/layouts/researchandtabs.blade.php
@@ -24,48 +24,7 @@
 			<div class="scrollfade-right"></div>
 		</div>
 	</div>
-	@if(sizeof($metager->getAvailableParameterFilter()) > 0)
-	<div id="options">
-		<div id="toggle-box">
-			@if(sizeof($metager->getAvailableParameterFilter()) > 0)
-			<div class="option-toggle">
-				<label class="navigation-element" for="options-toggle">
-					<i class="fas fa-filter"></i> Filter&hellip;
-				</label>
-			</div>
-			@endif
-			@if(sizeof($metager->getParameterFilter()) > 0)
-			<div id="options-reset">
-				<a href="{{$metager->generateSearchLink($metager->getFokus())}}"><nobr>{{ trans('metaGer.filter.reset') }}</nobr></a>
-			</div>
-			@endif
-			@if($metager->getTotalResultCount() > 0)
-			<div id="result-count">
-				~ {{$metager->getTotalResultCount()}} {{ trans('metaGer.results') }}
-			</div>
-			@endif
-		</div>
-		<input type="checkbox" id="options-toggle" @if(sizeof($metager->getParameterFilter()) > 0)checked @endif />
-		<div class="scrollbox">
-			<div id="options-box">
-				<div id="options-items">
-				@foreach($metager->getAvailableParameterFilter() as $filterName => $filter)
-					<div class="option-selector">
-					<label for="{{$filterName}}">@lang($filter->name)</label>
-					<select name="{{$filter->{'get-parameter'} }}" form="searchForm" onchange="this.form.submit()">
-						@foreach($filter->values as $value => $text)
-						<option value="{{$value}}" @if(Request::input($filter->{'get-parameter'}, '') === $value)selected="selected" @endif>{{trans($text)}}</option>
-						@endforeach
-					</select>
-					</div>
-				@endforeach
-				</div>
-
-			</div>
-			<div class="scrollfade-right"></div>
-		</div>
-	</div>
-	@endif
+	@include('parts.filter')
 	<div id="results-container">
 		@include('parts.errors')
 		@include('parts.warnings')
diff --git a/resources/views/layouts/resultPage.blade.php b/resources/views/layouts/resultPage.blade.php
index ac02fd164bae86aa46193bfc0fe761ad6a6c0b6c..1c77e9cd05ff7ac38932444a820f3d0f66dbd871 100644
--- a/resources/views/layouts/resultPage.blade.php
+++ b/resources/views/layouts/resultPage.blade.php
@@ -12,7 +12,7 @@
 		<meta name="mm" content="{{ $metager->getVerificationId() }}" />
 		<meta name="mn" content="{{ $metager->getVerificationCount() }}" />
 		<meta name="searchkey" content="{{ $metager->getSearchUid() }}" />
-		<link rel="search" type="application/opensearchdescription+xml" title="{!! trans('resultPage.opensearch') !!}" href="{{  LaravelLocalization::getLocalizedURL(LaravelLocalization::getCurrentLocale(), action('StartpageController@loadPlugin', ['params' => base64_encode(serialize(Request::all()))])) }}">
+		<link rel="search" type="application/opensearchdescription+xml" title="{!! trans('resultPage.opensearch') !!}" href="{{  LaravelLocalization::getLocalizedURL(LaravelLocalization::getCurrentLocale(), action('StartpageController@loadPlugin')) }}">
 		<link href="/fonts/liberationsans/stylesheet.css" rel="stylesheet">
 		<link type="text/css" rel="stylesheet" href="{{ mix('css/fontawesome.css') }}" />
 		<link type="text/css" rel="stylesheet" href="{{ mix('css/fontawesome-solid.css') }}" />
@@ -45,6 +45,5 @@
 		@include('parts.sidebar-opener', ['class' => 'fixed'])
 		<script src="{{ mix('js/lib.js') }}"></script>
 		<script src="{{ mix('js/scriptResultPage.js') }}" defer></script>
-		<script src="{{ mix('js/searchbar.js') }}" defer></script>
 	</body>
 </html>
diff --git a/resources/views/layouts/staticPages.blade.php b/resources/views/layouts/staticPages.blade.php
index 8af60f4e51df9b746a5defd40af5aceb2194aefe..226d987d4a290ae49196abe9b8f00390769c794e 100644
--- a/resources/views/layouts/staticPages.blade.php
+++ b/resources/views/layouts/staticPages.blade.php
@@ -12,7 +12,7 @@
 		<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1" />
 		<link href="/favicon.ico" rel="icon" type="image/x-icon" />
 		<link href="/favicon.ico" rel="shortcut icon" type="image/x-icon" />
-		<link rel="search" type="application/opensearchdescription+xml" title="{{ trans('staticPages.opensearch') }}" href="{{  LaravelLocalization::getLocalizedURL(LaravelLocalization::getCurrentLocale(), action('StartpageController@loadPlugin', ['params' => base64_encode(serialize(Request::all()))])) }}">
+		<link rel="search" type="application/opensearchdescription+xml" title="{{ trans('staticPages.opensearch') }}" href="{{  LaravelLocalization::getLocalizedURL(LaravelLocalization::getCurrentLocale(), action('StartpageController@loadPlugin')) }}">
 		<link type="text/css" rel="stylesheet" href="{{ mix('css/bootstrap.css') }}" />
 		<link type="text/css" rel="stylesheet" href="{{ mix('css/themes/metager.css') }}" />
 		<link type="text/css" rel="stylesheet" href="{{ mix('css/utility.css') }}" />
diff --git a/resources/views/parts/filter.blade.php b/resources/views/parts/filter.blade.php
new file mode 100644
index 0000000000000000000000000000000000000000..719b6beaccc8b3d6308dad4120864e3cff8862d7
--- /dev/null
+++ b/resources/views/parts/filter.blade.php
@@ -0,0 +1,55 @@
+	<div id="options">
+		<div id="toggle-box">
+			<div id="filter-toggle">
+				@if(sizeof($metager->getAvailableParameterFilter()) > 0)
+				<div class="option-toggle">
+					<label class="navigation-element" for="options-toggle">
+						<i class="fas fa-filter"></i> Filter&hellip;
+					</label>
+				</div>
+				@endif
+				@if($metager->getManualParameterFilterSet())
+				<div id="options-reset">
+					<a href="{{$metager->generateSearchLink($metager->getFokus())}}"><nobr>{{ trans('metaGer.filter.reset') }}</nobr></a>
+				</div>
+				@endif
+			</div>
+			<div id="settings">
+				<a href="{{ LaravelLocalization::getLocalizedURL(LaravelLocalization::getCurrentLocale(), route('settings', ["fokus" => $metager->getFokus(), "url" => url()->full()])) }}">
+					<i class="fas fa-cogs"></i>
+					@if($metager->getSavedSettingCount() > 0) <span class="badge badge-primary">{{ $metager->getSavedSettingCount() }}@endif</span>
+					@lang('metaGer.settings')&hellip;
+				</a>
+			</div>
+			@if($metager->getTotalResultCount() > 0)
+			<div id="result-count">
+				<nobr>~ {{$metager->getTotalResultCount()}}</nobr> {{ trans('metaGer.results') }}
+			</div>
+			@endif
+		</div>
+		@if(sizeof($metager->getAvailableParameterFilter()) > 0)
+		<input type="checkbox" id="options-toggle" @if(sizeof($metager->getParameterFilter()) > 0)checked @endif />
+		<div class="scrollbox">
+			<div id="options-box">
+				<div id="options-items">
+				@foreach($metager->getAvailableParameterFilter() as $filterName => $filter)
+					<div class="option-selector">
+					<label for="{{$filterName}}">@lang($filter->name)</label>
+					<select name="{{$filter->{'get-parameter'} }}" class="custom-select custom-select-sm" form="searchForm" onchange="this.form.submit()">
+						@foreach($filter->values as $value => $text)
+						@if($value === "" && Cookie::get($metager->getFokus() . "_setting_" . $filter->{"get-parameter"}) !== null)
+						<option value="off" @if(empty($filter->value) || $filter->value === "off")selected @endif>{{trans($text)}}</option>
+						@else
+						<option value="{{$value}}" @if(!empty($filter->value) && $filter->value === $value)selected @endif>{{trans($text)}}</option>
+						@endif
+						@endforeach
+					</select>
+					</div>
+				@endforeach
+				</div>
+
+			</div>
+			<div class="scrollfade-right"></div>
+		</div>
+	@endif
+	</div>
diff --git a/resources/views/parts/searchbar.blade.php b/resources/views/parts/searchbar.blade.php
index cd233aed8710dcc8ccb4cf4ad5b0f5a5c48e7b85..83b795373f4c1b32c14bcf216952a50b1ddc23cf 100644
--- a/resources/views/parts/searchbar.blade.php
+++ b/resources/views/parts/searchbar.blade.php
@@ -1,4 +1,3 @@
-{{-- Don't forget <script src="{{ mix('js/searchbar.js') }}"></script> --}}
 <fieldset>
 	<form id="searchForm" method={{ $request }} action="{{ LaravelLocalization::getLocalizedURL(LaravelLocalization::getCurrentLocale(), "/meta/meta.ger3 ") }}" accept-charset="UTF-8">
 		<div class="searchbar {{$class ?? ''}}">
diff --git a/resources/views/plugin.blade.php b/resources/views/plugin.blade.php
index f8d99357ccb957a487bf0add61eff1ee5d0ac10d..cf85ddec5c244a319e52eb41fb9b42f575fcf512 100644
--- a/resources/views/plugin.blade.php
+++ b/resources/views/plugin.blade.php
@@ -4,17 +4,6 @@
         <Description>{{ trans('plugin.description') }}</Description>
         <Contact>office@suma-ev.de</Contact>
         <Image width="16" height="16" type="image/x-icon">{{ url('/favicon.ico') }}</Image>
-        @if ($request == "POST")
-        <Url type="text/html" template="{{ $link }}" method="{{$request}}">
-                <Param name="eingabe" value="{searchTerms}" />
-                @foreach($params as $key => $value)
-                <Param name="{{$key}}" value="{{$value}}" />
-
-                @endforeach
-
-        </Url>
-        @else
-        <Url type="text/html" template="{{ $link }}?eingabe={searchTerms}@foreach($params as $key => $value)&amp;{{$key}}={{$value}}@endforeach" method="{{$request}}" />
-        @endif
+        <Url type="text/html" template="{{ $link }}?eingabe={searchTerms}" method="GET" />
         <InputEncoding>UTF-8</InputEncoding>
 </OpenSearchDescription>
diff --git a/resources/views/settings.blade.php b/resources/views/settings.blade.php
deleted file mode 100644
index f0bbca1d5b0f14d67ddee800bded472020e7cf5c..0000000000000000000000000000000000000000
--- a/resources/views/settings.blade.php
+++ /dev/null
@@ -1,60 +0,0 @@
-@extends('layouts.subPages')
-
-@section('title', $title )
-
-@section('content')
-	<form id="settings-form" action="{{ LaravelLocalization::getLocalizedURL(LaravelLocalization::getCurrentLocale(), "/") }}" method="get">
-		<h1>{!! trans('settings.head.1') !!}</h1>
-		<p id="lead">{!! trans('settings.head.2') !!}</p>
-		<h2>{!! trans('settings.allgemein.1') !!}</h2>
-		<div id="settings-selectors">
-			<div>
-				<label class="select-label">@lang("settings.quotes.label")</label>
-				<select class="form-control settings-form-control" name="param_sprueche">
-					<option value="on" selected>@lang("settings.quotes.on")</option>
-					<option value="off">@lang("settings.quotes.off")</option>
-				</select>
-			</div>
-			<div>
-				<label class="select-label">@lang("settings.tab.label")</label>
-				<select class="form-control settings-form-control" name="param_newtab">
-					<option value="on" selected>@lang("settings.tab.new")</option>
-					<option value="off">@lang("settings.tab.same")</option>
-				</select>
-			</div>
-			<div>
-				<label class="select-label">{!! trans('settings.language.label') !!}</label>
-				<select class="form-control settings-form-control" name="param_lang">
-					<option value="all" @if(App::isLocale('de')) selected @endif >{!! trans('settings.language.all') !!}</option>
-					<option value="de">{!! trans('settings.language.de') !!}</option>
-					<option value="en" @if(App::isLocale('en')) selected @endif>{!! trans('settings.language.en') !!}</option>
-				</select>
-			</div>
-			<div>
-				<label class="select-label">{{ trans('settings.request') }}:</label>
-				<select class="form-control settings-form-control" name="request">
-					<option value="GET" selected>GET</option>
-					<option value="POST">POST</option>
-				</select>
-			</div>
-			<div>
-				<label class="select-label">@lang('settings.autocomplete.label'):</label>
-				<select class="form-control settings-form-control" name="param_autocomplete">
-					<option value="on" selected>@lang('settings.autocomplete.on')</option>
-					<option value="off">@lang('settings.autocomplete.off')</option>
-				</select>
-			</div>
-			<div>
-				<label class="select-label">@lang('settings.key.label'):</label>
-				<input type="text" class="form-control settings-form-control" name="param_key" placeholder="@lang('settings.key.placeholder')">
-			</div>
-		</div>
-		<div id="settings-buttons">
-			<a id="settings-abort-btn" class="btn btn-danger mutelink" href="{{ URL::previous() }}">@lang('settings.abort') <i class="fa fa-times" aria-hidden="true"></i></a>
-			<input id="unten" class="btn btn-primary" type="submit" value="{!! trans('settings.speichern.1') !!}">
-			<input id="save" class="btn btn-primary hidden" type="button" data-href="{{ URL::previous() }}" value="{!! trans('settings.speichern.2') !!}">
-			<input id="plugin" class="btn btn-primary" type="submit" value="{!! trans('settings.speichern.3') !!}">
-		</div>
-	</form>
-	<script src="{{ mix('js/settings.js') }}"></script>
-@endsection
diff --git a/resources/views/settings/allSettings.blade.php b/resources/views/settings/allSettings.blade.php
new file mode 100644
index 0000000000000000000000000000000000000000..1e278278357a3f05bbf8f1e1afc1e90901ec0efc
--- /dev/null
+++ b/resources/views/settings/allSettings.blade.php
@@ -0,0 +1,65 @@
+@extends('layouts.subPages')
+
+@section('title', $title )
+
+@section('content')
+<div id="settings">
+    <div class="card-light">
+        <h2>@lang('settings.allSettings.header', ["root" => Request::root()])</h2>
+        <p>@lang('settings.allSettings.text')</p>
+        @if(sizeof(Cookie::get()) > 0)
+        <div class="table-responsive">
+            <table class="table table-striped">
+                <thead>
+                    <tr>
+                        <th>Cookie</th>
+                        <th>@lang('settings.meaning')</th>
+                        <th>@lang('settings.actions')</th>
+                    </tr>
+                </thead>
+                <tbody>
+                    @foreach(Cookie::get() as $key => $value)
+                    <tr>
+                        <td>{{ $key . "=" . $value }}</td>
+                        <td>
+                        @if(strpos($key, "_engine_") !== FALSE)
+                        @lang('settings.engineDisabled', ["engine" => $sumaFile->sumas->{substr($key, strrpos($key, "_")+1)}->{"display-name"}, "focus" => trans('index.foki.' . substr($key, 0, strpos($key, "_")))])
+                        @elseif(strpos($key, "_setting_") !== FALSE)
+                            @foreach($sumaFile->filter->{"parameter-filter"} as $filterName => $filter)
+                                @if($filter->{"get-parameter"} === substr($key, strrpos($key, "_")+1))
+                                @lang($filter->name)=@lang($filter->values->$value) @lang('settings.inFocus') @lang('index.foki.' . substr($key, 0, strpos($key, "_")))
+                                @endif
+                            @endforeach
+                        @elseif($key === "key")
+                        @lang('settings.key')
+                        @endif
+                        </td>
+                        <td>
+                            <form action="{{ LaravelLocalization::getLocalizedURL(LaravelLocalization::getCurrentLocale(), route('removeOneSetting')) }}" method="post">
+                                <input type="hidden" name="key" value="{{ $key }}">
+                                <input type="hidden" name="url" value="{{ url()->full() }}">
+                                <button type="submit" title="@lang('settings.removeCookie')">
+                                    <i class="fas fa-trash-alt"></i>
+                                </button>
+                            </form>
+                        </td>
+                    </tr>
+                    @endforeach
+                </tbody>
+            </table>
+            @else
+            <p id="no-settings">@lang('settings.noSettings')</p>
+            @endif
+        </div>
+        <div id="actions">
+                <a href="{{ $url }}" class="btn btn-sm btn-default">@lang('settings.back')</a>
+                @if(sizeof(Cookie::get()) > 0)
+                <form action="{{ LaravelLocalization::getLocalizedURL(LaravelLocalization::getCurrentLocale(), route('removeAllSettings'))}}" method="post">
+                    <input type="hidden" name="url" value="{{ url()->full() }}">
+                    <button type="submit" class="btn btn-sm btn-danger">@lang('settings.reset')</button>
+                </form>
+                @endif
+            </div>
+    </div>
+</div>
+@endsection
diff --git a/resources/views/settings/index.blade.php b/resources/views/settings/index.blade.php
new file mode 100644
index 0000000000000000000000000000000000000000..03e52845d590838ef017aabf0a8745c6be23b52b
--- /dev/null
+++ b/resources/views/settings/index.blade.php
@@ -0,0 +1,102 @@
+@extends('layouts.subPages')
+
+@section('title', $title )
+
+@section('content')
+<div id="settings">
+    <div class="card-light">
+        <h2>@lang('settings.header.1') ({{ $fokusName }})</h2>
+        <p>@lang('settings.text.1', ["fokusName" => $fokusName])</p>
+    </div>
+    <div class="card-light">
+        <h2>@lang('settings.hint.header')</h2>
+        <p>@lang('settings.hint.text', ["link" => LaravelLocalization::getLocalizedURL(LaravelLocalization::getCurrentLocale(), route('showAllSettings', ['url' => url()->full()])) ])</p>
+    </div>
+    <div class="card-light">
+        <h2>@lang('settings.header.2')</h2>
+        <p>@lang('settings.text.2')</p>
+        <p></p>
+        <div class="sumas enabled-engines">
+            @foreach($sumas as $suma => $sumaInfo)
+            @if(! $sumaInfo["filtered"] && $sumaInfo["enabled"])
+                <div class="suma">
+                    <form action="{{ LaravelLocalization::getLocalizedURL(LaravelLocalization::getCurrentLocale(), route('disableEngine')) }}" method="post">
+                        <input type="hidden" name="suma" value="{{ $suma }}">
+                        <input type="hidden" name="fokus" value="{{ $fokus }}">
+                        <input type="hidden" name="url" value="{{ $url }}">
+                        <button type="submit">{{ $sumaInfo["display-name"] }}</button>
+                    </form>
+                </div>
+            @endif
+            @endforeach
+        </div>
+        <div class="sumas disabled-engines">
+            @foreach($sumas as $suma => $sumaInfo)
+            @if( !$sumaInfo["filtered"] && !$sumaInfo["enabled"])
+                <div class="suma">
+                    <form action="{{ LaravelLocalization::getLocalizedURL(LaravelLocalization::getCurrentLocale(), route('enableEngine')) }}" method="post">
+                        <input type="hidden" name="suma" value="{{ $suma }}">
+                        <input type="hidden" name="fokus" value="{{ $fokus }}">
+                        <input type="hidden" name="url" value="{{ $url }}">
+                        <button type="submit">{{ $sumaInfo["display-name"] }}</button>
+                    </form>
+                </div>
+            @endif
+            @endforeach
+        </div>
+        @if($filteredSumas)
+        <h4>@lang('settings.disabledByFilter')</h4>
+        <div class="sumas filtered-engines">
+            @foreach($sumas as $suma => $sumaInfo)
+            @if($sumaInfo["filtered"])
+                <div class="suma">
+                    {{ $sumaInfo["display-name"] }}
+                </div>
+            @endif
+            @endforeach
+        </div>
+        @endif
+    </div>
+    <div class="card-light">
+        <h2>@lang('settings.header.3')</h2>
+        <p>@lang('settings.text.3')</p>
+        <form id="filter-form" action="{{ LaravelLocalization::getLocalizedURL(LaravelLocalization::getCurrentLocale(), route('enableFilter')) }}" method="post" class="form">
+            <input type="hidden" name="fokus" value="{{ $fokus }}">
+            <input type="hidden" name="url" value="{{ $url }}">
+            <div id="filter-options">
+                @foreach($filter as $name => $filterInfo)
+                <div class="form-group">
+                    <label for="{{ $filterInfo->{"get-parameter"} }}">@lang($filterInfo->name)</label>
+                    <select name="{{ $filterInfo->{"get-parameter"} }}" id="{{ $filterInfo->{"get-parameter"} }}" class="form-control">
+                        <option value="" @if(Cookie::get($fokus . "_setting_" . $filterInfo->{"get-parameter"}) === null)disabled selected @endif>@lang('metaGer.filter.noFilter')</option>
+                        @foreach($filterInfo->values as $key => $value)
+                        @if(!empty($key))
+                        <option value="{{ $key }}" {{ Cookie::get($fokus . "_setting_" . $filterInfo->{"get-parameter"}) === $key ? "disabled selected" : "" }}>@lang($value)</option>
+                        @endif
+                        @endforeach
+                    </select>
+                </div>
+                @endforeach
+            </div>
+            <button type="submit" class="btn btn-default">@lang('settings.save')</button>
+        </form>
+
+    </div>
+    <div class="card-light" id="actions">
+        @if($settingActive)
+        <div id="reset">
+            <form action="{{ LaravelLocalization::getLocalizedURL(LaravelLocalization::getCurrentLocale(), route('deleteSettings', ["fokus" => $fokus, "url" => $url])) }}" method="post">
+                <input type="hidden" name="url" value="{{ $url }}">
+                <input type="hidden" name="fokus" value="{{ $fokus }}">
+                <button type="submit" class="btn btn-sm btn-danger">@lang('settings.reset')</button>
+            </form>
+        </div>
+        @endif
+        <div id="back">
+            <a href="{{ $url }}" class="btn btn-sm btn-default">@lang('settings.back')</a>
+        </div>
+    </div>
+
+    <script src="{{ mix('js/scriptSettings.js') }}"></script>
+</div>
+@endsection
diff --git a/resources/views/spende/bitpay.blade.php b/resources/views/spende/bitpay.blade.php
index 1eb5d6ed1932f019c81fb63f9600d0f3cbbb5341..df79efdb68471fa8239a0440518aca6ecb310477 100644
--- a/resources/views/spende/bitpay.blade.php
+++ b/resources/views/spende/bitpay.blade.php
@@ -7,9 +7,9 @@
         		<div class="field-input-wrapper">
         			<input class="bitpay-donate-field-price field-input" name="price" type="number" value="10.00" placeholder="{{ trans('bitpay.amount') }}" maxlength="10" min="1" step="0.01"/>
         			<select class="bitpay-donate-field-currency field-input" name="currency" value="">
-						<option selected="selected" value="USD">USD</option>
+						<option value="USD">USD</option>
 						<option value="BTC">BTC</option>
-						<option value="EUR">EUR</option>
+						<option selected="selected" value="EUR">EUR</option>
 						<option value="GBP">GBP</option>
 						<option value="AUD">AUD</option>
 						<option value="BGN">BGN</option>
diff --git a/routes/cookie.php b/routes/cookie.php
index 434e66715971a4bed912c519a7af2a2fbf7c707d..95ccd1c12ad1d75208df07ac73c83ab3eb3d8f42 100644
--- a/routes/cookie.php
+++ b/routes/cookie.php
@@ -9,5 +9,22 @@ Route::group(
         Route::get('meta/key', "KeyController@index");
         Route::post('meta/key', 'KeyController@setKey');
         Route::post('meta/key/remove', 'KeyController@removeKey');
+
+        Route::group([
+            'prefix' => 'meta/settings',
+        ],
+            function () {
+                Route::get('/', 'SettingsController@index')->name('settings');
+                Route::post('de', 'SettingsController@disableSearchEngine')->name('disableEngine');
+                Route::post('ee', 'SettingsController@enableSearchEngine')->name('enableEngine');
+                Route::post('ef', 'SettingsController@enableFilter')->name('enableFilter');
+                Route::post('ds', 'SettingsController@deleteSettings')->name('deleteSettings');
+
+                # Route to show and delete all settings
+                Route::get('all-settings', 'SettingsController@allSettingsIndex')->name('showAllSettings');
+                Route::post('all-settings/removeOne', 'SettingsController@removeOneSetting')->name('removeOneSetting');
+                Route::post('all-settings/removeAll', 'SettingsController@removeAllSettings')->name('removeAllSettings');
+
+            });
     }
 );
diff --git a/routes/web.php b/routes/web.php
index f3a25d0c1b139309dd80593b11f537a1dd814617..724436380b95f993173a9758ac17b35ed9cc9ac2 100644
--- a/routes/web.php
+++ b/routes/web.php
@@ -189,7 +189,7 @@ Route::group(
 
         Route::get('qt', 'MetaGerSearch@quicktips');
         Route::get('tips', 'MetaGerSearch@tips');
-        Route::get('/plugins/{params}/opensearch.xml', 'StartpageController@loadPlugin');
+        Route::get('/plugins/opensearch.xml', 'StartpageController@loadPlugin');
         Route::get('owi', function () {
             return redirect('https://metager.de/klassik/en/owi/');
         });
diff --git a/webpack.mix.js b/webpack.mix.js
index 9d1eb4bb2374efddd5afa2d1875f96e7fa33183f..19f67149574b8f6713986de5bb28109b9580ea11 100644
--- a/webpack.mix.js
+++ b/webpack.mix.js
@@ -46,7 +46,6 @@ mix
       "resources/js/lib/jquery.js",
       "resources/js/lib/jquery-ui.min.js",
       "resources/js/lib/bootstrap.js",
-      "resources/js/lib/iframeResizer.min.js",
       "resources/js/lib/md5.js"
     ],
     "public/js/lib.js"
@@ -58,6 +57,12 @@ mix
     ],
     "public/js/scriptStartPage.js"
   )
+  .babel(
+    [
+      "resources/js/scriptSettings.js"
+    ],
+    "public/js/scriptSettings.js"
+  )
   .babel(
     [
       "resources/js/scriptResultPage.js",
@@ -66,9 +71,6 @@ mix
     ],
     "public/js/scriptResultPage.js"
   )
-  .babel("resources/js/searchbar.js", "public/js/searchbar.js")
-  .babel("resources/js/focus-creator.js", "public/js/focus-creator.js")
-  .babel("resources/js/focus-creator.js", "public/js/focus-creator.js")
   .babel("resources/js/editLanguage.js", "public/js/editLanguage.js")
   .babel("resources/js/bitpay.js", "public/js/bitpay.js")
   // utility