diff --git a/src/middlewares/news/addNews.ts b/src/middlewares/news/addNews.ts
index b0d9f0c988f1b09d7dc6c16efea5711c0f38594b..f41e11ddcc6200168c1024fb4c27cc0f18d9a257 100644
--- a/src/middlewares/news/addNews.ts
+++ b/src/middlewares/news/addNews.ts
@@ -1,21 +1,14 @@
+import News, { INews } from "../../models/NewsSchema";
 import { NextFunction, Request, Response } from "express";
 
-import News from "../../models/NewsSchema";
 import { validateFields } from "../utils/validateFields";
 
-const fields = [
-  { name: "title", required: true },
-  { name: "text", required: true },
-];
-
 /**
  * Create a New Article
  */
-const addNews = () => async (
-  req: Request,
-  res: Response,
-  next: NextFunction
-) => {
+const addNews = (
+  fields: { name: Partial<keyof INews>; required: boolean }[]
+) => async (req: Request, res: Response, next: NextFunction) => {
   try {
     const news = new News();
 
diff --git a/src/middlewares/news/deleteNews.ts b/src/middlewares/news/deleteNews.ts
index e101b29c26f3e73961d3cb330909f90da7619f12..cfc9694392ac90d64dcf46e09954927c123aff0e 100644
--- a/src/middlewares/news/deleteNews.ts
+++ b/src/middlewares/news/deleteNews.ts
@@ -9,7 +9,10 @@ const deleteNews = () => async (
   next: NextFunction
 ) => {
   try {
-    const news = await News.findByIdAndRemove(req.params.newsId).lean().exec();
+    const news = await News.findByIdAndRemove(req.params.newsId)
+      .select("_id")
+      .lean()
+      .exec();
     next();
   } catch (err) {
     next(err);
diff --git a/src/middlewares/news/getNewsList.ts b/src/middlewares/news/getNewsList.ts
index 58ff01aea8b7f0f445a45306bca75f5223f5c72d..9e1f1f88fc8a89df4cc440dea389e4231263df5f 100644
--- a/src/middlewares/news/getNewsList.ts
+++ b/src/middlewares/news/getNewsList.ts
@@ -5,13 +5,13 @@ import News from "../../models/NewsSchema";
 /**
  * Get all news and set res.data.news
  */
-const getNewsList = () => async (
+const getNewsList = (selectQuery: string) => async (
   req: Request,
   res: Response,
   next: NextFunction
 ) => {
   try {
-    res.data.news = await News.find().lean().exec();
+    res.data.news = await News.find().select(selectQuery).lean().exec();
     next();
   } catch (err) {
     next(err);
diff --git a/src/middlewares/news/getOneNews.ts b/src/middlewares/news/getOneNews.ts
index c2c610fd18d75e1e9f2bdba9a1dca6597e86d740..7de7cbfc82825ca9f39c07b443a0009ba73f509c 100644
--- a/src/middlewares/news/getOneNews.ts
+++ b/src/middlewares/news/getOneNews.ts
@@ -6,13 +6,17 @@ import News from "../../models/NewsSchema";
  * Get one News with id = req.params.id
  * and set res.data.newsObject
  */
-const getOneNews = () => async (
+const getOneNews = (selectQuery: string) => async (
   req: Request,
   res: Response,
   next: NextFunction
 ) => {
   try {
-    res.data.oneNews = await News.findById(req.params.newsId).lean().exec();
+    res.data.oneNews = await News.findById(req.params.newsId)
+      .select(selectQuery)
+      .lean()
+      .exec();
+
     if (!res.data.oneNews)
       return res.status(404).json({ message: "News not found!" });
 
diff --git a/src/middlewares/news/updateNews.ts b/src/middlewares/news/updateNews.ts
index b1137de14b84b7b054b5c7e76076050611a9e6cc..156491e87c7deeea0ff9b364f9ee18e3bf3343f8 100644
--- a/src/middlewares/news/updateNews.ts
+++ b/src/middlewares/news/updateNews.ts
@@ -1,24 +1,21 @@
 import News, { INews } from "../../models/NewsSchema";
 import { NextFunction, Request, Response } from "express";
 
-// Valid fields to update
-const validFields: Partial<keyof INews>[] = ["title", "text"];
-
 /**
  * Update a News Object
  */
-const updateNews = () => async (
+const updateNews = (fields: Partial<keyof INews>[]) => async (
   req: Request,
   res: Response,
   next: NextFunction
 ) => {
   try {
     let newFields: Partial<INews> = {};
-    validFields.forEach((field) => {
+    fields.forEach((field) => {
       const value = req.body[field];
       if (value) newFields[field] = value;
     });
-    newFields["updatedBy"] = req.session.user?.id;
+    newFields["updatedBy"] = req.session.user!.id;
 
     await News.updateOne(
       { _id: req.params.newsId },
diff --git a/src/middlewares/term/deleteTerm.ts b/src/middlewares/term/deleteTerm.ts
index cf5c325a241130aec67667a8ad88b06fa8b5d8fa..74c8b5293edaa5a16b658a9a961c299199d3e40f 100644
--- a/src/middlewares/term/deleteTerm.ts
+++ b/src/middlewares/term/deleteTerm.ts
@@ -13,7 +13,10 @@ const deleteTerm = () => async (
   next: NextFunction
 ) => {
   try {
-    const removedTerm = await Term.findByIdAndDelete(req.params.termId);
+    const removedTerm = await Term.findByIdAndDelete(req.params.termId)
+      .select("_id backgroundFile")
+      .lean()
+      .exec();
     if (!removedTerm)
       return res.status(404).json({ message: "Term not found!" });
     await File.findByIdAndDelete(removedTerm?.backgroundFile);
diff --git a/src/middlewares/term/getLatestTerm.ts b/src/middlewares/term/getLatestTerm.ts
deleted file mode 100644
index 9cd890ed6b622752a092962338ed975c2da08561..0000000000000000000000000000000000000000
--- a/src/middlewares/term/getLatestTerm.ts
+++ /dev/null
@@ -1,24 +0,0 @@
-import { NextFunction, Request, Response } from "express";
-
-import Profile from "../../models/ProfileSchema";
-import Term from "../../models/TermSchema";
-
-const getLatestTerm = () => async (
-  req: Request,
-  res: Response,
-  next: NextFunction
-) => {
-  try {
-    res.data.term = await Term.findOne({}, {}, { sort: { createDate: -1 } })
-      .lean()
-      .exec();
-    if (!res.data.term)
-      return res.status(404).json({ message: "There are no Terms" });
-
-    next();
-  } catch (err) {
-    next(err);
-  }
-};
-
-export default getLatestTerm;
diff --git a/src/middlewares/term/getMember.ts b/src/middlewares/term/getMember.ts
deleted file mode 100644
index 45c9882b2b138d513be3df022d681e8ccbbe4dd4..0000000000000000000000000000000000000000
--- a/src/middlewares/term/getMember.ts
+++ /dev/null
@@ -1,27 +0,0 @@
-import { NextFunction, Request, Response } from "express";
-
-import File from "../../models/FileSchema";
-import Profile from "../../models/ProfileSchema";
-import Term from "../../models/TermSchema";
-
-/**
- * userId -> Found Term
- */
-const getMember = () => async (
-  req: Request,
-  res: Response,
-  next: NextFunction
-) => {
-  try {
-    res.data.member = res.data.term?.members?.find(
-      (member) => member.user == req.params.userId
-    );
-    if (!res.data.member)
-      return res.status(404).json({ message: "Member not found!" });
-    next();
-  } catch (err) {
-    next(err);
-  }
-};
-
-export default getMember;
diff --git a/src/middlewares/term/getMemberState.ts b/src/middlewares/term/getMemberState.ts
deleted file mode 100644
index 2f2f512eef74883f2ab40ea1c63243466d2ffb08..0000000000000000000000000000000000000000
--- a/src/middlewares/term/getMemberState.ts
+++ /dev/null
@@ -1,23 +0,0 @@
-import { NextFunction, Request, Response } from "express";
-
-import File from "../../models/FileSchema";
-import Profile from "../../models/ProfileSchema";
-import Term from "../../models/TermSchema";
-
-/**
- * member -> memberState
- */
-const getMemberState = () => async (
-  req: Request,
-  res: Response,
-  next: NextFunction
-) => {
-  try {
-    res.data.memberState = res.data.member!.memberState;
-    next();
-  } catch (err) {
-    next(err);
-  }
-};
-
-export default getMemberState;
diff --git a/src/middlewares/term/getMembers.ts b/src/middlewares/term/getMembers.ts
deleted file mode 100644
index 23f5a9ce0f9bfb40a342ec59611c705d9c570d12..0000000000000000000000000000000000000000
--- a/src/middlewares/term/getMembers.ts
+++ /dev/null
@@ -1,23 +0,0 @@
-import { NextFunction, Request, Response } from "express";
-
-import File from "../../models/FileSchema";
-import Profile from "../../models/ProfileSchema";
-import Term from "../../models/TermSchema";
-
-/**
- * res.data.term.members -> res.data.members
- */
-const getMembers = () => async (
-  req: Request,
-  res: Response,
-  next: NextFunction
-) => {
-  try {
-    res.data.members = res.data.term?.members;
-    next();
-  } catch (err) {
-    next(err);
-  }
-};
-
-export default getMembers;
diff --git a/src/middlewares/term/responseMember.ts b/src/middlewares/term/responseMember.ts
deleted file mode 100644
index e1348185409f5e8dfd411eeee2722d523f8c039d..0000000000000000000000000000000000000000
--- a/src/middlewares/term/responseMember.ts
+++ /dev/null
@@ -1,14 +0,0 @@
-import { NextFunction, Request, Response, response } from "express";
-
-/**
- * Return the found Member
- */
-const responseMember = () => (req: Request, res: Response) => {
-  if (!res.data.member) {
-    res.status(404).json({ message: "Member not found!" });
-  } else {
-    return res.json(res.data.member);
-  }
-};
-
-export default responseMember;
diff --git a/src/middlewares/term/responseMemberState.ts b/src/middlewares/term/responseMemberState.ts
deleted file mode 100644
index 295d9111a06b760e8f08e4cf6c2a873901f0ada9..0000000000000000000000000000000000000000
--- a/src/middlewares/term/responseMemberState.ts
+++ /dev/null
@@ -1,14 +0,0 @@
-import { NextFunction, Request, Response, response } from "express";
-
-/**
- * Return the found MemberState
- */
-const responseMemberState = () => (req: Request, res: Response) => {
-  if (!res.data.memberState) {
-    res.status(404).json({ message: "MemberState not found!" });
-  } else {
-    return res.json(res.data.memberState);
-  }
-};
-
-export default responseMemberState;
diff --git a/src/middlewares/user/getStaffList.ts b/src/middlewares/user/getStaffList.ts
deleted file mode 100644
index 37bc050fbf67302a4825816de538f6f3101087e7..0000000000000000000000000000000000000000
--- a/src/middlewares/user/getStaffList.ts
+++ /dev/null
@@ -1,20 +0,0 @@
-import { NextFunction, Request, Response } from "express";
-import Profile, { Role } from "../../models/ProfileSchema";
-
-/**
- * -> All Staff Profiles to res.data.profiles
- */
-const getStaffList = () => async (
-  req: Request,
-  res: Response,
-  next: NextFunction
-) => {
-  try {
-    res.data.profiles = await Profile.find({ role: Role.Staff });
-    next();
-  } catch (err) {
-    next(err);
-  }
-};
-
-export default getStaffList;
diff --git a/src/routes/news.ts b/src/routes/news.ts
index b601e17558292a798bdf575159d27c52c1b99eb2..7b585f505cc994afafa7fabc5b5ad51fb70a7e8c 100644
--- a/src/routes/news.ts
+++ b/src/routes/news.ts
@@ -13,40 +13,66 @@ import responseNews from "../middlewares/news/responseNews";
 import responseOneNews from "../middlewares/news/responseOneNews";
 import updateNews from "../middlewares/news/updateNews";
 
-// GetNewsList [{ID, title, text, date}]
-// GetOneNews(Id) [{ID, title, text, date, modifyDate, publishedBy, editedBy}]
-// UpdateOneNews(Id) { title, text}
-// DeleteOneNews(id)
-// CreateOneNews {title, text}
-
 const newsRoute = (prefix: string, app: Application): void => {
-  // Get all news
-  app.get(`${prefix}/`, getNewsList(), responseNews());
-  // Add a new News
+  /**
+   * Get All News
+   * Role: None
+   */
+  app.get(
+    `${prefix}/`,
+    getNewsList("_id title text publishedAt"),
+    responseNews()
+  );
+
+  /**
+   * Get one News
+   * Role: Admin
+   */
+  app.get(
+    `${prefix}/one/:newsId`,
+    isRegistered(),
+    isAdmin(),
+    getOneNews("_id title text publishedAt publishedBy updatedBy"),
+    responseOneNews()
+  );
+
+  /**
+   * Create one new News
+   * Role: Admin
+   */
   app.post(
     `${prefix}/`,
     isRegistered(),
     isAdmin(),
-    addNews(),
+    addNews([
+      { name: "title", required: true },
+      { name: "text", required: true },
+    ]),
     createdResponse()
   );
-  // Get a News
-  app.get(`${prefix}/one/:newsId`, getOneNews(), responseOneNews());
-  // Update a News
+
+  /**
+   * Update one News
+   * Role: Admin
+   */
   app.put(
     `${prefix}/one/:newsId`,
     isRegistered(),
     isAdmin(),
-    getOneNews(),
-    updateNews(),
+    getOneNews("_id"),
+    updateNews(["title", "text"]),
     noContentResponse()
   );
-  // Delete a News
+
+  /**
+   * Delete one News
+   * Role: Admin
+   */
   app.delete(
     `${prefix}/one/:newsId`,
     isRegistered(),
     isAdmin(),
-    getOneNews(),
+    getOneNews("_id"),
     deleteNews(),
     noContentResponse()
   );