                         fs.stat file, (err) ->
                             return callback(err) if err
                             callback(null, file)
-                    async.map files, iter, (err, existing_files) =>
+                    async.map files, iter, (err, existing_files) ->
                         conf = deep_merge conf, load_files existing_files...
-                        finish.apply this, args
+                        finish args...
                 else
                     # sync call
                     existing_files = []

                        catch e
                            # do nothing
                    conf = deep_merge conf, load_files existing_files...
                    finish.apply this, args
            else
                conf = deep_merge conf, load_files files...
                finish.apply this, args


        # set a default cli invoke when enabled andnot function is given

        conf = deep_merge {}, defaults

        # callback for when cli is ready or sync call
        finish = (args, opts) =>
            # environment has higher priority .. so we put it on top again
            for key, target of map.env
                continue unless process.env[key]?
