diff --git a/app/classes/minecraft/stats.py b/app/classes/minecraft/stats.py
index 5886eb5d..228baf2f 100644
--- a/app/classes/minecraft/stats.py
+++ b/app/classes/minecraft/stats.py
@@ -3,43 +3,82 @@ import logging
 import datetime
 import base64
 import psutil
+import typing as t
 
 from app.classes.minecraft.mc_ping import ping
 from app.classes.models.management import HostStats
 from app.classes.models.servers import HelperServers
 from app.classes.shared.helpers import Helpers
+from app.classes.shared.main_controller import Controller
 
 logger = logging.getLogger(__name__)
 
 
+class DiskDataDict(t.TypedDict):
+    device: str
+    total_raw: int
+    total: str
+    used_raw: int
+    used: str
+    free_raw: int
+    free: str
+    percent_used: float
+    fs: str
+    mount: str
+
+
+class NodeStatsDict(t.TypedDict):
+    boot_time: str
+    cpu_usage: float
+    cpu_count: int
+    cpu_cur_freq: float
+    cpu_max_freq: float
+    mem_percent: float
+    mem_usage_raw: int
+    mem_usage: str
+    mem_total_raw: int
+    mem_total: str
+    disk_data: t.List[DiskDataDict]
+
+
+class NodeStatsReturnDict(t.TypedDict):
+    node_stats: NodeStatsDict
+
+
 class Stats:
+    helper: Helpers
+    controller: Controller
+
     def __init__(self, helper, controller):
         self.helper = helper
         self.controller = controller
 
-    def get_node_stats(self):
+    def get_node_stats(self) -> NodeStatsReturnDict:
         boot_time = datetime.datetime.fromtimestamp(psutil.boot_time())
-        data = {}
         try:
             cpu_freq = psutil.cpu_freq()
         except NotImplementedError:
             cpu_freq = psutil._common.scpufreq(current=0, min=0, max=0)
-        node_stats = {
+        memory = psutil.virtual_memory()
+        node_stats: NodeStatsDict = {
             "boot_time": str(boot_time),
             "cpu_usage": psutil.cpu_percent(interval=0.5) / psutil.cpu_count(),
             "cpu_count": psutil.cpu_count(),
             "cpu_cur_freq": round(cpu_freq[0], 2),
             "cpu_max_freq": cpu_freq[2],
-            "mem_percent": psutil.virtual_memory()[2],
-            "mem_usage": Helpers.human_readable_file_size(psutil.virtual_memory()[3]),
-            "mem_total": Helpers.human_readable_file_size(psutil.virtual_memory()[0]),
+            "mem_percent": memory.percent,
+            "mem_usage_raw": memory.used,
+            "mem_usage": Helpers.human_readable_file_size(memory.used),
+            "mem_total_raw": memory.total,
+            "mem_total": Helpers.human_readable_file_size(memory.total),
             "disk_data": self._all_disk_usage(),
         }
         # server_stats = self.get_servers_stats()
         # data['servers'] = server_stats
-        data["node_stats"] = node_stats
 
-        return data
+        return {
+            "node_stats": node_stats,
+        }
 
     @staticmethod
     def _get_process_stats(process):
@@ -82,7 +121,7 @@ class Stats:
 
     # Source: https://github.com/giampaolo/psutil/blob/master/scripts/disk_usage.py
     @staticmethod
-    def _all_disk_usage():
+    def _all_disk_usage() -> t.List[DiskDataDict]:
         disk_data = []
         # print(templ % ("Device", "Total", "Used", "Free", "Use ", "Type","Mount"))
 
@@ -97,10 +136,13 @@ class Stats:
             disk_data.append(
                 {
                     "device": part.device,
+                    "total_raw": usage.total,
                     "total": Helpers.human_readable_file_size(usage.total),
+                    "used_raw": usage.used,
                     "used": Helpers.human_readable_file_size(usage.used),
+                    "free_raw": usage.free,
                     "free": Helpers.human_readable_file_size(usage.free),
-                    "percent_used": int(usage.percent),
+                    "percent_used": usage.percent,
                     "fs": part.fstype,
                     "mount": part.mountpoint,
                 }
@@ -194,7 +236,7 @@ class Stats:
 
     def record_stats(self):
         stats_to_send = self.get_node_stats()
-        node_stats = stats_to_send.get("node_stats")
+        node_stats = stats_to_send["node_stats"]
 
         HostStats.insert(
             {