diff --git a/app/Http/Controllers/Assoziator.php b/app/Http/Controllers/Assoziator.php
index b4a7d686dbaaf71e194d27d4f17d958b7fda643c..e60a0d3a804fef53c647752890709cb28eb94943 100644
--- a/app/Http/Controllers/Assoziator.php
+++ b/app/Http/Controllers/Assoziator.php
@@ -14,13 +14,25 @@ class Assoziator extends Controller
             return redirect(LaravelLocalization::getLocalizedURL(LaravelLocalization::getCurrentLocale(), '/asso'));
         }
 
-        $url = "https://metager.de/meta/meta.ger3?eingabe=" . urlencode($eingabe) . "&out=atom10&key=test";
+        $params = [
+            "eingabe" => $eingabe,
+            "out" => "atom10",
+            "key" => env("ASSO_KEY", "test"),
+        ];
+
+
+        $url = route("resultpage", $params);
+
+        # Special Case for local development as the port forwarding does not work within docker
+        if(env("APP_ENV", "") === "local" && stripos($url, "http://localhost:8080") === 0){
+            $url = str_replace("http://localhost:8080", "http://nginx", $url);
+        }
 
         $ch = curl_init();
 
         curl_setopt_array($ch, array(
             CURLOPT_RETURNTRANSFER => 1,
-            CURLOPT_USERAGENT => $_SERVER["AGENT"],
+            CURLOPT_USERAGENT => $_SERVER["HTTP_USER_AGENT"],
             CURLOPT_FOLLOWLOCATION => true,
             CURLOPT_CONNECTTIMEOUT => 10,
             CURLOPT_MAXCONNECTS => 500,
@@ -34,6 +46,11 @@ class Assoziator extends Controller
         ));
 
         $response = curl_exec($ch);
+
+        if(curl_errno($ch)){
+            abort(500, curl_error($ch));
+        }
+
         $responseCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
         curl_close($ch);
 
@@ -115,8 +132,9 @@ class Assoziator extends Controller
             ->with('navbarFocus', 'dienste')
             ->with('words', $words)
             ->with('keywords', $eingabe)
-            ->with('wordCount', $wordCount);
+            ->with('wordCount', $wordCount)
+            ->with('css', [mix('css/asso/style.css')])
+            ->with('darkcss', [mix('css/asso/dark.css')]);;
 
-        die(var_dump($words));
     }
 }
diff --git a/app/Http/Middleware/BrowserVerification.php b/app/Http/Middleware/BrowserVerification.php
index ecd9b76a2df4b270e3a4734ff49b9845641b6326..8069d2684aaa533cc3bfc2d4a80ea77b88fe18ae 100644
--- a/app/Http/Middleware/BrowserVerification.php
+++ b/app/Http/Middleware/BrowserVerification.php
@@ -17,7 +17,7 @@ class BrowserVerification
      * @param  \Closure  $next
      * @return mixed
      */
-    public function handle($request, Closure $next)
+    public function handle($request, Closure $next, $route = "resultpage")
     {
 
         $bvEnabled = config("metager.metager.browserverification_enabled");
@@ -42,6 +42,7 @@ class BrowserVerification
         }
         header('X-Accel-Buffering: no');
 
+        //use parameter for middleware to skip this when using associator
         if (($request->filled("loadMore") && Cache::has($request->input("loadMore"))) || app('App\Models\Key')->getStatus()) {
             return $next($request);
         }
@@ -83,7 +84,7 @@ class BrowserVerification
 
         $params = $request->all();
         $params["mgv"] = $key;
-        $url = route("resultpage", $params);
+        $url = route($route, $params);
 
         echo(view('layouts.resultpage.unverifiedResultPage')
                 ->with('url', $url)
diff --git a/app/Http/Middleware/HumanVerification.php b/app/Http/Middleware/HumanVerification.php
index d38133150635a5487926aee6df36642c5ef9c9b6..202e52face64f290bf18e1caf66ae46de9ccbfaf 100644
--- a/app/Http/Middleware/HumanVerification.php
+++ b/app/Http/Middleware/HumanVerification.php
@@ -46,6 +46,8 @@ class HumanVerification
              * If someone that uses a bot finds this out we
              * might have to change it at some point.
              */
+
+            //use parameter for middleware to skip this when using associator
             if (!env('BOT_PROTECTION', false) || app('App\Models\Key')->getStatus()) {
                 $update = false;
                 return $next($request);
diff --git a/resources/less/metager/pages/asso/style-dark.less b/resources/less/metager/pages/asso/style-dark.less
new file mode 100644
index 0000000000000000000000000000000000000000..8a60b0a30d8f350052ae548c9454e1fa5d9aec4e
--- /dev/null
+++ b/resources/less/metager/pages/asso/style-dark.less
@@ -0,0 +1,7 @@
+.reasso {
+    color: #fd8307;
+}
+
+tr:nth-child(odd){
+    background-color: #333030;
+}
\ No newline at end of file
diff --git a/resources/less/metager/pages/asso/style.less b/resources/less/metager/pages/asso/style.less
new file mode 100644
index 0000000000000000000000000000000000000000..a3234f46bfa44f143f5e51ad92b79b1078783adc
--- /dev/null
+++ b/resources/less/metager/pages/asso/style.less
@@ -0,0 +1,33 @@
+table {
+    width: 100%;
+}
+table > tbody > tr {
+    text-align: center;
+
+}
+
+tr:nth-child(odd){
+    background-color: #dbd8d8;
+}
+form div.input-group-addon button {
+    padding: 9px;
+}
+
+.reasso {
+    color: #06C;
+    font-size: 1.3rem;
+    cursor: pointer;
+}
+.reasso:hover {
+    color: red;
+}
+
+td.association {
+    display: flex;
+    align-items: center;
+    margin-left: 8px;
+    padding: 8px;
+}
+.asso-search-link {
+    margin-right: 10px;
+}
\ No newline at end of file
diff --git a/resources/views/assoziator/asso.blade.php b/resources/views/assoziator/asso.blade.php
index fdeeb6e92fd01bd0345b489132a8cff970c8b002..7ff76adb245e65f86ef8d3e80426566dbf6bef08 100644
--- a/resources/views/assoziator/asso.blade.php
+++ b/resources/views/assoziator/asso.blade.php
@@ -1,65 +1,54 @@
 @extends('layouts.subPages')
 
-@section('title', $title )
+@section('title', $title)
 
 @section('content')
-	<style>
-		form div.input-group-addon button {
-			padding: 9px;
-		}
+    <h1 class="page-title">{{ trans('asso.head.1') }}</h1>
+    <div class="card-heavy">
+        <p>{{ trans('asso.1.1') }} <a
+                href="{{ LaravelLocalization::getLocalizedURL(LaravelLocalization::getCurrentLocale(), '/datenschutz') }}"
+                target="_blank">{{ trans('asso.1.2') }}</a>{{ trans('asso.1.3') }}.</p>
 
-		.reasso {
-			color: rgb(0, 102, 204);
-		}
-		.reasso:hover {
-			color: red;
-		}
-
-		td.association {
-			display: flex;
-		}
-		.asso-search-link {
-			margin-right: 10px;
-		}
-	</style>
-	<h1 class="page-title">{{ trans('asso.head.1') }}</h1>
-	<div class="card-heavy">
-		<p>{{ trans('asso.1.1') }} <a href="{{ LaravelLocalization::getLocalizedURL(LaravelLocalization::getCurrentLocale(), '/datenschutz') }}" target="_blank">{{ trans('asso.1.2') }}</a>{{ trans('asso.1.3') }}.</p>
-
-		<form method="post" class="form-inline">
-				<input type="text" class="form-control search-input-mini" placeholder="{{ trans('asso.search.placeholder') }}" @if(isset($keywords)) value="{{$keywords}}" @endif name="q" required autofocus/><button type="submit" class="search-btn-mini"><i class="fa fa-search" aria-hidden="true"></i></button>
-		</form>
-	</div>
-	@if(isset($words))
-	<div class="card-heavy">
-		<div class="table-responsive">
-			<table class="table">
-				<caption>Assoziationen für "{{ $keywords }}"</caption>
-				<thead>
-					<tr>
-						<th>#</th>
-						<th>Assoziation</th>
-						<th>Relevanz</th>
-					</tr>
-				</thead>
-				<tbody>
-					@php $i = 1; @endphp
-					@foreach($words as $key => $value)
-					<tr>
-						<td>{{ $i }}</td>
-						<td class="association">
-							<a class="asso-search-link" href="{{ action('MetaGerSearch@search', ['eingabe' => $key]) }}" title="{{ trans('asso.searchasso.title') }}"><i class="fa fa-search" aria-hidden="true"></i></a>
-							<form method="POST">
-								<button name="q" value="{{ $key }}" class="reasso" type="submit" title="{{ trans('asso.reasso.title') }}">{{ $key }}</button>
-							</form>
-						</td>
-						<td>{{ round(($value / $wordCount) * 100, 2) }}%</td>
-						@php $i++; @endphp
-					</tr>
-					@endforeach
-				</tbody>
-			</table>
-		</div>
-	</div>
-	@endif
+        <form method="get" class="form-inline"
+            action="{{ LaravelLocalization::getLocalizedURL(LaravelLocalization::getCurrentLocale(), route('assoresults')) }}">
+            <input type="text" class="form-control search-input-mini" placeholder="{{ trans('asso.search.placeholder') }}"
+                @if (isset($keywords)) value="{{ $keywords }}" @endif name="q" required autofocus /><button type="submit" class="search-btn-mini"><i
+                    class="fa fa-search" aria-hidden="true"></i></button>
+        </form>
+    </div>
+    @if (isset($words))
+        <div class="card-heavy">
+            <div class="table-responsive">
+                <table class="table">
+                    <caption>Assoziationen für "{{ $keywords }}"</caption>
+                    <thead>
+                        <tr>
+                            <th>#</th>
+                            <th>Assoziation</th>
+                            <th>Relevanz</th>
+                        </tr>
+                    </thead>
+                    <tbody>
+                        @php $i = 1; @endphp
+                        @foreach ($words as $key => $value)
+                            <tr>
+                                <td>{{ $i }}</td>
+                                <td class="association">
+                                    <a class="asso-search-link"
+                                        href="{{ action('MetaGerSearch@search', ['eingabe' => $key]) }}"
+                                        title="{{ trans('asso.searchasso.title') }}"><i class="fa fa-search"
+                                            aria-hidden="true"></i></a>
+                                    <a name="q" value="{{ $key }}" class="reasso"
+                                        href="{{ route('assoresults', ['q' => $key]) }}"
+                                        title="{{ trans('asso.reasso.title') }}">{{ $key }}</a>
+                                </td>
+                                <td>{{ round(($value / $wordCount) * 100, 2) }}%</td>
+                                @php $i++; @endphp
+                            </tr>
+                        @endforeach
+                    </tbody>
+                </table>
+            </div>
+        </div>
+    @endif
 @endsection
diff --git a/routes/web.php b/routes/web.php
index e13a59e537b05f88883f7977e0f24df404b3abbf..eb81c6e648ce808091d5ae7f4a06e548dd91b2aa 100644
--- a/routes/web.php
+++ b/routes/web.php
@@ -38,9 +38,11 @@ Route::group(
         Route::get('asso', function () {
             return view('assoziator.asso')
                 ->with('title', trans('titles.asso'))
-                ->with('navbarFocus', 'dienste');
+                ->with('navbarFocus', 'dienste')
+                ->with('css', [mix('css/asso/style.css')])
+                ->with('darkcss', [mix('css/asso/dark.css')]);
         });
-        Route::post('asso', 'Assoziator@asso');
+        Route::get('asso/meta.ger3', 'Assoziator@asso')->middleware('browserverification:assoresults', 'humanverification')->name("assoresults");
 
         Route::get('impressum', function () {
             return view('impressum')
diff --git a/webpack.mix.js b/webpack.mix.js
index 3e1b9cdcffae4b1c81eec11c74ac6d78c04a683e..350be5f7396ca4058e6e08d32e2495dd731f562f 100644
--- a/webpack.mix.js
+++ b/webpack.mix.js
@@ -55,6 +55,12 @@ mix
   .less("resources/less/metager/pages/count/style.less", "public/css/count/style.css", {
     strictMath: true
   })
+  .less("resources/less/metager/pages/asso/style-dark.less", "public/css/asso/dark.css", {
+    strictMath: true
+  })
+  .less("resources/less/metager/pages/asso/style.less", "public/css/asso/style.css", {
+    strictMath: true
+  })
   .less("resources/less/metager/pages/spende/danke.less", "public/css/spende/danke.css", {
     strictMath: true
   })