added change detection