       max = Math.max versions...
       query = "(#{max}) <#{em}>"
       await @master.find_keys { query }, esc defer out
-      msg = if out.length is 0 then "Didn't find any key for query #{query}"
-      else if out.length > 1 then "Found too many keys that matched #{query}"
-      else null
-      if msg? then err = new Error msg
-      else ret = ids64[0]
-    cb err, ret
+      if out.length is 0     then err = new Error "Didn't find any key for query #{query}"
+      else if out.length > 1 then err = new Error "Found too many keys that matched #{query}"
+      else
+        @_key = @master.make_key { key_id_64 : ids64[0], username : em }
+        await @_key.load defer err
+        @_key = null if err
+    cb err
 
   #------------
 

{keyring} = require 'gpg-wrapper'
{constants} = require './constants'
{log} = require './log'

##========================================================================


  constructor : () ->
    @master = keyring.master_ring()
    @id_email = "code@keybase.io"
    @_key = null

  #------------

  run : (cb) ->
    esc = make_esc cb, "SetupKeyRunner::run"
    await @find_latest_key esc defer()
    await @install_key esc defer() unless @_key?
    cb err

  #------------
