core: add UriBuilder