split code into separate class/instances packages
fix cabal filename
wibble