abstract fun onChange(newValue: T): Unit
This method is called when value changes. New value is guaranteed to be not equal to the old value.