port onchanges to API 8.0 to fix #22