introduce routerProvider