diff --git a/src/middlewares/files/card/cardImageStorage.ts b/src/middlewares/files/card/cardImageStorage.ts
index 21b9a1ca10a49969b025721625ea9cada2e75ebe..8372d0dc883ea5d4009ce39a7789759d3ed57c0b 100644
--- a/src/middlewares/files/card/cardImageStorage.ts
+++ b/src/middlewares/files/card/cardImageStorage.ts
@@ -1,5 +1,4 @@
 import multer from "multer";
-import path from "path";
 
 export const cardImageStorage = multer.diskStorage({
   destination: function (req, file, callback) {
diff --git a/src/middlewares/files/card/getCardImage.ts b/src/middlewares/files/card/getCardImage.ts
index 8c518a321c7fcbc343a94f70c33fceb79542270d..18a273f2d1b3870bc7c0650d67278a31f1a161ab 100644
--- a/src/middlewares/files/card/getCardImage.ts
+++ b/src/middlewares/files/card/getCardImage.ts
@@ -1,30 +1,22 @@
 import { NextFunction, Request, Response } from "express";
 
 import CardImage from "../../../models/CardImageSchema";
-import File from "../../../models/FileSchema";
-import Profile from "../../../models/ProfileSchema";
-import fs from "fs";
 
+/**
+ * Get the Entry card background image
+ * and set res.data.cardImage
+ *
+ * @param {Request} req
+ * @param {Response} res
+ * @param {NextFunction} next
+ */
 const getCardImage = () => async (
   req: Request,
   res: Response,
   next: NextFunction
 ) => {
-  CardImage.findOne({}, async (error, cardImage) => {
-    if (error) {
-      console.warn(error);
-      res.status(400);
-    } else {
-      if (!!cardImage) {
-        const file = await File.findById(cardImage!.imageId).exec();
-
-        res.status(200);
-
-        res.data.cardImage = cardImage;
-      }
-      next();
-    }
-  });
+  res.data.cardImage = await CardImage.findOne().lean().exec();
+  next();
 };
 
 export default getCardImage;
diff --git a/src/middlewares/files/card/getUserCard.ts b/src/middlewares/files/card/getUserCard.ts
index 75f78a65d8ca2b73cec5ab2685e350ebdf3e95e4..c682239f0855651b5f946606989eb00dfbb508b9 100644
--- a/src/middlewares/files/card/getUserCard.ts
+++ b/src/middlewares/files/card/getUserCard.ts
@@ -2,58 +2,64 @@ import { NextFunction, Request, Response } from "express";
 
 import Card from "../../../models/CardSchema";
 import File from "../../../models/FileSchema";
-import Profile from "../../../models/ProfileSchema";
 import fs from "fs";
 
-const getUserCard = () => async (
+/**
+ * Generate Entry card svg from Users data and card
+ *
+ * @param {Request} req
+ * @param {Response} res
+ * @param {NextFunction} next
+ * @return {*} Generated svg file
+ */
+const getUserCard = (): any => async (
   req: Request,
   res: Response,
   next: NextFunction
 ) => {
-  Card.findOne({ userId: res.data.profile?.id }, async (error, card) => {
-    if (error) {
-      console.warn(error);
-      res.status(400);
-    } else {
-      if (!card) return res.status(404).send("The user doesn't have any card!");
-      let profilePicture = "data:image/png;base64,";
-      if (!!res.data.profile!.pictureId) {
-        const file = await File.findById(res.data.profile!.pictureId).exec();
-        profilePicture += fs.readFileSync(file!.path, "base64");
-      } else
-        profilePicture += fs.readFileSync(
-          "src/utils/card/profile_picture.png",
-          "base64"
-        );
-
-      let bgPicture;
-      if (!res.data.cardImage)
-        bgPicture =
-          "data:image/png;base64," +
-          fs.readFileSync("src/utils/card/background.png", "base64");
-      else {
-        const bgFile = await File.findById(res.data.cardImage.imageId).exec();
-        bgPicture =
-          "data:image/png;base64," + fs.readFileSync(bgFile!.path, "base64");
-      }
-
-      const svg = fs.readFileSync("src/utils/card/template.svg", "utf8");
-
-      const result = svg
-        .replace(/{{profile_picture}}/g, profilePicture)
-        .replace(/{{background_image}}/g, bgPicture)
-        .replace(/{{full_name}}/g, String(card?.fullName))
-        .replace(/{{room_number}}/g, String(card?.roomNumber))
-        .replace(/{{card_number}}/g, String(card?.cardId))
-        .replace(
-          /{{expiration_date}}/g,
-          String(card?.expirationDate.toISOString().split("T")[0])
-        );
-
-      res.type("svg");
-      return res.send(result);
-    }
-  });
+  const userCard = await Card.findOne({ userId: res.data.profile?.id })
+    .lean()
+    .exec();
+  if (!userCard)
+    return res.status(404).json({ message: "The user doesn't have any card!" });
+
+  let profilePicture = "data:image/png;base64,";
+  if (!res.data.profile!.pictureId) {
+    profilePicture += fs.readFileSync(
+      "src/utils/card/profile_picture.png",
+      "base64"
+    );
+  } else {
+    const profilePicFile = await File.findById(res.data.profile!.pictureId)
+      .lean()
+      .exec();
+    profilePicture += fs.readFileSync(profilePicFile!.path, "base64");
+  }
+
+  let bgPicture = "data:image/png;base64,";
+  if (!res.data.cardImage)
+    bgPicture += fs.readFileSync("src/utils/card/background.png", "base64");
+  else {
+    const bgFile = await File.findById(res.data.cardImage.imageId)
+      .lean()
+      .exec();
+    bgPicture += fs.readFileSync(bgFile!.path, "base64");
+  }
+
+  const svg = fs.readFileSync("src/utils/card/template.svg", "utf8");
+
+  const result = svg
+    .replace(/{{profile_picture}}/g, profilePicture)
+    .replace(/{{background_image}}/g, bgPicture)
+    .replace(/{{full_name}}/g, String(userCard?.fullName))
+    .replace(/{{room_number}}/g, String(userCard?.roomNumber))
+    .replace(/{{card_number}}/g, String(userCard?.cardId))
+    .replace(
+      /{{expiration_date}}/g,
+      String(userCard?.expirationDate.toISOString().split("T")[0])
+    );
+
+  return res.type("svg").send(result);
 };
 
 export default getUserCard;
diff --git a/src/middlewares/files/card/responseCardImage.ts b/src/middlewares/files/card/responseCardImage.ts
index 211eea2061efa63c3cdc6dd461505c7e49a4e6ab..a6a3f0b4f4337b92a8a2ccc4b4985da4a7fbab41 100644
--- a/src/middlewares/files/card/responseCardImage.ts
+++ b/src/middlewares/files/card/responseCardImage.ts
@@ -1,14 +1,22 @@
-import { NextFunction, Request, Response, response } from "express";
+import { Request, Response } from "express";
 
 import File from "../../../models/FileSchema";
 
-const responseCardImage = () => async (req: Request, res: Response) => {
-  if (!res.data.cardImage) {
-    res.status(404).json({ message: "Card Image not found" });
-  } else {
-    const cardImage = await File.findById(res.data.cardImage.imageId).exec();
-    return res.sendFile(cardImage!.path, { root: "." });
-  }
+/**
+ * Return the Entry card background Image
+ *
+ * @param {Request} req
+ * @param {Response} res
+ * @return {*} The Found CardImage or the default
+ */
+const responseCardImage = (): any => async (req: Request, res: Response) => {
+  if (!res.data.cardImage)
+    return res.sendFile("src/utils/card/background.png", { root: "." });
+
+  const cardImage = await File.findById(res.data.cardImage.imageId)
+    .lean()
+    .exec();
+  return res.sendFile(cardImage!.path, { root: "." });
 };
 
 export default responseCardImage;
diff --git a/src/middlewares/files/card/uploadCardImage.ts b/src/middlewares/files/card/uploadCardImage.ts
index e0e59b3c5df600d7166044611093eecde36cd8d3..5b17688375871db3475e3408bb922cbb80584853 100644
--- a/src/middlewares/files/card/uploadCardImage.ts
+++ b/src/middlewares/files/card/uploadCardImage.ts
@@ -2,61 +2,54 @@ import { NextFunction, Request, Response } from "express";
 
 import CardImage from "../../../models/CardImageSchema";
 import File from "../../../models/FileSchema";
-import Profile from "../../../models/ProfileSchema";
-import { fileFilter } from "../fileFilter";
 import fs from "fs";
 
+/**
+ * Upload a new Card background Image
+ *
+ * @param {Request} req
+ * @param {Response} res
+ * @param {NextFunction} next
+ * @return {*} 200 Status code if uploaded
+ */
 const uploadCardImage = () => async (
   req: Request,
   res: Response,
   next: NextFunction
 ) => {
-  const uploadedFile = req.file;
-  CardImage.findOne({}, async (error, cardImage) => {
-    if (error) {
-      console.warn(error);
-      res.status(400);
-    } else {
-      if (!!cardImage) {
-        const oldFile = await File.findById(cardImage.imageId).exec();
-        fs.unlink(oldFile!.path, (err) => {
-          if (err) {
-            console.error(err);
-          }
-        });
-
-        await File.deleteOne({ _id: oldFile?.id }).exec();
-      }
-      const newFile = new File();
-
-      newFile.originalName = uploadedFile.originalname;
-      newFile.uploadDate = new Date();
-      newFile.path = uploadedFile.path;
-      newFile.mimeType = uploadedFile.mimetype;
-
-      await newFile.save((err) => {
-        if (err) {
-          return res.status(400);
-        }
-      });
-
-      if (!cardImage) {
-        const cardImage = new CardImage();
-        cardImage.imageId = newFile.id;
-
-        await cardImage.save((err) => {
-          if (err) return res.status(400);
-        });
-      } else {
-        await CardImage.updateOne(
-          { _id: cardImage?.id },
-          { imageId: newFile.id }
-        ).exec();
-      }
-
-      return res.status(200).send(true);
-    }
-  });
+  const oldCardImage = await CardImage.findOne().lean().exec();
+
+  if (oldCardImage) {
+    const oldFile = await File.findByIdAndRemove(oldCardImage.imageId)
+      .lean()
+      .exec();
+
+    fs.unlink(oldFile!.path, (err) => {
+      throw err;
+    });
+  }
+
+  const newFile = new File();
+  newFile.originalName = req.file.originalname;
+  newFile.uploadDate = new Date();
+  newFile.path = req.file.path;
+  newFile.mimeType = req.file.mimetype;
+
+  await newFile.save();
+
+  if (oldCardImage) {
+    await CardImage.updateOne(
+      { _id: oldCardImage?.id },
+      { imageId: String(newFile.id) }
+    ).exec();
+  } else {
+    const cardImage = new CardImage();
+    cardImage.imageId = String(newFile.id);
+
+    await cardImage.save();
+  }
+
+  return res.status(200).send();
 };
 
 export default uploadCardImage;