restructure project in order to introduce tests
cleanup cabal file
add some test cases