diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,12 @@
 # Revision history for less-arbitrary
 
+
+0.1.2.0 -- 2020-12-13
+* Exposed `Test.LessArbitrary.Cost` module.
+
+0.1.1.0 -- 2020-12-13
+* Moved `Cost` to `Test.LessArbitrary.Cost` module.
+
 0.1.0.2 -- 2020-10-17
 
 * Fixed the package metadata.
diff --git a/README.md b/README.md
--- a/README.md
+++ b/README.md
@@ -1,11 +1,53 @@
-To build this you need:
-* pandoc
-* dejavu-sans and Arial fonts installed
-  (the latter from msttcorefonts package or similar)
-* xelatex with standard science article packages
+# Introduction
+
+This is way to write arbitrary instances
+that should terminate in linear time with respect to budget,
+or throw an error instead when they go over budget
+and it is unclear how to terminate data structure.
+
+## Usage
+
+Just try:
+```
+import Test.LessArbitrary
+
+data MyDataType = ...
+  deriving (Generic)
+
+instance LessArbitrary MyDataType
+instance Arbitrary MyDataType where
+  arbitrary = fasterArbitrary
+```
+
+## How it is done?
+
+It is simply putting a monad that tracks the cost of constructors generated so far,
+and throw an error when it goes too far. Goes for mutually recursive data structures
+with at least one terminating constructor available.
+
+Not to be used on non-terminating lazy data structures.
+
+# Documentation build
+
+To build detailed article on implementation, you would need:
+
+* `pandoc`
+* `xelatex` with standard science article packages
   - easiest to get as MacTeX on Mac
   - `apt-get install -y texlive-recommended` on Ubuntu
-* Stephen Diehl category theory diagrams:
-  - git@github.com:sdiehl/cats.git
-* markdown-unlit
-* pandoc-hide-codeblocks
+* `pandoc-hide-codeblocks` filter to hide unnecessary code blocks (optional)
+
+# Hacker's guide
+
+Entire Haskell code is in literate markdown `less-arbitrary.md`.
+In order to work with it you will need `entangled` literate programming daemon
+that synchronizes source files with the literate source.
+
+It is bidirectional.
+
+```
+git clone https://github.com/entangled/entangled --branch develop
+cd entangled;
+cabal install # or stack install
+entangled daemon
+```
diff --git a/less-arbitrary.cabal b/less-arbitrary.cabal
--- a/less-arbitrary.cabal
+++ b/less-arbitrary.cabal
@@ -4,10 +4,10 @@
 --
 -- see: https://github.com/sol/hpack
 --
--- hash: 2784cd23f761bc388cdc69ce5a87b11f9d38fa3598fdf1b60aabd3c87fd65ffa
+-- hash: dd5540dd675e80ceab8bd98fe62c04c526f71fc96ebd88be2853fa32d496dea2
 
 name:           less-arbitrary
-version:        0.1.1.0
+version:        0.1.2.0
 synopsis:       Linear time testing with variant of Arbitrary class that always terminates.
 description:    Ever found non-terminating Arbitrary instance?
                 Ever wondered what would be a runtime cost of particular Arbitrary instance?
@@ -39,8 +39,8 @@
 library
   exposed-modules:
       Test.LessArbitrary
-  other-modules:
       Test.LessArbitrary.Cost
+  other-modules:
       Paths_less_arbitrary
   hs-source-dirs:
       src
