routers are abstracted