Made NetAsyncDownloader use transactions so we don't get have broken files in downloads/