check for changes recursively