Implement the routing.  basically feature complete, untested, doesnt compile
add some more constants