diff --git a/config/models b/config/models
new file mode 100644
--- /dev/null
+++ b/config/models
@@ -0,0 +1,204 @@
+Exps
+    name Text
+    startTime UTCTime
+    endTime UTCTime Maybe
+    initialState ByteString
+    initialInputState ByteString
+
+ExpsInfoParam
+    exps ExpsId
+    name Text
+    value ByteString
+    UniqueExpsInfoParam exps name
+
+ExpsMaster
+    exps ExpsId
+    hostname Text
+    pid Int
+    lastAliveSign UTCTime
+    UniqueExpsMaster exps
+
+ExpsSetup
+    exps ExpsId
+    repetitions Int
+    preparationSteps Int
+    evaluationWarmUpSteps Int
+    evaluationSteps Int
+    evaluationReplications Int
+    evaluationMaxStepsBetweenSaves Int Maybe
+    UniqueExpsSetup exps
+
+Param
+    exps ExpsId
+    name Text
+    minBound ByteString Maybe
+    maxBound ByteString Maybe
+    deriving Show Eq Ord
+
+Exp         -- Adding "json" causes ToJSON and FromJSON instances to be derived.
+    exps  ExpsId
+    number Int
+    startTime UTCTime
+    endTime UTCTime Maybe
+    deriving Eq Ord
+
+ExpExecutionLock
+    exp ExpId
+    hostname Text
+    pid Int
+    lastAliveSign UTCTime
+    UniqueExpExecutionLock exp
+
+ExpProgress
+    exp ExpId
+    phase Int
+    step Int
+    UniqueExpProgress exp
+
+ParamSetting
+    exp ExpId
+    name Text
+    value ByteString
+    skipPreparationPhase Bool
+    experimentDesign Int
+
+
+ExpResult
+    exp ExpId
+    repetition Int
+    prepResultData                  PrepResultDataId Maybe
+
+PrepResultData
+    startTime                       UTCTime
+    endTime                         UTCTime Maybe
+    startRandGen                    ByteString
+    endRandGen                      ByteString Maybe
+    -- startState                      ByteString
+    -- endState                        ByteString Maybe
+    startInputState                 ByteString
+    endInputState                   ByteString Maybe
+
+PrepStartStatePart             -- need to split big states into pieces
+    resultData PrepResultDataId
+    number     Int
+    data       ByteString
+    UniquePrepStartStatePart resultData number
+
+PrepEndStatePart
+    resultData PrepResultDataId
+    number     Int
+    data       ByteString
+    UniquePrepEndStatePart resultData number
+
+PrepInput
+    prepResultData PrepResultDataId
+    period Int
+    UniquePrepInput prepResultData period
+
+PrepInputValue
+    prepInput PrepInputId
+    value ByteString
+
+PrepMeasure
+    prepResultData PrepResultDataId
+    period Int
+    UniquePrepMeasure prepResultData period
+
+PrepResultStep
+    measure PrepMeasureId
+    name Text
+    xValue  Double Maybe
+    yValue  Double
+
+RepResult
+    expResult ExpResultId
+    repNr Int
+    warmUpResultData WarmUpResultDataId Maybe
+    repResultData RepResultDataId Maybe
+    UniqueExpResultRepNr expResult repNr
+
+WarmUpResultData
+    startTime                       UTCTime
+    endTime                         UTCTime Maybe
+    startRandGen                    ByteString
+    endRandGen                      ByteString Maybe
+    -- startState                      ByteString
+    -- endState                        ByteString Maybe
+    startInputState                 ByteString
+    endInputState                   ByteString Maybe
+
+WarmUpStartStatePart             -- need to split big states into pieces
+    resultData WarmUpResultDataId
+    number     Int
+    data       ByteString
+    UniqueWarmUpStartStatePart resultData number
+
+WarmUpEndStatePart
+    resultData WarmUpResultDataId
+    number     Int
+    data       ByteString
+    UniqueWarmUpEndStatePart resultData number
+
+RepResultData
+    startTime                       UTCTime
+    endTime                         UTCTime Maybe
+    startRandGen                    ByteString
+    endRandGen                      ByteString Maybe
+    -- startState                      ByteString
+    -- endState                        ByteString Maybe
+    startInputState                 ByteString
+    endInputState                   ByteString Maybe
+
+
+RepStartStatePart             -- need to split big states into pieces
+    resultData RepResultDataId
+    number     Int
+    data       ByteString
+    UniqueRepStartStatePart resultData number
+
+RepEndStatePart
+    resultData RepResultDataId
+    number     Int
+    data       ByteString
+    UniqueRepEndStatePart resultData number
+
+
+WarmUpInput
+    repResult WarmUpResultDataId
+    period Int
+    UniqueWarmUpInput repResult period
+
+WarmUpInputValue
+    warmUpInput WarmUpInputId
+    value ByteString
+
+WarmUpMeasure
+    repResult WarmUpResultDataId
+    period Int
+    UniqueWarmUpMeasure repResult period
+
+WarmUpResultStep
+    measure WarmUpMeasureId
+    name Text
+    xValue  Double Maybe
+    yValue  Double
+
+RepInput
+    repResult RepResultDataId
+    period Int
+    UniqueRepInput repResult period
+
+RepInputValue
+    repInput RepInputId
+    value ByteString
+
+RepMeasure
+    repResult RepResultDataId
+    period Int
+    UniqueRepMeasure repResult period
+
+RepResultStep
+    measure RepMeasureId
+    name Text
+    xValue  Double Maybe
+    yValue  Double
diff --git a/experimenter.cabal b/experimenter.cabal
--- a/experimenter.cabal
+++ b/experimenter.cabal
@@ -4,10 +4,10 @@
 --
 -- see: https://github.com/sol/hpack
 --
--- hash: bf820cc6e79b79354f552cd7494e0734f04c0525b7ed9d9137baf4d34284f88d
+-- hash: 8031e807943e5e9869d777dd6846b816f6841397a3ea6c9d3d6c66d830dbabc2
 
 name:           experimenter
-version:        0.1.0.0
+version:        0.1.0.1
 synopsis:       Perform scientific experiments stored in a DB, and generate reports.
 description:    Please see the README on GitHub at <https://github.com/schnecki/experimenter#readme>
 category:       Experiment
@@ -22,6 +22,7 @@
 extra-source-files:
     README.md
     ChangeLog.md
+    config/models
 
 source-repository head
   type: git
