Refactor change detection

WIP
group is the old name, either `disableChild` or `disableRange`, same with `enable`.