add router with tests