Refactored into single cabal package