diff --git a/src/index.ts b/src/index.ts
index 9bc101bad1c27f7090efc43224a4690219018c70..d8ecbaf48e4e5c53a336a0b1a8a300d6774c7505 100644
--- a/src/index.ts
+++ b/src/index.ts
@@ -3,17 +3,12 @@ import "./utils/env";
 import { ErrorHandler, handleError } from "./middlewares/utils/ErrorHandler";
 import express, { Application, NextFunction, Request, Response } from "express";
 
-import authRoute from "./routes/auth";
 import bodyParser from "body-parser";
 import expressSession from "express-session";
-import filesRoute from "./routes/files";
 import mongoose from "mongoose";
 import morgan from "morgan";
 import multer from "multer";
-import newsRoute from "./routes/news";
-import notificationsRoute from "./routes/notifications";
-import termsRoute from "./routes/terms";
-import usersRoute from "./routes/user";
+import { setRouters } from "./routes/setRouters";
 
 mongoose
   .connect("mongodb://localhost:27017/bodysch", {
@@ -61,21 +56,9 @@ app.use((req: Request, res: Response, next: NextFunction) => {
   next();
 });
 
-// Register routes
-const prefix = "/api/v1";
-authRoute(prefix, app);
+setRouters(app);
 
-filesRoute(`${prefix}/files`, app);
-
-newsRoute(`${prefix}/news`, app);
-
-notificationsRoute(`${prefix}/notifications`, app);
-
-termsRoute(`${prefix}/terms`, app);
-
-usersRoute(`${prefix}/users`, app);
-
-app.use((err: any, req: Request, res: Response, next: NextFunction) => {
+app.use((err: any, req: Request, res: Response) => {
   if (err instanceof ErrorHandler) return handleError(err, res);
   if (
     err instanceof mongoose.Error.CastError ||
diff --git a/src/routes/setRouters.ts b/src/routes/setRouters.ts
new file mode 100644
index 0000000000000000000000000000000000000000..bc232c53e8e3244b6bcc1a6ffcc3e37d6aef7963
--- /dev/null
+++ b/src/routes/setRouters.ts
@@ -0,0 +1,27 @@
+import { Application } from "express";
+import authRoute from "./auth";
+import filesRoute from "./files";
+import newsRoute from "./news";
+import notificationsRoute from "./notifications";
+import termsRoute from "./terms";
+import userMembershipRoute from "./users/membership";
+import userWarningsRoute from "./users/warning";
+import usersRoute from "./users/user";
+
+const prefix = "/api/v1";
+
+export const setRouters = (app: Application): void => {
+  authRoute(prefix, app);
+
+  filesRoute(`${prefix}/files`, app);
+
+  newsRoute(`${prefix}/news`, app);
+
+  notificationsRoute(`${prefix}/notifications`, app);
+
+  termsRoute(`${prefix}/terms`, app);
+
+  usersRoute(`${prefix}/users`, app);
+  userMembershipRoute(`${prefix}/users`, app);
+  userWarningsRoute(`${prefix}/users`, app);
+};
diff --git a/src/routes/users/membership.ts b/src/routes/users/membership.ts
new file mode 100644
index 0000000000000000000000000000000000000000..0a57b9d1c1acd5c8713e4d95888ddfa61f95de41
--- /dev/null
+++ b/src/routes/users/membership.ts
@@ -0,0 +1,34 @@
+import { Application } from "express";
+import getUserTermMemberships from "../../middlewares/term/getUserTermMemberships";
+import isAdmin from "../../middlewares/auth/isAdmin";
+import isRegistered from "../../middlewares/auth/isRegistered";
+import responseTermsList from "../../middlewares/term/responseTermsList";
+import setOwnUserId from "../../middlewares/user/setOwnUserId";
+
+const userMembershipRoute = (prefix: string, app: Application): void => {
+  /**
+   * Get list of User Term memberships
+   * Role: ADMIN
+   */
+  app.get(
+    `${prefix}/user/:userId/terms`,
+    isRegistered(),
+    isAdmin(),
+    getUserTermMemberships(),
+    responseTermsList()
+  );
+
+  /**
+   * Get list of own Term memberships
+   * Role: NORMAL
+   */
+  app.get(
+    `${prefix}/me/terms`,
+    isRegistered(),
+    setOwnUserId(),
+    getUserTermMemberships(),
+    responseTermsList()
+  );
+};
+
+export default userMembershipRoute;
diff --git a/src/routes/user.ts b/src/routes/users/user.ts
similarity index 53%
rename from src/routes/user.ts
rename to src/routes/users/user.ts
index b0c9d70700880c43978ebca6c83e2648c2508aa3..b54277fd44de97a5f29e70b91c1e211697989eff 100644
--- a/src/routes/user.ts
+++ b/src/routes/users/user.ts
@@ -1,31 +1,24 @@
 import { Application } from "express";
-import acceptPicture from "../middlewares/user/acceptPicture";
-import addWarning from "../middlewares/user/warning/addWarning";
-import createdResponse from "../middlewares/utils/createdResponse";
-import deleteFile from "../middlewares/files/deleteFile";
-import deleteUser from "../middlewares/user/deleteUser";
-import deleteWarning from "../middlewares/user/warning/deleteWarning";
-import example from "../middlewares/example";
-import getFieldValue from "../middlewares/utils/getFieldValue";
-import getUser from "../middlewares/user/getUser";
-import getUserTermMemberships from "../middlewares/term/getUserTermMemberships";
-import getUserWarningsList from "../middlewares/user/warning/getUserWarningsList";
-import getUsersList from "../middlewares/user/getUsersList";
-import isAdmin from "../middlewares/auth/isAdmin";
-import isLoggedIn from "../middlewares/auth/isLoggedIn";
-import isNotRegistered from "../middlewares/auth/isNotRegistered";
-import isRegistered from "../middlewares/auth/isRegistered";
-import noContentResponse from "../middlewares/utils/noContentResponse";
-import registerOwnUser from "../middlewares/user/registerOwnUser";
-import rejectPicture from "../middlewares/user/rejectPicture";
-import responseTermsList from "../middlewares/term/responseTermsList";
-import responseUser from "../middlewares/user/responseUser";
-import responseUsersList from "../middlewares/user/responseUsersList";
-import responseWarningsList from "../middlewares/user/warning/responseWarningsList";
-import setOwnUserId from "../middlewares/user/setOwnUserId";
-import updateTermMember from "../middlewares/term/updateTermMember";
-import updateUser from "../middlewares/user/updateUser";
-import updateWarning from "../middlewares/user/warning/updateWarning";
+import acceptPicture from "../../middlewares/user/acceptPicture";
+import createdResponse from "../../middlewares/utils/createdResponse";
+import deleteFile from "../../middlewares/files/deleteFile";
+import deleteUser from "../../middlewares/user/deleteUser";
+import getFieldValue from "../../middlewares/utils/getFieldValue";
+import getUser from "../../middlewares/user/getUser";
+import getUserTermMemberships from "../../middlewares/term/getUserTermMemberships";
+import getUsersList from "../../middlewares/user/getUsersList";
+import isAdmin from "../../middlewares/auth/isAdmin";
+import isLoggedIn from "../../middlewares/auth/isLoggedIn";
+import isNotRegistered from "../../middlewares/auth/isNotRegistered";
+import isRegistered from "../../middlewares/auth/isRegistered";
+import noContentResponse from "../../middlewares/utils/noContentResponse";
+import registerOwnUser from "../../middlewares/user/registerOwnUser";
+import rejectPicture from "../../middlewares/user/rejectPicture";
+import responseTermsList from "../../middlewares/term/responseTermsList";
+import responseUser from "../../middlewares/user/responseUser";
+import responseUsersList from "../../middlewares/user/responseUsersList";
+import setOwnUserId from "../../middlewares/user/setOwnUserId";
+import updateUser from "../../middlewares/user/updateUser";
 
 const usersRoute = (prefix: string, app: Application): void => {
   /**
@@ -199,63 +192,6 @@ const usersRoute = (prefix: string, app: Application): void => {
     getUserTermMemberships(),
     responseTermsList()
   );
-
-  /**
-   * Add new warning
-   * Role: Admin
-   */
-  app.post(
-    `${prefix}/user/:userId/warnings`,
-    isRegistered(),
-    isAdmin(),
-    addWarning([{ name: "text", required: true }]),
-    noContentResponse()
-  );
-
-  /**
-   * Get user warnings
-   * Role: Admin
-   */
-  app.get(
-    `${prefix}/user/:userId/warnings`,
-    isRegistered(),
-    isAdmin(),
-    getUserWarningsList(),
-    responseWarningsList()
-  );
-  /**
-   * Get Own warnings
-   * Role: Normal
-   */
-  app.get(
-    `${prefix}/me/warnings`,
-    isRegistered(),
-    setOwnUserId(),
-    getUserWarningsList(),
-    responseWarningsList()
-  );
-  /**
-   * Delete Warning
-   * Role: Admin
-   */
-  app.delete(
-    `${prefix}/user/:userId/warning/:warningId`,
-    isRegistered(),
-    isAdmin(),
-    deleteWarning(),
-    noContentResponse()
-  );
-  /**
-   * Update Warning
-   * Role: Admin
-   */
-  app.put(
-    `${prefix}/user/:userId/warning/:warningId`,
-    isRegistered(),
-    isAdmin(),
-    updateWarning(["text"]),
-    noContentResponse()
-  );
 };
 
 export default usersRoute;
diff --git a/src/routes/users/warning.ts b/src/routes/users/warning.ts
new file mode 100644
index 0000000000000000000000000000000000000000..3f4cb21c8ba006bdc218175a897cd927b19d63cb
--- /dev/null
+++ b/src/routes/users/warning.ts
@@ -0,0 +1,71 @@
+import { Application } from "express";
+import addWarning from "../../middlewares/user/warning/addWarning";
+import deleteWarning from "../../middlewares/user/warning/deleteWarning";
+import getUserWarningsList from "../../middlewares/user/warning/getUserWarningsList";
+import isAdmin from "../../middlewares/auth/isAdmin";
+import isRegistered from "../../middlewares/auth/isRegistered";
+import noContentResponse from "../../middlewares/utils/noContentResponse";
+import responseWarningsList from "../../middlewares/user/warning/responseWarningsList";
+import setOwnUserId from "../../middlewares/user/setOwnUserId";
+import updateWarning from "../../middlewares/user/warning/updateWarning";
+
+const userWarningsRoute = (prefix: string, app: Application): void => {
+  /**
+   * Add new warning
+   * Role: Admin
+   */
+  app.post(
+    `${prefix}/user/:userId/warnings`,
+    isRegistered(),
+    isAdmin(),
+    addWarning([{ name: "text", required: true }]),
+    noContentResponse()
+  );
+
+  /**
+   * Get user warnings
+   * Role: Admin
+   */
+  app.get(
+    `${prefix}/user/:userId/warnings`,
+    isRegistered(),
+    isAdmin(),
+    getUserWarningsList(),
+    responseWarningsList()
+  );
+  /**
+   * Get Own warnings
+   * Role: Normal
+   */
+  app.get(
+    `${prefix}/me/warnings`,
+    isRegistered(),
+    setOwnUserId(),
+    getUserWarningsList(),
+    responseWarningsList()
+  );
+  /**
+   * Delete Warning
+   * Role: Admin
+   */
+  app.delete(
+    `${prefix}/user/:userId/warning/:warningId`,
+    isRegistered(),
+    isAdmin(),
+    deleteWarning(),
+    noContentResponse()
+  );
+  /**
+   * Update Warning
+   * Role: Admin
+   */
+  app.put(
+    `${prefix}/user/:userId/warning/:warningId`,
+    isRegistered(),
+    isAdmin(),
+    updateWarning(["text"]),
+    noContentResponse()
+  );
+};
+
+export default userWarningsRoute;