diff --git a/cfg_checker/reports/reporter.py b/cfg_checker/reports/reporter.py
index 1f54ff3..dc9a2cf 100644
--- a/cfg_checker/reports/reporter.py
+++ b/cfg_checker/reports/reporter.py
@@ -302,18 +302,19 @@
 
     def _extend_data(self, data):
         def get_bytes(value):
-            _char = value[-1]
+            _size_i = True if value[-1] == 'i' else False
+            _char = value[-2] if _size_i else value[-1]
             _ord = ord(_char)
             if _ord > 47 and _ord < 58:
                 # bytes comes with no Char
                 return int(value)
             else:
                 _sizes = ["*", "K", "M", "G", "T"]
-                _flo = float(value[:-1])
+                _flo = float(value[:-2]) if _size_i else float(value[:-1])
                 _pwr = 1
                 if _char in _sizes:
                     _pwr = _sizes.index(_char)
-                return int(_flo**_pwr)
+                return int(1024**_pwr*_flo)
 
         def _dmidecode(_dict, type=0):
             # _key = "dmi"
@@ -379,7 +380,7 @@
             _key = "ram"
             _key_r = "ram_raw"
             _f_cmd = self.master.get_cmd_for_nodes
-            _cmd = "free -h | sed -n '/Mem/s/ \\+/ /gp'"
+            _cmd = "free -h | grep 'Mem' | sed -n '/Mem/s/ \\+/ /gp'"
             _f_cmd(_cmd, _key_r, target_dict=_dict)
             # parse them and put into dict
             for node, dt in _dict.items():
