diff --git a/cabal-bounds.cabal b/cabal-bounds.cabal
--- a/cabal-bounds.cabal
+++ b/cabal-bounds.cabal
@@ -1,12 +1,119 @@
 name: cabal-bounds
-version: 0.1.3
+version: 0.1.4
 cabal-version: >=1.9.2
 build-type: Simple
 license: BSD3
 license-file: LICENSE
 maintainer: daniel.trstenjak@gmail.com
 synopsis: A command line program for managing the bounds/versions of the dependencies in a cabal file.
-description: A command line program for managing the bounds/versions of the dependencies in a cabal file.
+description: If you have several cabalized projects, then it can be quite time consuming to keep the
+             bounds of your dependencies up to date. Especially if you're following the, then you want
+             to raise your upper bounds from time to time, to allow the building with newer versions
+             of the dependencies.
+             
+             `cabal-bounds` tries to automate this update process to some degree. So a typical update process might look like:
+             
+                 $> # update the version infos of all libraries
+                 $> cabal update
+             
+                 $> # drops the upper bound of all dependencies in 'myproject.cabal', most likely you want to ignore 'base'
+                 $> cabal-bounds drop --upper --ignore=base myproject.cabal
+             
+                 $> # create a cabal sandbox for building of 'myproject'
+                 $> cabal sandbox init
+                   
+                 $> # build 'myproject'
+                 $> cabal install
+             
+                 $> # update the upper bound of all dependencies in 'myproject.cabal' by the cabal build information
+                 $> cabal-bounds update --upper --ignore=base myproject.cabal dist/dist-sandbox-*/setup-config 
+             
+             Examples
+             ========
+             
+             The `=>` shows what the result is of the operation for every dependency. Left is the dependency before
+             calling the command, right the one after calling.
+             
+                 $> cabal drop myproject.cabal
+                 lens >=4.0.1 && <4.1   =>   lens
+             
+                 $> cabal drop --upper myproject.cabal
+                 lens >=4.0.1 && <4.1   =>   lens >=4.0.1
+             
+             If the cabal build (the setup-config) uses `lens 4.1.2`, then the results of the `update` command would be:
+             
+                 $> cabal update myproject.cabal setup-config
+                 lens >=4.0.1 && <4.1   =>   lens >=4.1.2 && <4.2
+                 lens                   =>   lens >=4.1.2 && <4.2
+             
+                 $> cabal update --lower myproject.cabal setup-config
+                 lens >=4.0.1 && <4.1   =>   lens >=4.1.2
+                 lens <4.1              =>   lens >=4.1.2
+                 lens                   =>   lens >=4.1.2
+             
+                 $> cabal update --upper myproject.cabal setup-config
+                 lens >=4.0.1 && <4.1   =>   lens >=4.0.1 && <4.2
+                 lens >=4.0.1           =>   lens >=4.0.1 && <4.2
+                 lens                   =>   lens >=4.1.2 && <4.2
+             
+             Installation
+             ============
+             
+             You have to ensure, that the `Cabal` library of `cabal-bounds` matches the one used by the `cabal` binary:
+             
+                 $> cabal --version
+                 cabal-install version 1.18.0.2
+                 using version 1.18.1 of the Cabal library 
+             
+                 $> cabal install --constraint="Cabal == 1.18.1" cabal-bounds
+             
+             If you update the `cabal` binary and the used `Cabal` library changes, then you have to rebuild `cabal-bounds`.
+             
+             Command Line Usage
+             ==================
+             
+                 $> cabal-bounds --help
+                 cabal-bounds [COMMAND] ... [OPTIONS]
+                   A command line program for managing the bounds/versions of the dependencies
+                   in a cabal file.
+                 
+                 Common flags:
+                   -O --only=ITEM             Only the bounds of the dependency are modified.
+                   -I --ignore=ITEM           This dependency is ignored, not modified in any
+                                              way.
+                   -o --outputCabalFile=ITEM  Save modified cabal file to file, if empty, the
+                                              cabal file is modified inplace.
+                   -h --help                  Display help message
+                   -v --version               Print version information
+                 
+                 cabal-bounds drop [OPTIONS] CABAL-FILE
+                 
+                   -U --upper                 Only the upper bound is dropped, otherwise both
+                                              - the lower and upper - bounds are dropped.
+                   -l --library               Only the bounds of the library are dropped.
+                   -e --executable=ITEM       Only the bounds of the executable are dropped.
+                   -t --testsuite=ITEM        Only the bounds of the test suite are dropped.
+                   -b --benchmark=ITEM        Only the bounds of the benchmark are dropped.
+                 
+                 cabal-bounds update [OPTIONS] CABAL-FILE SETUP-CONFIG-FILE
+                 
+                   -L --lower                 Only the lower bound is updated.
+                   -U --upper                 Only the upper bound is updated.
+                   -l --library               Only the bounds of the library are updated.
+                   -e --executable=ITEM       Only the bounds of the executable are updated.
+                   -t --testsuite=ITEM        Only the bounds of the test suite are updated.
+                   -b --benchmark=ITEM        Only the bounds of the benchmark are updated.
+             
+             Issues
+             ======
+             
+             Perhaps the currently most annoying thing is, that you have to live with the reformating of your
+             `cabal` file done by the pretty printer of the `Cabal` library.
+             
+             To reformat your `cabal` file without changing any bounds you can call `cabal-bounds` with the name of
+             a section that isn't present in the `cabal` file:
+             
+                 $> cabal-bounds drop --executable=blub myproject.cabal
 category: Utils
 author: Daniel Trstenjak
 data-dir: ""
