adding in some modularity
removed stuff from here and distirbuted it into the utility, types and Hraft
Adding in main file
changes to cabal file