added cabal file, and did some linting