introduce cabal file and structure