now works as a cabal lib