a few refactorings in requirements, and a UrlDataItem