changed signature of route()