sync with content changes