remove debug prints
add TODOs
split code into namespaces
add combinators, fix a number of bugs