         difference(keys.all, keys.cached).forEach (k)->
           cached[k] = new constructor
           cached[k][keyField] = all[k][keyField]
-
-        keys.all.forEach (k)->
-          forEach k, cached[k], all[k], stackCb
 
         dash stack, ->
           console.log "Updated #{message}!"


        keys    = all: Object.keys(all), cached: Object.keys(cached)
        stack   = []
        stackCb = (err)-> if err then callback err else stack.fin()

        # remove obsolete plans in mongo
        difference(keys.cached, keys.all).forEach (k)->

      all[obj[keyField]] = obj  for obj in objs

      constructor.all selector, (err, cachedObjs)->

        return callback err  if err

        cached = {}
