diff --git a/Ganeti/HTools/Cluster.hs b/Ganeti/HTools/Cluster.hs
index 93a5ce506ebaf433ac62d4805f1eaac57c1d3e32..31b9e4ec87583abe89c43fde645298ea801fcc38 100644
--- a/Ganeti/HTools/Cluster.hs
+++ b/Ganeti/HTools/Cluster.hs
@@ -750,16 +750,19 @@ loadData :: String -- ^ Node data in text format
              String, NameList, NameList)
 loadData ndata idata =
     let
-    {- node file: name mem disk -}
+    {- node file: name t_mem f_mem t_disk f_disk -}
         (ktn, nl) = loadTabular ndata
-                    (\ (i:jt:jf:kt:kf:[]) -> (i, Node.create jt jf kt kf))
+                    (\ (name:tm:fm:td:fd:[]) ->
+                         (name,
+                          Node.create (read tm) (read fm) (read td) (read fd)))
                     Node.setIdx
     {- instance file: name mem disk pnode snode -}
         (kti, il) = loadTabular idata
-                    (\ (i:j:k:l:m:[]) -> (i,
-                                           Instance.create j k
-                                               (fromJust $ lookup l ktn)
-                                               (fromJust $ lookup m ktn)))
+                    (\ (name:mem:dsk:pnode:snode:[]) ->
+                         (name,
+                          Instance.create (read mem) (read dsk)
+                              (fromJust $ lookup pnode ktn)
+                              (fromJust $ lookup snode ktn)))
                     Instance.setIdx
         nl2 = fixNodes nl il
         il3 = Container.fromAssocList il
diff --git a/Ganeti/HTools/Instance.hs b/Ganeti/HTools/Instance.hs
index 0e5d965cb6eb2683116370dfe0358153c4ddb08c..4dcb28d4dd41e3cd4b4289aeb1c360bfcc8aca8d 100644
--- a/Ganeti/HTools/Instance.hs
+++ b/Ganeti/HTools/Instance.hs
@@ -13,14 +13,15 @@ data Instance = Instance { mem :: Int   -- ^ memory of the instance
                          , idx :: Int   -- ^ internal index for book-keeping
                          } deriving (Show)
 
-create :: String -> String -> Int -> Int -> Instance
-create mem_init dsk_init pn sn = Instance {
-                              mem = read mem_init,
-                              dsk = read dsk_init,
-                              pnode = pn,
-                              snode = sn,
-                              idx = -1
-                            }
+create :: Int -> Int -> Int -> Int -> Instance
+create mem_init dsk_init pn sn =
+    Instance {
+          mem = mem_init,
+          dsk = dsk_init,
+          pnode = pn,
+          snode = sn,
+          idx = -1
+        }
 
 -- | Changes the primary node of the instance.
 setPri :: Instance  -- ^ the original instance
diff --git a/Ganeti/HTools/Node.hs b/Ganeti/HTools/Node.hs
index e667ce31a22f7eeaf8a9d763a3f61561e994b903..52197781ebb04abd5927edf24c175ea80f392ced 100644
--- a/Ganeti/HTools/Node.hs
+++ b/Ganeti/HTools/Node.hs
@@ -59,30 +59,25 @@ The index and the peers maps are empty, and will be need to be update
 later via the 'setIdx' and 'buildPeers' functions.
 
 -}
-create :: String -> String -> String -> String -> Node
+create :: Double -> Int -> Double -> Int -> Node
 create mem_t_init mem_f_init dsk_t_init dsk_f_init =
-    let mem_t = read mem_t_init
-        mem_f = read mem_f_init
-        dsk_t = read dsk_t_init
-        dsk_f = read dsk_f_init
-    in
-      Node
-      {
-       t_mem = read mem_t_init,
-       f_mem = read mem_f_init,
-       t_dsk = read dsk_t_init,
-       f_dsk = read dsk_f_init,
-       plist = [],
-       slist = [],
-       failN1 = True,
-       idx = -1,
-       peers = PeerMap.empty,
-       r_mem = 0,
-       p_mem = (fromIntegral mem_f) / (fromIntegral mem_t),
-       p_dsk = (fromIntegral dsk_f) / (fromIntegral dsk_t),
-       p_rem = 0,
-       offline = False
-      }
+    Node
+    {
+      t_mem = mem_t_init,
+      f_mem = mem_f_init,
+      t_dsk = dsk_t_init,
+      f_dsk = dsk_f_init,
+      plist = [],
+      slist = [],
+      failN1 = True,
+      idx = -1,
+      peers = PeerMap.empty,
+      r_mem = 0,
+      p_mem = (fromIntegral mem_f_init) / mem_t_init,
+      p_dsk = (fromIntegral dsk_f_init) / dsk_t_init,
+      p_rem = 0,
+      offline = False
+    }
 
 -- | Changes the index.
 -- This is used only during the building of the data structures.