code: function(err, msg) {
          var response = (msg || {}).body || {},
              betterError;
  
          // Resolving call
          self.requests = _.remove(self.requests, function(req) {
            return req.call === call;
          });
  
          // Setting job's response
          job.res = _.pick(response, [
            'body',
            'data',
            'url',
            'status',
            'headers'
          ]);
  
          if (err)
            return callback(err, job);
  
          // Dealing with cookies
          var header = (job.res.headers || {})['set-cookie'];
  
          if (spider.jar && header)
            header.split('\n').forEach(function(str) {
              spider.jar.setCookie(str, job.res.url);
            });
  
          // Phantom failure
          if (response.fail && response.reason === 'fail') {
            betterError = new Error(errors[response.error.errorCode] || 'phantom-fail');
            betterError.code = response.error.errorCode;
            betterError.reason = response.error.errorString;
            return callback(betterError, job);
          }
  
          // Wrong status code
          if (response.fail && response.reason === 'status') {
            betterError = new Error('status-' + (response.status || 'unknown'));
            betterError.status = response.status;
            return callback(betterError, job);
          }
  
          // User-generated error
          if (response.error) {
            betterError = new Error(response.error.message);
  
            for (var k in _.omit(response.error, 'message'))
              betterError[k] = response.error[k];
            return callback(betterError, job);
          }
  
          return callback(null, job);
        }
docs: Callback