 
   if metadata.url
     options.url ?= metadata.url
+    delete metadata.url
   if metadata.id
     options.id = metadata.id
     delete metadata.id
   options.url = options.url[0] if _.isArray options.url
-
-  for src of sources
-    try _get_formatted_crossref(sources[src]) if src is 'crossref'
-    try _get_formatted_europepmc(sources[src]) if src is 'europepmc'
 
   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'

      afnd.data.meta.article.reversed = true if 'reverse' in afnd.v2.checked
      if afnd.v2.url
        afnd.data.availability.push({type: 'article', url: afnd.v2.url})
      else if afnd.v2.open
        afnd.data.availability.push({type: 'article', url: afnd.v2.open})
    try
      if afnd.data.availability.length is 0 and (afnd.v2.metadata.doi or afnd.v2.metadata.title or afnd.v2.metadata.url)
        eq = {type: 'article'}

  _findoab = () ->
    catalogued = oab_catalogue.finder metadata
    # if user wants a total refresh, don't use any of it (we still search for it though, because will overwrite later with the fresh stuff)
    delete catalogued.found.oabutton if catalogued?.found?.oabutton? # fix for mistakenly cached things, we now won't record as found in OAB, just show as cached response
    if catalogued? and res.refresh isnt 0
      res.permissions ?= catalogued.permissions if catalogued.permissions?.permissions? and (catalogued.metadata?.journal? or catalogued.metadata?.issn?)
      if 'oabutton' in res.sources
