improve documentation and .cabal