diff --git a/hopfield.cabal b/hopfield.cabal
--- a/hopfield.cabal
+++ b/hopfield.cabal
@@ -1,9 +1,9 @@
 name:          hopfield
-version:       0.1.0.0
+version:       0.1.0.1
 license:       MIT
 author:        Mihaela Rosca, Lukasz Severyn, Niklas Hambuechen, Razvan Marinescu, Wael Al Jisihi
 copyright:     Copyright: (c) 2012 Mihaela Rosca, Lukasz Severyn, Niklas Hambuechen, Razvan Marinescu, Wael Al Jisihi
-maintainer:    Niklas Hambüchen <mail@nh2.me>
+maintainer:    Niklas Hambuechen <mail@nh2.me>
 category:      AI, Machine Learning
 stability:     experimental
 synopsis:      Hopfield Networks, Boltzmann Machines and Clusters
@@ -31,6 +31,8 @@
 
 build-type:    Simple
 cabal-version: >= 1.10
+
+extra-source-files: src/Hopfield/Images/convertImage.h
 
 source-repository head
   type: git
diff --git a/src/Hopfield/Images/convertImage.h b/src/Hopfield/Images/convertImage.h
new file mode 100644
--- /dev/null
+++ b/src/Hopfield/Images/convertImage.h
@@ -0,0 +1,16 @@
+#ifndef CONVERT_IMAGE_H
+#define CONVERT_IMAGE_H
+
+#include <stdint.h>
+#include <stddef.h>
+struct BinaryPattern
+{
+  uint32_t size;
+  uint32_t * pattern;
+};
+
+typedef struct BinaryPattern binary_pattern_t;
+
+binary_pattern_t * load_picture(char* inputImg, size_t width, size_t height);
+
+#endif
diff --git a/src/Hopfield/TestUtil.hs b/src/Hopfield/TestUtil.hs
--- a/src/Hopfield/TestUtil.hs
+++ b/src/Hopfield/TestUtil.hs
@@ -71,7 +71,11 @@
   len <- choose (0, n)
   vectorOf len g
 
-
+-- | @patListGen t maxPatSize maxPatListSize@ Generates a list of patterns.
+-- The size of each pattern is less than maxPatSize.
+-- The size odf the list is less than maxPatListSize.
+-- The type is required in order to create types specific for Boltzmann, 
+-- Hopfield etc.
 patListGen :: Type -> Int -> Int -> Gen [Pattern]
 patListGen t maxPatSize maxPatListSize = do
     i <- choose (1, maxPatSize)
@@ -190,29 +194,38 @@
         i <- arbitrary
         return $ evalRand (stopped pat) (mkStdGen i)
 
-
+-- | @boltzmannBuildGen maxPatSize maxPatListSize max_hidden@ 
+-- Generates the structures required for creating a Boltzmann machine: 
+-- a list of patterns together with the number of hidden layers,
+-- which has to be less than max_hidden.
 boltzmannBuildGen :: Int -> Int -> Int -> Gen ([Pattern], Int)
-boltzmannBuildGen m1 m2 max_hidden = do
-  pats <- patListGen BM m1 m2
+boltzmannBuildGen maxPatSize maxPatListSize max_hidden = do
+  pats <- patListGen BM maxPatSize maxPatListSize
   i    <- choose (1, max_hidden)
   return $ (pats, i)
 
-
+--  | Checks that the buildBoltzmann function does not modify
+-- the given patterns or the number of hidden layers.
 buildBoltzmannCheck :: ([Pattern], Int) -> Gen Bool
 buildBoltzmannCheck (pats, nr_h) = do
   i <- arbitrary
   let bd = evalRand (buildBoltzmannData' pats nr_h) (mkStdGen i)
   return $ patternsB bd == pats && nr_hiddenB bd == nr_h
 
-
+-- | Generates a list of patterns and the number of hidden layers
+-- used to train a Boltzmann machine, as well as a generic pattern to 
+-- recognize on this machine.
 boltzmannAndPatGen :: Int -> Int -> Int -> Gen ([Pattern], Int, Pattern)
-boltzmannAndPatGen m1 m2 max_hidden = do
-  pats_train <- patListGen BM m1 m2
+boltzmannAndPatGen maxPatSize maxPatListSize max_hidden = do
+  pats_train <- patListGen BM maxPatSize maxPatListSize
   i          <- choose (1, max_hidden)
   pats_check <- patternGen BM (V.length $ pats_train !! 0)
   return $ (pats_train, i, pats_check)
 
-
+-- | @probabilityCheck (pats, nr_h, pat)@. Trains a Boltzmann machine
+-- using @pats@ and @nr_h@ and computes the activation probability for 
+-- @pat@ using this machine, and check if it is indeed a probability,
+-- ie in [0,1]
 probabilityCheck ::  ([Pattern], Int, Pattern) -> Gen Bool
 probabilityCheck (pats, nr_h, pat) = do
   seed <- arbitrary
