docs: function fetchFile(address, filepath) {
      return get(address)
          .then(res => new Promise((fulfill, reject) => {
              const file = fs.createWriteStream(filepath);
              res.on('error', err => {
                  // reading error
                  file.close();
                  fs.unlink(filepath, err => {   // best effort
                      if (err) console.error(err);
                  });
                  reject(err);
              });
              file.on('error', err => {
                  // writing error
                  fs.unlink(filepath, err => {   // best effort
                      if (err) console.error(err);
                  });
                  reject(err);
              });
              file.on('finish', () => {
                  fulfill(filepath);
              });
              res.pipe(file);
          }));
  }