diff --git a/src/Data/Yaml/Config.hs b/src/Data/Yaml/Config.hs
--- a/src/Data/Yaml/Config.hs
+++ b/src/Data/Yaml/Config.hs
@@ -4,40 +4,40 @@
 --
 -- example.yaml:
 --
--- @
--- server:
---     port: 8080
---     logs:
---         access: \/var\/log\/server\/access.log
---         error:  \/var\/log\/server\/error.log
--- @
 --
--- Usage example:
+-- > server:
+-- >     port: 8080
+-- >     logs:
+-- >         access: /var/log/server/access.log
+-- >         error:  /var/log/server/error.log
 --
--- @
---module Main where
---import Prelude hiding (lookup)
---import Data.Word (Word16)
---import Data.Yaml.Config (load, subconfig, lookupDefault, lookup)
 --
---main :: IO ()
---main = do
---    config <- load "./example.yaml"
+-- Usage example:
 --
---    serverConfig <- subconfig config "server"
---    let interface = lookupDefault serverConfig "interface" "127.0.0.1"
---        port :: Word16 = lookupDefault serverConfig "port" 80
 --
---    logConfig <- subconfig serverConfig "logs"
---    accessLog <- lookup logConfig "access"
---    errorLog <- lookup logConfig "error"
---
---    mapM_ putStrLn [interface, (show port), errorLog, accessLog]
--- @
---
+-- > module Main where
+-- > import Prelude hiding (lookup)
+-- > import Data.Word (Word16)
+-- > import Data.Yaml.Config (load, subconfig, lookupDefault, lookup)
+-- >
+-- > main :: IO ()
+-- > main = do
+-- >     config <- load "./example.yaml"
+-- >
+-- >     serverConfig <- subconfig "server" config
+-- >     let interface = lookupDefault "interface" "127.0.0.1" serverConfig
+-- >         port :: Word16 = lookupDefault "port" 80 serverConfig
+-- >
+-- >     logConfig <- subconfig "logs" serverConfig
+-- >     accessLog <- lookup "access" logConfig
+-- >     errorLog <- lookup "error" logConfig
+-- >
+-- >     mapM_ putStrLn [interface, (show port), errorLog, accessLog]
+-- 
 module Data.Yaml.Config
     ( Config
     , Key
+    , KeyError(..)
     , load
     , keys
     , subconfig
diff --git a/src/Data/Yaml/Config/Internal.hs b/src/Data/Yaml/Config/Internal.hs
--- a/src/Data/Yaml/Config/Internal.hs
+++ b/src/Data/Yaml/Config/Internal.hs
@@ -5,19 +5,17 @@
 
 module Data.Yaml.Config.Internal
     ( Config(..)
+    , KeyError(..)
     , Key
 
-    -- * public API
-    -- ** work with files
+    -- * Work with files
     , load
 
-    -- **explore config
+    -- * Explore config
     , keys
     , subconfig
     , lookup
     , lookupDefault
-
-    -- * export for tests
     , fullpath
     ) where
 
diff --git a/yaml-config.cabal b/yaml-config.cabal
--- a/yaml-config.cabal
+++ b/yaml-config.cabal
@@ -1,5 +1,5 @@
 Name:               yaml-config
-Version:            0.1.0
+Version:            0.2.0
 Synopsis:           Configuration management
 Description:        Configuration management
 License:            MIT
@@ -26,7 +26,7 @@
                   , failure                    == 0.2.*
 
   Exposed-modules:  Data.Yaml.Config
-  Other-modules:    Data.Yaml.Config.Internal
+                    Data.Yaml.Config.Internal
 
 Test-suite howl-tests
   Main-is:          Tests.hs
