code: function(file, expression, callback) {
      var obj = { file: file,
                  expression: expression,
                  callback: callback };
      watchList.push(obj);
      var watcher = chokidar.watch(obj.file, {persistent: true, ignoreInitial: true});
      if(obj.callback.add != undefined)
          watcher.on('add', wrapCallback(obj.callback.add, obj.expression));
      if(obj.callback.change != undefined)
          watcher.on('change', wrapCallback(obj.callback.change, obj.expression));
      if(obj.callback.unlink != undefined)
          watcher.on('unlink', wrapCallback(obj.callback.unlink, obj.expression));
      if(obj.callback.addDir != undefined)
          watcher.on('addDir', wrapCallback(obj.callback.addDir, obj.expression));
      if(obj.callback.unlinkDir != undefined)
          watcher.on('unlinkDir', wrapCallback(obj.callback.unlinkDir, obj.expression));
      if(obj.callback.error != undefined)
          watcher.on('error', wrapCallback(obj.callback.error, obj.expression));
      watchers.push(watcher);
  }
docs: **watch**  Function to start watching a file  _Parameters:_  * `file`: The file to watch * `expression`: A valid expression in the JavaScript Array form * `callback`: An object which can have the following named functions: * `add`: Called when a file is added * `change`: Called when a watched file is changed * `unlink`: Called when a watched file is removed from disk * `addDir`: Called when a watched directory is added to disk * `unlinkDir`: Called when a watched directory is removed from disk * `error`: Called when an error is encountered  Any function in the callback object takes a an argument `file` which is the file that has been changed/created/deleted.