diff --git a/classes/LoadModules.php b/classes/LoadModules.php
index ad96343ad63e091a8588c101972c9e387ee8dacb..b15ccbd0845b982fb4b64f1005870fde6898129d 100644
--- a/classes/LoadModules.php
+++ b/classes/LoadModules.php
@@ -2,18 +2,8 @@
 
 namespace uib\ub\loadspeakr;
 
-use \uib\ub\loadspeakr\modules;
-use uib\ub\loadspeakr\modules\AdminModule;
-use uib\ub\loadspeakr\modules\ExportModule;
 use uib\ub\loadspeakr\modules\ModuleInterface;
-use uib\ub\loadspeakr\modules\RedirectModule;
-use uib\ub\loadspeakr\modules\ServiceModule;
-use uib\ub\loadspeakr\modules\SessionModule;
-use uib\ub\loadspeakr\modules\SparqlFilterModule;
-use uib\ub\loadspeakr\modules\StaticModule;
-use uib\ub\loadspeakr\modules\TypeModule;
 use uib\ub\loadspeakr\modules\UnknownModule;
-use uib\ub\loadspeakr\modules\UriModule;
 
 final class LoadModules
 {
@@ -26,12 +16,10 @@ final class LoadModules
 
   public function loadModule(string $uri): ModuleInterface
   {
-
-      $module = ucfirst($uri) . 'Module';
-      $className =  $this->loadClass($module);
+      $className =  $this->loadClass($uri);
       $unknown = new UnknownModule();
 
-      switch ($className) {
+      switch ($uri) {
           case 'admin':
               return new $className();
           case 'redirect':
@@ -60,13 +48,13 @@ final class LoadModules
     private function loadClass($module): string
     {
         if (!$this->moduleAvailable($module)) {
-            return '';
+            HTTPStatus::send500('Module: ' . $module . ' not found.');
         }
 
         $className = ucfirst($module) . 'Module';
 
-        if (class_exists($className)) {
-            return $className;
+        if (file_exists(__DIR__ . '/modules/' . $className . '.php')) {
+            return __NAMESPACE__ . '\\modules\\' . $className;
         }
 
         return '';
diff --git a/index.php b/index.php
index 5e83b129a1f0c2f4d8a90095429ae274cee03fcf..abc168558a8a16a695ffbdd925be7374dfe74c90 100644
--- a/index.php
+++ b/index.php
@@ -71,17 +71,21 @@ $uri = Utils::getMirroredUri($localUri);
  */
 foreach ($conf['modules']['available'] as $loadspkrModule) {
     $loader = new LoadModules($conf);
-    $module = $loader->loadModule($uri);
+    $module = $loader->loadModule($loadspkrModule);
     $matching = $module->match($uri);
 
-    if (!$matching) {
-        HTTPStatus::send404($uri);
-    }
-
-    $module->execute($matching);
+    if ($matching) {
+        $module->execute($matching);
+        if ($conf['logfile'] !== null) {
+            fwrite($conf['logfile'], "]}");
+            fclose($conf['logfile']);
+        }
 
-    if ($conf['logfile'] !== null) {
-        fwrite($conf['logfile'], "]}");
-        fclose($conf['logfile']);
+        /**
+         * Only run first Loadspeakr modules that matches.
+         */
+        exit(0);
     }
 }
+
+HTTPStatus::send404($uri);