proper handling of download errors, background downloading