         else
           err = new Error "unknown key type: #{typ}"
     else if required then err = new Error "Required to generate key but none found"
-    key = if km? and not err? then @_make_key(km) else null
+    key = if km? and not err? then @_make_key{km, obj} else null
     cb err, key
 
   #-------------------


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

  _compute_time : (o) ->
    ret = if typeof(o) is 'string'
      if o is 'now' then @_compute_now()
      else if (m = o.match /^(\+)?(\d+)$/) 
        (if m[1]? then @_compute_now() else 0) + parseInt(m[2])
      else null
    else if typeof(o) isnt 'object' then null
    else if o.sum?
      sum = 0


  _init : (cb) ->
    try
      @_start = if (t = @chain.time)? then @_compute_time(t) else @_compute_now()
      @_expires = @chain.expires or 60*60*24*364*10
      @_user = @chain.user or "tester_ralph"
    catch e
