add file watch support