docs: function watchFile( file )
          {
              // make sure file is at least something
              if ( !file || '' === file )
              {
                  return
              }
  
              // make sure it's a string
              file = file.toString()
  
              if ( watchers.hasOwnProperty( file ) )
              {
                  return // already exists
              }
  
              // watch it
              watchers[ file ] = chokidar.watch( file, { ignored:  /[\/\\]\./, persistent: true } )
  
              var that = this
  
              // setup event listeners
              watchers[ file ]
                  // listener for when the file has been removed
                  .on( 'unlink', function ( path )
                      {
                          that.opts.storageMethod.remove( path, function ( err )
                              {
                                  if ( err )
                                  {
                                      if ( that.opts.logging )
                                      {
                                          console.log( err )
                                      }
  
                                      return 
                                  }
  
                                  // success
                                  
                              }
                          )
                      }
                  )
  
                  // listener for when the file has been changed
                  .on( 'change', function ( path )
                      {
                          // add to main file processing queue
                          mainQueue.add( function ( mainDone )
                              {
                                  // attempt to read the file
                                  fs.readFile( path, function ( err, fileContents )
                                      {
                                          // notify nbqueue that the async function has finished,
                                          // regardless of success
                                          mainDone()
  
                                          // check for errors
                                          if ( err )
                                          {
                                              // see if LocalJson instance logging is enabled
                                              if ( that.opts.logging )
                                              {
                                                  console.log( err )
                                              }
  
                                              return 
                                          }
  
                                          var parsed = LocalJson.TryParse.call( that, JSON.parse, fileContents )
  
                                          // cache new json
                                          that.opts.storageMethod.set( path, parsed, function ( err )
                                              {
                                                  if ( err )
                                                  {
                                                      if ( that.opts.logging )
                                                      {
                                                          console.log( err )
                                                      }
  
                                                      return
                                                  }
  
                                                  // success
                                                  
                                              }
                                          )
                                      }
                                  )
                              }
                          )
                      }
                  )
          }