code: function(){
            done++;
            if(onSingleDownloadProgress) onSingleDownloadProgress(new ProgressEvent());
  
            // when we're done
            if(done === total) {
              // reset downloads
              self._downloading = [];
              // check if we got everything
              self.list().then(function(){
                // final progress event!
                if(onSingleDownloadProgress) onSingleDownloadProgress(new ProgressEvent());
                // Yes, we're not dirty anymore!
                if(errors.length === 0) {
                  resolve(self);
                // Aye, some files got left behind!
                } else {
                  reject(errors);
                }
              },reject);
            }
          }
docs: callback