[IMP] Improve on_change behavior