diff --git a/composer.json b/composer.json
index db5a199a..981d9701 100755
--- a/composer.json
+++ b/composer.json
@@ -16,5 +16,15 @@
 		"symfony/http-foundation": "2.6.*",
 		"php-pushover/php-pushover": "dev-master",
 		"twig/twig": "1.*"
+	},
+	"autoload": {
+		"files": [
+			"./src/includes/psmconfig.inc.php",
+			"./src/includes/functions.inc.php",
+			"./src/includes/password_compatibility_library.inc.php"
+		],
+		"psr-4": {
+			"psm\\": "src/psm/"
+		}
 	}
 }
diff --git a/composer.lock b/composer.lock
index 451348f4..91d7cf02 100644
--- a/composer.lock
+++ b/composer.lock
@@ -4,7 +4,7 @@
         "Read more about it at http://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file",
         "This file is @generated automatically"
     ],
-    "hash": "925f4c971570ca4d3a856019cdd79add",
+    "hash": "deb9fd4bbeb05c2d3cf1fc7cf51c6f00",
     "packages": [
         {
             "name": "php-pushover/php-pushover",
diff --git a/src/bootstrap.php b/src/bootstrap.php
index 80bf6c8a..e93b8a6d 100644
--- a/src/bootstrap.php
+++ b/src/bootstrap.php
@@ -63,26 +63,6 @@ if(!file_exists($vendor_autoload)) {
 }
 require_once $vendor_autoload;
 
-spl_autoload_register(function($class) {
-	// remove leading \
-	$class = ltrim($class, '\\');
-	$path_parts = explode('\\', $class);
-
-	$filename = array_pop($path_parts);
-	$path = PSM_PATH_SRC . implode(DIRECTORY_SEPARATOR, $path_parts) .
-			DIRECTORY_SEPARATOR .
-			$filename . '.class.php'
-	;
-	if(file_exists($path)) {
-		require_once $path;
-		return;
-	}
-});
-
-$includes = glob(PSM_PATH_SRC . 'includes/*.inc.php');
-foreach($includes as $file) {
-	include_once $file;
-}
 $router = new psm\Router();
 // this may seem insignificant, but right now lots of functions depend on the following global var definition:
 $db = $router->getService('db');
diff --git a/src/psm/Module/AbstractController.class.php b/src/psm/Module/AbstractController.php
similarity index 100%
rename from src/psm/Module/AbstractController.class.php
rename to src/psm/Module/AbstractController.php
diff --git a/src/psm/Module/Config/ConfigModule.class.php b/src/psm/Module/Config/ConfigModule.php
similarity index 100%
rename from src/psm/Module/Config/ConfigModule.class.php
rename to src/psm/Module/Config/ConfigModule.php
diff --git a/src/psm/Module/Config/Controller/ConfigController.class.php b/src/psm/Module/Config/Controller/ConfigController.php
similarity index 100%
rename from src/psm/Module/Config/Controller/ConfigController.class.php
rename to src/psm/Module/Config/Controller/ConfigController.php
diff --git a/src/psm/Module/ControllerInterface.class.php b/src/psm/Module/ControllerInterface.php
similarity index 100%
rename from src/psm/Module/ControllerInterface.class.php
rename to src/psm/Module/ControllerInterface.php
diff --git a/src/psm/Module/Error/Controller/ErrorController.class.php b/src/psm/Module/Error/Controller/ErrorController.php
similarity index 100%
rename from src/psm/Module/Error/Controller/ErrorController.class.php
rename to src/psm/Module/Error/Controller/ErrorController.php
diff --git a/src/psm/Module/Error/ErrorModule.class.php b/src/psm/Module/Error/ErrorModule.php
similarity index 100%
rename from src/psm/Module/Error/ErrorModule.class.php
rename to src/psm/Module/Error/ErrorModule.php
diff --git a/src/psm/Module/Install/Controller/InstallController.class.php b/src/psm/Module/Install/Controller/InstallController.php
similarity index 100%
rename from src/psm/Module/Install/Controller/InstallController.class.php
rename to src/psm/Module/Install/Controller/InstallController.php
diff --git a/src/psm/Module/Install/InstallModule.class.php b/src/psm/Module/Install/InstallModule.php
similarity index 100%
rename from src/psm/Module/Install/InstallModule.class.php
rename to src/psm/Module/Install/InstallModule.php
diff --git a/src/psm/Module/ModuleInterface.class.php b/src/psm/Module/ModuleInterface.php
similarity index 100%
rename from src/psm/Module/ModuleInterface.class.php
rename to src/psm/Module/ModuleInterface.php
diff --git a/src/psm/Module/Server/Controller/AbstractServerController.class.php b/src/psm/Module/Server/Controller/AbstractServerController.php
similarity index 100%
rename from src/psm/Module/Server/Controller/AbstractServerController.class.php
rename to src/psm/Module/Server/Controller/AbstractServerController.php
diff --git a/src/psm/Module/Server/Controller/LogController.class.php b/src/psm/Module/Server/Controller/LogController.php
similarity index 100%
rename from src/psm/Module/Server/Controller/LogController.class.php
rename to src/psm/Module/Server/Controller/LogController.php
diff --git a/src/psm/Module/Server/Controller/ServerController.class.php b/src/psm/Module/Server/Controller/ServerController.php
similarity index 100%
rename from src/psm/Module/Server/Controller/ServerController.class.php
rename to src/psm/Module/Server/Controller/ServerController.php
diff --git a/src/psm/Module/Server/Controller/StatusController.class.php b/src/psm/Module/Server/Controller/StatusController.php
similarity index 100%
rename from src/psm/Module/Server/Controller/StatusController.class.php
rename to src/psm/Module/Server/Controller/StatusController.php
diff --git a/src/psm/Module/Server/Controller/UpdateController.class.php b/src/psm/Module/Server/Controller/UpdateController.php
similarity index 100%
rename from src/psm/Module/Server/Controller/UpdateController.class.php
rename to src/psm/Module/Server/Controller/UpdateController.php
diff --git a/src/psm/Module/Server/ServerModule.class.php b/src/psm/Module/Server/ServerModule.php
similarity index 100%
rename from src/psm/Module/Server/ServerModule.class.php
rename to src/psm/Module/Server/ServerModule.php
diff --git a/src/psm/Module/User/Controller/LoginController.class.php b/src/psm/Module/User/Controller/LoginController.php
similarity index 100%
rename from src/psm/Module/User/Controller/LoginController.class.php
rename to src/psm/Module/User/Controller/LoginController.php
diff --git a/src/psm/Module/User/Controller/ProfileController.class.php b/src/psm/Module/User/Controller/ProfileController.php
similarity index 100%
rename from src/psm/Module/User/Controller/ProfileController.class.php
rename to src/psm/Module/User/Controller/ProfileController.php
diff --git a/src/psm/Module/User/Controller/UserController.class.php b/src/psm/Module/User/Controller/UserController.php
similarity index 100%
rename from src/psm/Module/User/Controller/UserController.class.php
rename to src/psm/Module/User/Controller/UserController.php
diff --git a/src/psm/Module/User/UserModule.class.php b/src/psm/Module/User/UserModule.php
similarity index 100%
rename from src/psm/Module/User/UserModule.class.php
rename to src/psm/Module/User/UserModule.php
diff --git a/src/psm/Router.class.php b/src/psm/Router.php
similarity index 100%
rename from src/psm/Router.class.php
rename to src/psm/Router.php
diff --git a/src/psm/Service/Database.class.php b/src/psm/Service/Database.php
similarity index 100%
rename from src/psm/Service/Database.class.php
rename to src/psm/Service/Database.php
diff --git a/src/psm/Service/User.class.php b/src/psm/Service/User.php
similarity index 100%
rename from src/psm/Service/User.class.php
rename to src/psm/Service/User.php
diff --git a/src/psm/Txtmsg/Clickatell.class.php b/src/psm/Txtmsg/Clickatell.php
similarity index 100%
rename from src/psm/Txtmsg/Clickatell.class.php
rename to src/psm/Txtmsg/Clickatell.php
diff --git a/src/psm/Txtmsg/Core.class.php b/src/psm/Txtmsg/Core.php
similarity index 100%
rename from src/psm/Txtmsg/Core.class.php
rename to src/psm/Txtmsg/Core.php
diff --git a/src/psm/Txtmsg/FreeVoipDeal.class.php b/src/psm/Txtmsg/FreeVoipDeal.php
similarity index 100%
rename from src/psm/Txtmsg/FreeVoipDeal.class.php
rename to src/psm/Txtmsg/FreeVoipDeal.php
diff --git a/src/psm/Txtmsg/Inetworx.class.php b/src/psm/Txtmsg/Inetworx.php
similarity index 100%
rename from src/psm/Txtmsg/Inetworx.class.php
rename to src/psm/Txtmsg/Inetworx.php
diff --git a/src/psm/Txtmsg/Mollie.class.php b/src/psm/Txtmsg/Mollie.php
similarity index 100%
rename from src/psm/Txtmsg/Mollie.class.php
rename to src/psm/Txtmsg/Mollie.php
diff --git a/src/psm/Txtmsg/Mosms.class.php b/src/psm/Txtmsg/Mosms.php
similarity index 100%
rename from src/psm/Txtmsg/Mosms.class.php
rename to src/psm/Txtmsg/Mosms.php
diff --git a/src/psm/Txtmsg/Smsglobal.class.php b/src/psm/Txtmsg/Smsglobal.php
similarity index 100%
rename from src/psm/Txtmsg/Smsglobal.class.php
rename to src/psm/Txtmsg/Smsglobal.php
diff --git a/src/psm/Txtmsg/Smsit.class.php b/src/psm/Txtmsg/Smsit.php
similarity index 100%
rename from src/psm/Txtmsg/Smsit.class.php
rename to src/psm/Txtmsg/Smsit.php
diff --git a/src/psm/Txtmsg/Spryng.class.php b/src/psm/Txtmsg/Spryng.php
similarity index 100%
rename from src/psm/Txtmsg/Spryng.class.php
rename to src/psm/Txtmsg/Spryng.php
diff --git a/src/psm/Txtmsg/TxtmsgInterface.class.php b/src/psm/Txtmsg/TxtmsgInterface.php
similarity index 100%
rename from src/psm/Txtmsg/TxtmsgInterface.class.php
rename to src/psm/Txtmsg/TxtmsgInterface.php
diff --git a/src/psm/Util/Install/Installer.class.php b/src/psm/Util/Install/Installer.php
similarity index 100%
rename from src/psm/Util/Install/Installer.class.php
rename to src/psm/Util/Install/Installer.php
diff --git a/src/psm/Util/Module/Modal.class.php b/src/psm/Util/Module/Modal.php
similarity index 100%
rename from src/psm/Util/Module/Modal.class.php
rename to src/psm/Util/Module/Modal.php
diff --git a/src/psm/Util/Module/ModalInterface.class.php b/src/psm/Util/Module/ModalInterface.php
similarity index 100%
rename from src/psm/Util/Module/ModalInterface.class.php
rename to src/psm/Util/Module/ModalInterface.php
diff --git a/src/psm/Util/Module/Sidebar.class.php b/src/psm/Util/Module/Sidebar.php
similarity index 100%
rename from src/psm/Util/Module/Sidebar.class.php
rename to src/psm/Util/Module/Sidebar.php
diff --git a/src/psm/Util/Module/SidebarInterface.class.php b/src/psm/Util/Module/SidebarInterface.php
similarity index 100%
rename from src/psm/Util/Module/SidebarInterface.class.php
rename to src/psm/Util/Module/SidebarInterface.php
diff --git a/src/psm/Util/Server/ArchiveManager.class.php b/src/psm/Util/Server/ArchiveManager.php
similarity index 100%
rename from src/psm/Util/Server/ArchiveManager.class.php
rename to src/psm/Util/Server/ArchiveManager.php
diff --git a/src/psm/Util/Server/Archiver/ArchiverInterface.class.php b/src/psm/Util/Server/Archiver/ArchiverInterface.php
similarity index 100%
rename from src/psm/Util/Server/Archiver/ArchiverInterface.class.php
rename to src/psm/Util/Server/Archiver/ArchiverInterface.php
diff --git a/src/psm/Util/Server/Archiver/LogsArchiver.class.php b/src/psm/Util/Server/Archiver/LogsArchiver.php
similarity index 100%
rename from src/psm/Util/Server/Archiver/LogsArchiver.class.php
rename to src/psm/Util/Server/Archiver/LogsArchiver.php
diff --git a/src/psm/Util/Server/Archiver/UptimeArchiver.class.php b/src/psm/Util/Server/Archiver/UptimeArchiver.php
similarity index 100%
rename from src/psm/Util/Server/Archiver/UptimeArchiver.class.php
rename to src/psm/Util/Server/Archiver/UptimeArchiver.php
diff --git a/src/psm/Util/Server/HistoryGraph.class.php b/src/psm/Util/Server/HistoryGraph.php
similarity index 100%
rename from src/psm/Util/Server/HistoryGraph.class.php
rename to src/psm/Util/Server/HistoryGraph.php
diff --git a/src/psm/Util/Server/ServerValidator.class.php b/src/psm/Util/Server/ServerValidator.php
similarity index 100%
rename from src/psm/Util/Server/ServerValidator.class.php
rename to src/psm/Util/Server/ServerValidator.php
diff --git a/src/psm/Util/Server/UpdateManager.class.php b/src/psm/Util/Server/UpdateManager.php
similarity index 100%
rename from src/psm/Util/Server/UpdateManager.class.php
rename to src/psm/Util/Server/UpdateManager.php
diff --git a/src/psm/Util/Server/Updater/StatusNotifier.class.php b/src/psm/Util/Server/Updater/StatusNotifier.php
similarity index 100%
rename from src/psm/Util/Server/Updater/StatusNotifier.class.php
rename to src/psm/Util/Server/Updater/StatusNotifier.php
diff --git a/src/psm/Util/Server/Updater/StatusUpdater.class.php b/src/psm/Util/Server/Updater/StatusUpdater.php
similarity index 100%
rename from src/psm/Util/Server/Updater/StatusUpdater.class.php
rename to src/psm/Util/Server/Updater/StatusUpdater.php
diff --git a/src/psm/Util/User/UserValidator.class.php b/src/psm/Util/User/UserValidator.php
similarity index 100%
rename from src/psm/Util/User/UserValidator.class.php
rename to src/psm/Util/User/UserValidator.php