diff --git a/LICENSE b/LICENSE
--- a/LICENSE
+++ b/LICENSE
@@ -1,4 +1,4 @@
-Copyright (c) 2012, 2013, 2014 David Sorokin <david.sorokin@gmail.com>
+Copyright (c) 2012-2015 David Sorokin <david.sorokin@gmail.com>
 
 All rights reserved.
 
diff --git a/Simulation/Aivika/Experiment.hs b/Simulation/Aivika/Experiment.hs
--- a/Simulation/Aivika/Experiment.hs
+++ b/Simulation/Aivika/Experiment.hs
@@ -1,7 +1,7 @@
 
 -- |
 -- Module     : Simulation.Aivika.Experiment
--- Copyright  : Copyright (c) 2012-2014, David Sorokin <david.sorokin@gmail.com>
+-- Copyright  : Copyright (c) 2012-2015, David Sorokin <david.sorokin@gmail.com>
 -- License    : BSD3
 -- Maintainer : David Sorokin <david.sorokin@gmail.com>
 -- Stability  : experimental
diff --git a/Simulation/Aivika/Experiment/ExperimentSpecsView.hs b/Simulation/Aivika/Experiment/ExperimentSpecsView.hs
--- a/Simulation/Aivika/Experiment/ExperimentSpecsView.hs
+++ b/Simulation/Aivika/Experiment/ExperimentSpecsView.hs
@@ -3,7 +3,7 @@
 
 -- |
 -- Module     : Simulation.Aivika.Experiment.ExperimentSpecsView
--- Copyright  : Copyright (c) 2012-2014, David Sorokin <david.sorokin@gmail.com>
+-- Copyright  : Copyright (c) 2012-2015, David Sorokin <david.sorokin@gmail.com>
 -- License    : BSD3
 -- Maintainer : David Sorokin <david.sorokin@gmail.com>
 -- Stability  : experimental
diff --git a/Simulation/Aivika/Experiment/ExperimentSpecsWriter.hs b/Simulation/Aivika/Experiment/ExperimentSpecsWriter.hs
--- a/Simulation/Aivika/Experiment/ExperimentSpecsWriter.hs
+++ b/Simulation/Aivika/Experiment/ExperimentSpecsWriter.hs
@@ -1,7 +1,7 @@
 
 -- |
 -- Module     : Simulation.Aivika.Experiment.ExperimentSpecsWriter
--- Copyright  : Copyright (c) 2012-2014, David Sorokin <david.sorokin@gmail.com>
+-- Copyright  : Copyright (c) 2012-2015, David Sorokin <david.sorokin@gmail.com>
 -- License    : BSD3
 -- Maintainer : David Sorokin <david.sorokin@gmail.com>
 -- Stability  : experimental
@@ -76,7 +76,7 @@
          writeHtml "<td colspan='2'>"
          writeHtml "<p align='center'>"
          writeHtmlText $ experimentSpecsNameText writer
-         writeHtml "</h4>"
+         writeHtml "</p>"
          writeHtml "</td>"
          writeHtml "</tr>"
          writeHtml "<tr>"
diff --git a/Simulation/Aivika/Experiment/ExperimentWriter.hs b/Simulation/Aivika/Experiment/ExperimentWriter.hs
--- a/Simulation/Aivika/Experiment/ExperimentWriter.hs
+++ b/Simulation/Aivika/Experiment/ExperimentWriter.hs
@@ -1,7 +1,7 @@
 
 -- |
 -- Module     : Simulation.Aivika.Experiment.ExperimentWriter
--- Copyright  : Copyright (c) 2012-2014, David Sorokin <david.sorokin@gmail.com>
+-- Copyright  : Copyright (c) 2012-2015, David Sorokin <david.sorokin@gmail.com>
 -- License    : BSD3
 -- Maintainer : David Sorokin <david.sorokin@gmail.com>
 -- Stability  : experimental
diff --git a/Simulation/Aivika/Experiment/FileRenderer.hs b/Simulation/Aivika/Experiment/FileRenderer.hs
--- a/Simulation/Aivika/Experiment/FileRenderer.hs
+++ b/Simulation/Aivika/Experiment/FileRenderer.hs
@@ -3,7 +3,7 @@
 
 -- |
 -- Module     : Simulation.Aivika.Experiment.Types
--- Copyright  : Copyright (c) 2012-2014, David Sorokin <david.sorokin@gmail.com>
+-- Copyright  : Copyright (c) 2012-2015, David Sorokin <david.sorokin@gmail.com>
 -- License    : BSD3
 -- Maintainer : David Sorokin <david.sorokin@gmail.com>
 -- Stability  : experimental
diff --git a/Simulation/Aivika/Experiment/FinalStatsView.hs b/Simulation/Aivika/Experiment/FinalStatsView.hs
--- a/Simulation/Aivika/Experiment/FinalStatsView.hs
+++ b/Simulation/Aivika/Experiment/FinalStatsView.hs
@@ -3,7 +3,7 @@
 
 -- |
 -- Module     : Simulation.Aivika.Experiment.FinalStatsView
--- Copyright  : Copyright (c) 2012-2014, David Sorokin <david.sorokin@gmail.com>
+-- Copyright  : Copyright (c) 2012-2015, David Sorokin <david.sorokin@gmail.com>
 -- License    : BSD3
 -- Maintainer : David Sorokin <david.sorokin@gmail.com>
 -- Stability  : experimental
@@ -117,17 +117,17 @@
          rs      = finalStatsSeries view $
                    finalStatsTransform view $
                    experimentResults expdata
-         exts    = extractDoubleStatsEitherResults rs
+         exts    = resultsToDoubleStatsEitherValues rs
          signals = experimentPredefinedSignals expdata
          signal  = filterSignalM (const predicate) $
                    resultSignalInStopTime signals
-         names   = map resultExtractName exts
+         names   = map resultValueName exts
          predicate = finalStatsPredicate view
      results <- liftIO $ requireFinalStatsResults st names
      let values = finalStatsValues results 
      handleSignal signal $ \_ ->
        forM_ (zip exts values) $ \(ext, value) ->
-       do x <- resultExtractData ext
+       do x <- resultValueData ext
           liftIO $
             do y <- readIORef value
                let y' = combineSamplingStatsEither x y
diff --git a/Simulation/Aivika/Experiment/FinalTableView.hs b/Simulation/Aivika/Experiment/FinalTableView.hs
--- a/Simulation/Aivika/Experiment/FinalTableView.hs
+++ b/Simulation/Aivika/Experiment/FinalTableView.hs
@@ -3,7 +3,7 @@
 
 -- |
 -- Module     : Simulation.Aivika.Experiment.FinalTableView
--- Copyright  : Copyright (c) 2012-2014, David Sorokin <david.sorokin@gmail.com>
+-- Copyright  : Copyright (c) 2012-2015, David Sorokin <david.sorokin@gmail.com>
 -- License    : BSD3
 -- Maintainer : David Sorokin <david.sorokin@gmail.com>
 -- Stability  : experimental
@@ -170,16 +170,16 @@
          rs      = finalTableSeries view $
                    finalTableTransform view $
                    experimentResults expdata
-         exts    = extractStringResults rs
+         exts    = resultsToStringValues rs
          signals = experimentPredefinedSignals expdata
          signal  = filterSignalM (const predicate) $
                    resultSignalInStopTime signals
-         names   = map resultExtractName exts
+         names   = map resultValueName exts
          predicate = finalTablePredicate view
      results <- liftIO $ requireFinalTableResults st names
      let values = finalTableValues results 
      handleSignal signal $ \_ ->
-       do xs <- mapM resultExtractData exts
+       do xs <- mapM resultValueData exts
           i  <- liftParameter simulationIndex
           liftIO $ modifyMRef_ values $ return . M.insert i xs
      
diff --git a/Simulation/Aivika/Experiment/Histogram.hs b/Simulation/Aivika/Experiment/Histogram.hs
--- a/Simulation/Aivika/Experiment/Histogram.hs
+++ b/Simulation/Aivika/Experiment/Histogram.hs
@@ -1,7 +1,7 @@
 
 -- |
 -- Module     : Simulation.Aivika.Experiment.Histogram
--- Copyright  : Copyright (c) 2012-2014, David Sorokin <david.sorokin@gmail.com>
+-- Copyright  : Copyright (c) 2012-2015, David Sorokin <david.sorokin@gmail.com>
 -- License    : BSD3
 -- Maintainer : David Sorokin <david.sorokin@gmail.com>
 -- Stability  : experimental
diff --git a/Simulation/Aivika/Experiment/HtmlWriter.hs b/Simulation/Aivika/Experiment/HtmlWriter.hs
--- a/Simulation/Aivika/Experiment/HtmlWriter.hs
+++ b/Simulation/Aivika/Experiment/HtmlWriter.hs
@@ -1,7 +1,7 @@
 
 -- |
 -- Module     : Simulation.Aivika.Experiment.HtmlWriter
--- Copyright  : Copyright (c) 2012-2014, David Sorokin <david.sorokin@gmail.com>
+-- Copyright  : Copyright (c) 2012-2015, David Sorokin <david.sorokin@gmail.com>
 -- License    : BSD3
 -- Maintainer : David Sorokin <david.sorokin@gmail.com>
 -- Stability  : experimental
diff --git a/Simulation/Aivika/Experiment/LastValueView.hs b/Simulation/Aivika/Experiment/LastValueView.hs
--- a/Simulation/Aivika/Experiment/LastValueView.hs
+++ b/Simulation/Aivika/Experiment/LastValueView.hs
@@ -3,7 +3,7 @@
 
 -- |
 -- Module     : Simulation.Aivika.Experiment.LastValueView
--- Copyright  : Copyright (c) 2012-2014, David Sorokin <david.sorokin@gmail.com>
+-- Copyright  : Copyright (c) 2012-2015, David Sorokin <david.sorokin@gmail.com>
 -- License    : BSD3
 -- Maintainer : David Sorokin <david.sorokin@gmail.com>
 -- Stability  : experimental
@@ -104,15 +104,15 @@
          rs      = lastValueSeries view $
                    lastValueTransform view $
                    experimentResults expdata
-         exts    = extractStringResults rs
+         exts    = resultsToStringValues rs
          signals = experimentPredefinedSignals expdata
          signal  = resultSignalInStopTime signals
      i <- liftParameter simulationIndex
      handleSignal signal $ \t ->
        do let r = fromJust $ M.lookup (i - 1) (lastValueMap st)
           output <- forM exts $ \ext ->
-            do x <- resultExtractData ext
-               return (resultExtractName ext, x)
+            do x <- resultValueData ext
+               return (resultValueName ext, x)
           liftIO $ writeIORef r output
      
 -- | Get the HTML code.     
diff --git a/Simulation/Aivika/Experiment/MRef.hs b/Simulation/Aivika/Experiment/MRef.hs
--- a/Simulation/Aivika/Experiment/MRef.hs
+++ b/Simulation/Aivika/Experiment/MRef.hs
@@ -1,7 +1,7 @@
 
 -- |
 -- Module     : Simulation.Aivika.Experiment.MRef
--- Copyright  : Copyright (c) 2012-2014, David Sorokin <david.sorokin@gmail.com>
+-- Copyright  : Copyright (c) 2012-2015, David Sorokin <david.sorokin@gmail.com>
 -- License    : BSD3
 -- Maintainer : David Sorokin <david.sorokin@gmail.com>
 -- Stability  : experimental
diff --git a/Simulation/Aivika/Experiment/SamplingStatsWriter.hs b/Simulation/Aivika/Experiment/SamplingStatsWriter.hs
--- a/Simulation/Aivika/Experiment/SamplingStatsWriter.hs
+++ b/Simulation/Aivika/Experiment/SamplingStatsWriter.hs
@@ -1,7 +1,7 @@
 
 -- |
 -- Module     : Simulation.Aivika.Experiment.SamplingStatsWriter
--- Copyright  : Copyright (c) 2012-2014, David Sorokin <david.sorokin@gmail.com>
+-- Copyright  : Copyright (c) 2012-2015, David Sorokin <david.sorokin@gmail.com>
 -- License    : BSD3
 -- Maintainer : David Sorokin <david.sorokin@gmail.com>
 -- Stability  : experimental
diff --git a/Simulation/Aivika/Experiment/TableView.hs b/Simulation/Aivika/Experiment/TableView.hs
--- a/Simulation/Aivika/Experiment/TableView.hs
+++ b/Simulation/Aivika/Experiment/TableView.hs
@@ -3,7 +3,7 @@
 
 -- |
 -- Module     : Simulation.Aivika.Experiment.TableView
--- Copyright  : Copyright (c) 2012-2014, David Sorokin <david.sorokin@gmail.com>
+-- Copyright  : Copyright (c) 2012-2015, David Sorokin <david.sorokin@gmail.com>
 -- License    : BSD3
 -- Maintainer : David Sorokin <david.sorokin@gmail.com>
 -- Stability  : experimental
@@ -173,7 +173,7 @@
          rs      = tableSeries view $
                    tableTransform view $
                    experimentResults expdata
-         exts    = extractStringResults rs
+         exts    = resultsToStringValues rs
          signals = experimentPredefinedSignals expdata
          signal  = pureResultSignal signals $
                    resultSignal rs
@@ -189,13 +189,13 @@
        do forM_ (zip [0..] exts) $ \(column, ext) ->
             do when (column > 0) $ 
                  hPutStr h separator
-               hPutStr h $ show $ resultExtractName ext
+               hPutStr h $ show $ resultValueName ext
           hPutStrLn h ""
      d1 <- handleSignal signal $ \t ->
        do p <- predicate
           when p $
             do forM_ (zip [0..] exts) $ \(column, ext) ->  -- write the row
-                 do x <- resultExtractData ext             -- write the column
+                 do x <- resultValueData ext               -- write the column
                     liftIO $
                       do when (column > 0) $ 
                            hPutStr h separator
diff --git a/Simulation/Aivika/Experiment/TimingStatsView.hs b/Simulation/Aivika/Experiment/TimingStatsView.hs
--- a/Simulation/Aivika/Experiment/TimingStatsView.hs
+++ b/Simulation/Aivika/Experiment/TimingStatsView.hs
@@ -3,7 +3,7 @@
 
 -- |
 -- Module     : Simulation.Aivika.Experiment.TimingStatsView
--- Copyright  : Copyright (c) 2012-2014, David Sorokin <david.sorokin@gmail.com>
+-- Copyright  : Copyright (c) 2012-2015, David Sorokin <david.sorokin@gmail.com>
 -- License    : BSD3
 -- Maintainer : David Sorokin <david.sorokin@gmail.com>
 -- Stability  : experimental
@@ -109,7 +109,7 @@
          rs      = timingStatsSeries view $
                    timingStatsTransform view $
                    experimentResults expdata
-         exts    = extractDoubleResults rs
+         exts    = resultsToDoubleValues rs
          signals = experimentPredefinedSignals expdata
          signal  = filterSignalM (const predicate) $
                    pureResultSignal signals $
@@ -119,11 +119,11 @@
      let r = fromJust $ M.lookup (i - 1) $ timingStatsMap st
      ds <- forM exts $ \ext ->
        do stats <- liftIO $ newIORef emptyTimingStats
-          let name = resultExtractName ext
+          let name = resultValueName ext
           liftIO $ modifyIORef r ((:) (name, stats))
           handleSignal signal $ \_ ->
             do t <- liftDynamics time
-               x <- resultExtractData ext
+               x <- resultValueData ext
                liftIO $
                  do y <- readIORef stats
                     let y' = addTimingStats t x y
diff --git a/Simulation/Aivika/Experiment/TimingStatsWriter.hs b/Simulation/Aivika/Experiment/TimingStatsWriter.hs
--- a/Simulation/Aivika/Experiment/TimingStatsWriter.hs
+++ b/Simulation/Aivika/Experiment/TimingStatsWriter.hs
@@ -1,7 +1,7 @@
 
 -- |
 -- Module     : Simulation.Aivika.Experiment.TimingStatsWriter
--- Copyright  : Copyright (c) 2012-2014, David Sorokin <david.sorokin@gmail.com>
+-- Copyright  : Copyright (c) 2012-2015, David Sorokin <david.sorokin@gmail.com>
 -- License    : BSD3
 -- Maintainer : David Sorokin <david.sorokin@gmail.com>
 -- Stability  : experimental
diff --git a/Simulation/Aivika/Experiment/Types.hs b/Simulation/Aivika/Experiment/Types.hs
--- a/Simulation/Aivika/Experiment/Types.hs
+++ b/Simulation/Aivika/Experiment/Types.hs
@@ -3,7 +3,7 @@
 
 -- |
 -- Module     : Simulation.Aivika.Experiment.Types
--- Copyright  : Copyright (c) 2012-2014, David Sorokin <david.sorokin@gmail.com>
+-- Copyright  : Copyright (c) 2012-2015, David Sorokin <david.sorokin@gmail.com>
 -- License    : BSD3
 -- Maintainer : David Sorokin <david.sorokin@gmail.com>
 -- Stability  : experimental
diff --git a/Simulation/Aivika/Experiment/Utils.hs b/Simulation/Aivika/Experiment/Utils.hs
--- a/Simulation/Aivika/Experiment/Utils.hs
+++ b/Simulation/Aivika/Experiment/Utils.hs
@@ -1,7 +1,7 @@
 
 -- |
 -- Module     : Simulation.Aivika.Experiment.Utils
--- Copyright  : Copyright (c) 2012-2014, David Sorokin <david.sorokin@gmail.com>
+-- Copyright  : Copyright (c) 2012-2015, David Sorokin <david.sorokin@gmail.com>
 -- License    : BSD3
 -- Maintainer : David Sorokin <david.sorokin@gmail.com>
 -- Stability  : experimental
diff --git a/Simulation/Aivika/Experiment/WebPageRenderer.hs b/Simulation/Aivika/Experiment/WebPageRenderer.hs
--- a/Simulation/Aivika/Experiment/WebPageRenderer.hs
+++ b/Simulation/Aivika/Experiment/WebPageRenderer.hs
@@ -3,7 +3,7 @@
 
 -- |
 -- Module     : Simulation.Aivika.Experiment.Types
--- Copyright  : Copyright (c) 2012-2014, David Sorokin <david.sorokin@gmail.com>
+-- Copyright  : Copyright (c) 2012-2015, David Sorokin <david.sorokin@gmail.com>
 -- License    : BSD3
 -- Maintainer : David Sorokin <david.sorokin@gmail.com>
 -- Stability  : experimental
@@ -17,7 +17,7 @@
 import Control.Monad
 import Control.Monad.Trans
 
-import qualified System.IO.UTF8 as UTF8
+import System.IO
 import System.Directory
 import System.FilePath
 
@@ -76,8 +76,10 @@
                                      reporterContext reporter) i
            file = combine path "index.html"
        ((), contents) <- runHtmlWriter html id
-       liftIO $ do
-         UTF8.writeFile file (contents [])
-         when (experimentVerbose e) $
-           do putStr "Generated file "
-              putStrLn file
+       liftIO $
+         withFile file WriteMode $ \h ->
+         do hSetEncoding h utf8
+            hPutStr h (contents [])
+            when (experimentVerbose e) $
+              do putStr "Generated file "
+                 putStrLn file
diff --git a/aivika-experiment.cabal b/aivika-experiment.cabal
--- a/aivika-experiment.cabal
+++ b/aivika-experiment.cabal
@@ -1,5 +1,5 @@
 name:            aivika-experiment
-version:         3.0
+version:         3.1
 synopsis:        Simulation experiments for the Aivika library
 description:
     This package allows defining simulation experiments for the Aivika
@@ -12,7 +12,7 @@
 category:        Simulation
 license:         BSD3
 license-file:    LICENSE
-copyright:       (c) 2012-2014. David Sorokin <david.sorokin@gmail.com>
+copyright:       (c) 2012-2015. David Sorokin <david.sorokin@gmail.com>
 author:          David Sorokin
 maintainer:      David Sorokin <david.sorokin@gmail.com>
 homepage:        http://github.com/dsorokin/aivika-experiment
@@ -44,16 +44,15 @@
                      Simulation.Aivika.Experiment.WebPageRenderer
                      Simulation.Aivika.Experiment.FileRenderer
                      
-    build-depends:   base >= 3 && < 6,
+    build-depends:   base >= 4.2 && < 6,
                      mtl >= 1.1.0.2,
                      containers >= 0.4.0.0,
                      directory >= 1.1.0.2,
                      filepath >= 1.3.0.0,
-                     utf8-string >= 0.3.7,
                      split >= 0.2.2,
                      network-uri >= 2.6,
                      parallel-io >= 0.3.2.1,
-                     aivika >= 3.0
+                     aivika >= 3.1
 
     extensions:      MultiParamTypeClasses,
                      TypeFamilies
