* Downloader - if there is no length passed in during the creation of
the Downloader instance, and we don't get one from the download server,
we set it to -1 so it will still download. otherwise it will crash