support urls
add lots more checks