actually working file tree watching library