move the block evaluation into a route_builder class, so that we can't directly call methods on the router itself and have a responsible object for that.