serve: reimplement using url.