async def METHOD_NAME() -> None:
    loop_counter = 0
    while True:
        loop_counter = (loop_counter + 1) % 20
        updated_files = self.update_watched_files(reindex=(loop_counter == 0))
        if updated_files:
            added = updated_files.get("added") or []
            removed = updated_files.get("removed") or []
            updated = updated_files.get("updated") or []
            if removed and not added and not updated:
                logging.getLogger("tomodachi.watcher").warning(
                    "removed files", removed_files=[f"./{file}" for file in removed]
                )
            elif added and not removed and not updated:
                logging.getLogger("tomodachi.watcher").warning(
                    "added files", added_files=[f"./{file}" for file in added]
                )
            elif updated and not removed and not added:
                logging.getLogger("tomodachi.watcher").warning(
                    "updated files", updated_files=[f"./{file}" for file in updated]
                )
            else:
                logging.getLogger("tomodachi.watcher").warning(
                    "modified files or filepaths",
                    updated_files=[f"./{file}" for file in updated] if updated else Ellipsis,
                    added_files=[f"./{file}" for file in added] if added else Ellipsis,
                    removed_files=[f"./{file}" for file in removed] if removed else Ellipsis,
                )
            if callback_func:
                await callback_func(set([file for file in added] + [file for file in updated]))
        await asyncio.sleep(0.5)