writing correct daemonwatcher is hard.