with file watching