diff --git a/RELEASE-NOTES.md b/RELEASE-NOTES.md
index d28b92b5351bf2afb5b44bd0b993ffa9baf745ee..9f3f8c6ac857db6c310fffcc4a683dabac237e2a 100644
--- a/RELEASE-NOTES.md
+++ b/RELEASE-NOTES.md
@@ -19,6 +19,12 @@
 - Die `MembersModel.php` wurde entfernt ([Issue #3811](https://gitlab.studip.de/studip/studip/-/issues/3811))
 - Die `admission.inc.php` wurde entfernt. ([Issue #3812](https://gitlab.studip.de/studip/studip/-/issues/3812))
 - Die Methoden `CronjobScheduler::scheduleOnce()` sowie `CronjobTask::scheduleOnce()` wurden ersatzlos entfernt. ([Issue #4078](https://gitlab.studip.de/studip/studip/-/issues/4078))
+- Die folgenden Klassen wurden innerhalb von Stud.IP verschoben. Da sie über den Autoloader geladen werden, kann jedes manuelle Einbinden ersatzlos entfernt werden. ([Issue #4105](https://gitlab.studip.de/studip/studip/-/issues/4105))
+  - `AuthenticatedController`
+  - `PluginController`
+  - `StudipController`
+  - `StudipControllerPropertiesTrait`
+  - `StudipResponse`
 
 ## Security related issues
 
diff --git a/app/controllers/admin/install.php b/app/controllers/admin/install.php
index 00544451898fbf5e1bdccd7c8c240211d2aa63e1..9ede078859ab3b23d7f548f6ee3b1d81089153da 100644
--- a/app/controllers/admin/install.php
+++ b/app/controllers/admin/install.php
@@ -1,5 +1,5 @@
 <?php
-require_once __DIR__ . '/../studip_controller_properties_trait.php';
+require_once __DIR__ . '/../../../lib/classes/StudipControllerPropertiesTrait.php';
 
 class Admin_InstallController extends Trails_Controller
 {
diff --git a/app/controllers/loncapa.php b/app/controllers/loncapa.php
index 31191783ab48a82ae45cc1fcf1488a3ac54bb2b7..41331b649a623384269ad3853e21acb161af6cb3 100644
--- a/app/controllers/loncapa.php
+++ b/app/controllers/loncapa.php
@@ -1,6 +1,4 @@
 <?php
-require_once 'app/controllers/authenticated_controller.php';
-
 class LoncapaController extends AuthenticatedController
 {
     public function enter_action()
diff --git a/app/controllers/notifications.php b/app/controllers/notifications.php
index b206df1b291c67904a25eba330bf7565212eaab4..dc31aab1595e8221b487570b6d866c0cc56022d8 100644
--- a/app/controllers/notifications.php
+++ b/app/controllers/notifications.php
@@ -13,9 +13,6 @@
  * @since       3.0
  */
 
-require_once 'app/controllers/authenticated_controller.php';
-
-
 class NotificationsController extends AuthenticatedController
 {
     /**
diff --git a/lib/bootstrap-autoload.php b/lib/bootstrap-autoload.php
index 6f3f4a713f2be5564a86948f3369518fdc9325b4..3a767c1fd74118252b625c50c7778ff051c514b1 100644
--- a/lib/bootstrap-autoload.php
+++ b/lib/bootstrap-autoload.php
@@ -76,18 +76,6 @@ StudipAutoloader::addClassLookup(
     $trails_classes,
     'vendor/trails/trails.php'
 );
-StudipAutoloader::addClassLookup(
-    'StudipController',
-    'app/controllers/studip_controller.php'
-);
-StudipAutoloader::addClassLookup(
-    'AuthenticatedController',
-    'app/controllers/authenticated_controller.php'
-);
-StudipAutoloader::addClassLookup(
-    'PluginController',
-    'app/controllers/plugin_controller.php'
-);
 
 // Vendor
 StudipAutoloader::addClassLookups([
diff --git a/app/controllers/authenticated_controller.php b/lib/classes/AuthenticatedController.php
similarity index 100%
rename from app/controllers/authenticated_controller.php
rename to lib/classes/AuthenticatedController.php
diff --git a/app/controllers/plugin_controller.php b/lib/classes/PluginController.php
similarity index 100%
rename from app/controllers/plugin_controller.php
rename to lib/classes/PluginController.php
diff --git a/app/controllers/studip_controller.php b/lib/classes/StudipController.php
similarity index 99%
rename from app/controllers/studip_controller.php
rename to lib/classes/StudipController.php
index 9e238a1c7b4b42705cfcee51021cb5a620720a11..ae316c1b8350e115e9ddd4a1da4f0c76b667beaa 100644
--- a/app/controllers/studip_controller.php
+++ b/lib/classes/StudipController.php
@@ -1,6 +1,6 @@
 <?php
 /*
- * studip_controller.php - studip controller base class
+ * StudipController.php - studip controller base class
  * Copyright (c) 2009  Elmar Ludwig
  *
  * This program is free software; you can redistribute it and/or
@@ -13,9 +13,6 @@ use PhpOffice\PhpSpreadsheet\Spreadsheet;
 use PhpOffice\PhpSpreadsheet\Writer\Csv;
 use PhpOffice\PhpSpreadsheet\Writer\Xlsx;
 
-require_once 'studip_controller_properties_trait.php';
-require_once 'studip_response.php';
-
 /**
  * @property StudipResponse $response
  */
diff --git a/app/controllers/studip_controller_properties_trait.php b/lib/classes/StudipControllerPropertiesTrait.php
similarity index 100%
rename from app/controllers/studip_controller_properties_trait.php
rename to lib/classes/StudipControllerPropertiesTrait.php
diff --git a/app/controllers/studip_response.php b/lib/classes/StudipResponse.php
similarity index 100%
rename from app/controllers/studip_response.php
rename to lib/classes/StudipResponse.php
diff --git a/tests/unit/_bootstrap.php b/tests/unit/_bootstrap.php
index 221611134b3302987dfd2f72b5e9831a5d0c75c6..e5299a6df17e6a12123e3297f6ea6037780066a5 100644
--- a/tests/unit/_bootstrap.php
+++ b/tests/unit/_bootstrap.php
@@ -60,7 +60,6 @@ StudipAutoloader::addAutoloadPath('lib/plugins/engine');
 StudipAutoloader::addAutoloadPath('lib/plugins/core');
 StudipAutoloader::addAutoloadPath('lib/plugins/db');
 
-StudipAutoloader::addClassLookup('StudipController', 'app/controllers/studip_controller.php');
 $trails_classes = [
     'Trails_Dispatcher', 'Trails_Response', 'Trails_Controller',
     'Trails_Inflector', 'Trails_Flash',