Begin migrating to newer model that handles multiple namespaces and macros
Add a main() method
wip
wip -- add in some data structures, print errors
start writing some tests