   options.find = false
   return API.service.oab.find(options, metadata, content).metadata
 
-API.service.oab.find = (options={}, metadata={}, content, sources={}) ->
+API.service.oab.find = (options={}, metadata={}, content) ->
   started = Date.now()
   res = {url: false, checked: []}
 

        delete options.doi # don't allow the user-provided data to later override if we can't validate it on crossref
      if metadata.licence? and metadata.licence.indexOf('creativecommons') isnt -1
        res.url = 'https://doi.org/' + metadata.doi
        res.open = res.url
        res.found.crossref = res.url
  _get_reversed_crossref = () ->
    if (not _got() or (res.find and not res.url)) and 'reverse' in res.sources and not metadata.doi? and metadata.title? and metadata.title.length > 8 and metadata.title.split(' ').length > 2 and not options.reversed?

    # if we have a url or content but no doi or title yet, try scraping the url/content
    if (not _got() or (res.find and not res.url)) and not metadata.doi and not metadata.title and ((options.url and 'scrape' in res.sources) or content)
      res.checked.push 'scrape' if not content? # scrape the page if we have to - this is slow, so we hope not to do this much
      sc = API.service.oab.scrape options.url, content
      if sc?.url?
        options.url ?= sc.url
        delete sc.url
      _get(metadata, sc) if sc?
      _get_formatted_crossref() # try crossref / epmc / reverse if we found useful metadata now
      _get_formatted_europepmc() if 'epmc' not in res.checked # don't bother if we were already able to look, e.g. by pmcid or pmid
      _get_reversed_crossref()
