Modified project cabal structure for easier testing, and added a top level test for all problems