docs: function (rawFile, algorithms, opts) {
          return _imageOptim(rawFile, algorithms, function (prev, next) {
              return prev.then(function (res) {
                  return next(rawFile, _initCompressedFile(rawFile.name, opts._tmpDir))
                      .then(function (compressed) {
                          return _minFile(res, compressed);
                      });
                  });
              }, new Q(rawFile))
              .then(function (minFile) {
                  return {
                      name: rawFile.name,
                      savedBytes: _getSavedBytes(rawFile, minFile),
                      exitCode: exit.SUCCESS
                  };
              })
              .fail(function (err) {
                  return _handleError(err, rawFile);
              });
      }