   options.url = options.url[0] if _.isArray options.url
   res.checked = []
 
-  metadata.doi ?= options.doi.replace(/doi\:/i,'').trim() if typeof options.doi is 'string'
+  metadata.doi ?= options.doi.replace('doi:','').replace('doi.org/','').trim() if typeof options.doi is 'string'
   metadata.title ?= options.title.trim() if typeof options.title is 'string'
   metadata.pmid ?= options.pmid if options.pmid
   metadata.pmcid ?= options.pmcid if options.pmcid

  res.live = options.live if options.live?
  res.found = {}

  _got = (obj=metadata) ->
    for w in options.metadata
      if not obj[w]?
        return false
    return true

  # special cases for instantill demo and exlibris - dev and live demo accounts that always return a fixed answer
  if options.plugin is 'instantill' and metadata.doi is '10.1234/567890' and options.from in ['qZooaHWRz9NLFNcgR','eZwJ83xp3oZDaec86'] 
    res.ill = {openurl: ""}

  if not res.cached
    # check crossref for metadata if we don't have enough, but do already have a doi
    _get_formatted_crossref = (cr) ->
      res.checked.push('crossref') if 'crossref' not in res.checked
      try
        cr ?= API.use.crossref.works.doi metadata.doi
        try metadata.title = cr.title[0] if cr.title.length
        try metadata.doi = cr.DOI if cr.DOI?
        try metadata.doi = cr.doi if cr.doi? # just in case
        try metadata.crossref_type = cr.type
        try metadata.author = cr.author if cr.author?
        try metadata.journal = cr['container-title'][0] if cr['container-title'].length
        try metadata.issue = cr.issue if cr.issue?
        try metadata.volume = cr.volume if cr.volume?
        try metadata.page = cr.page.toString() if cr.page?
        try metadata.issn ?= cr.ISSN[0] if cr.ISSN?
        try metadata.subject = cr.subject if cr.subject? # not sure if this is present in crossref... check anyway
        try metadata.publisher = cr.publisher if cr.publisher?
        try metadata.year ?= cr['published-print']['date-parts'][0][0] if cr['published-print']['date-parts'][0][0].length
        try metadata.year ?= cr.created['date-time'].split('-')[0]
        try metadata.published = if cr['published-online']?['date-parts'] and cr['published-online']['date-parts'][0].length is 3 then cr['published-online']['date-parts'][0].join('-') else if cr['published-print']?['date-parts'] and cr['published-print']?['date-parts'][0].length is 3 then cr['published-print']['date-parts'][0].join('-') else undefined
    _get_formatted_crossref() if (not _got() or (res.find and not res.url)) and metadata.doi and 'crossref' in res.sources # crossref is usually fast and worth checking, even if just a find and the metadata is not strictly needed
