routes and interface changes and some testing gems and manual merge with joel's stuff