docs: function (rawFile, algorithms, opts) {
          return _imageOptim(rawFile, algorithms, function (prev, next) {
              return prev.then(function (res) {
                  return res || next(rawFile, _initCompressedFile(rawFile.name, opts._tmpDir))
                      .then(function (compressed) {
                          return _isSmallerAfterCompression(rawFile, compressed, opts);
                      });
                  });
              }, new Q(false))
              .then(function (isSmaller) {
                  return {
                      name: rawFile.name,
                      isOptimized: !isSmaller,
                      exitCode: 0
                  };
              })
              .fail(function (err) {
                  return _handleError(err, rawFile);
              });
      }