first spike of a generic file watcher API so we can more easily watch for file changes and be notified of events or process them