diff --git a/Ganeti/HTools/Text.hs b/Ganeti/HTools/Text.hs
index b9832cbadd4b241064b96fa8b398c11663c5d234..c9aac174a8ef115efb201c8931dfcc8dd58675d5 100644
--- a/Ganeti/HTools/Text.hs
+++ b/Ganeti/HTools/Text.hs
@@ -29,6 +29,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
 module Ganeti.HTools.Text
     (
       loadData
+    , parseData
     , loadInst
     , loadNode
     , serializeInstances
@@ -136,19 +137,27 @@ loadTabular lines_data convert_fn = do
   kerows <- mapM convert_fn rows
   return $ assignIndices kerows
 
+-- | Load the cluser data from disk.
+readData :: String -- ^ Path to the text file
+         -> IO String
+readData = readFile
+
 -- | Builds the cluster data from text input.
-loadData :: String -- ^ Path to the text file
-         -> IO (Result (Node.AssocList, Instance.AssocList, [String]))
-loadData afile = do -- IO monad
-  fdata <- readFile afile
+parseData :: String -- ^ Text data
+          -> Result (Node.AssocList, Instance.AssocList, [String])
+parseData fdata = do
   let flines = lines fdata
       (nlines, ilines) = break null flines
-  return $ do
-    ifixed <- case ilines of
-                [] -> Bad "Invalid format of the input file (no instance data)"
-                _:xs -> Ok xs
-    {- node file: name t_mem n_mem f_mem t_disk f_disk -}
-    (ktn, nl) <- loadTabular nlines loadNode
-    {- instance file: name mem disk status pnode snode -}
-    (_, il) <- loadTabular ifixed (loadInst ktn)
-    return (nl, il, [])
+  ifixed <- case ilines of
+    [] -> Bad "Invalid format of the input file (no instance data)"
+    _:xs -> Ok xs
+  {- node file: name t_mem n_mem f_mem t_disk f_disk -}
+  (ktn, nl) <- loadTabular nlines loadNode
+  {- instance file: name mem disk status pnode snode -}
+  (_, il) <- loadTabular ifixed (loadInst ktn)
+  return (nl, il, [])
+
+-- | Top level function for data loading
+loadData :: String -- ^ Path to the text file
+         -> IO (Result (Node.AssocList, Instance.AssocList, [String]))
+loadData afile = readData afile >>= return . parseData