Abstract URL construction