less problematic and overkilly than cabal