complete rework focusing on TDD and migrating to an 'expressjs' style API
lots of fixes and dynamic routing