more docs, more tests add routing