 
     load_queue.drain = =>
       unless pack_cache.err
-        main_cb null, 
+
+        res =           
           dependencies_tree : pack_cache.dependencies_tree
           names_map : pack_cache.names_map
           source_code : pack_cache.source_code
+
+        # save ALL result for next step
+        @_hard_cache_.set step_cache_name, _.cloneDeep res
+
+        #console.log 'names_map'
+        #console.log res['names_map']
+
+        main_cb null, res
+
       else
         main_cb pack_cache.err
 

path    = require 'path'
_       = require 'lodash'
async   = require 'async'

# temporary its here
detective     = require 'detective'


        # and add new files to queue if it have `requires`
        @_findRequiresAndAddToQueue {digest, may_have_reqire, content, real_file_name, path_name, pack_cache, waterfall_cb}
      ], (err) => 
        #console.timeEnd "all #{parent} #{path_name}"
        queue_cb err # this is the end of waterfall


  ###
