Note that router can be a promise