Add mtl dependency to cabal file
Break into modules and use ErrorT