move back to non-async on_modified to fix sync