recursive watchservice