add hasDomain method
add recursive chmod
add URIUtil