Enhancement: move open-uri check into download

 * clean-up error checking and do it once (and for every use-case)
 * downloader returns a string now, which simplifies consuming