docs: function importerAsync(options, handler) {
      var modulePath, recursive = false, parent = '';
  
      if (typeof options === 'string') {
          modulePath = options;
  
      } else {
          modulePath = options.path;
          recursive = options.recursive || recursive;
          parent = options.parent || parent;
          if (!modulePath) throw new Error("module directory path must be given.");
      }
  
      // absolute path? or relevant path?
      if (modulePath.indexOf('/') != 0) {
          // relevant. join with parent module's path
          modulePath = path.join(path.dirname(module.parent.parent.filename), modulePath);
      }
  
      fs.readdir(modulePath, function(err, files) {
          files.forEach(function(name) {
              if (name.lastIndexOf('.js') != name.length - 3) return;
  
              if (recursive && fs.lstatSync(path.join(modulePath, name)).isDirectory()) {
                  importerAsync({
                      path: path.join(modulePath, name),
                      recursive: true,
                      parent: path.join(parent, name)
                  }, handler);
              }
  
              name = name.substring(0, name.lastIndexOf('.')); // remove ext
              var moduleObj = require(path.join(modulePath, name));
              if (handler) handler(moduleObj, path.join(parent, name));
          });
      });
  }