uses RouteProvider instead of Router