feat(ChangeDetector): unified architecture