updated to use a thread safe singleton to access and now uses a FileSystemWatcher to wait for changes