     main_cb null, result
 
   ###
+  This is fast file tester
+  ###
+  _checkCachedFiles: (names_map, cb) =>
+    # work vector
+    vec = _.keys names_map
+
+    some_fn = (file, acb) =>
+      @_digest_calculator_.readFileDigest file, (err, res) =>
+        # if something go wrong - return `true` mean `no`
+        return acb true if err?
+        return acb res isnt names_map[file]
+
+    async.some vec, some_fn, (result) ->
+      cb null, !result
+
+  ###
+  This is fast file checker
+  ###
+  _hardCacheProbe: ( path_name, options, step_cache_name, cb ) =>
+    # try to use hard cache 
+    if @_hard_cache_.has step_cache_name
+      probably_res = @_hard_cache_.get step_cache_name
+      @_checkCachedFiles probably_res.names_map, (err, res) =>
+        return cb err if err?
+        if res
+          cb null, probably_res 
+        else
+          cb null, null
+    else
+      cb null, null
+
+  ###
   This is Async version of packer
   ###
-  buildModulePack : (path_name, options={}, main_cb) ->
-   
-    #console.log 'buildModulePack options', options
+  buildModulePack : (path_name, options={}, main_cb) =>
+
+    step_cache_name = @_digest_calculator_.calculateDataDigest path_name + util.inspect options
+
+    @_hardCacheProbe path_name, options, step_cache_name, (err, res) =>
+      return main_cb err if err?
+      return main_cb null, res if res
+
+      @_buildModulePack path_name, options, step_cache_name, main_cb
+
+  ###
+  internal method
+  ###
+  _buildModulePack : (path_name, options, step_cache_name, main_cb) =>
+
     # then fill up chache for async logic
     pack_cache = 
       dependencies_tree : {}


    load_queue.drain = =>
      unless pack_cache.err
        main_cb null, 
          dependencies_tree : pack_cache.dependencies_tree
          names_map : pack_cache.names_map
          source_code : pack_cache.source_code
      else
        main_cb pack_cache.err



      # try to get all by cache
      unless @_require_cache_.has digest
        #console.log 'Requires cache miss', real_file_name
        [err, res] = @_findRequiresItself content
        # just die fast
        if err?
