add more checks; take url as source