created generateUrl()