add change detection