on_changed
callback has a reference to the element it needs to change -> oops the element was cloned and the parameter that was used to create it, is actually meaning less.on_change
handler on the parent (batch/array) even if it makes more sense, design wise to do it at a row level (as the rows represent objects, so interacting with UIElements in one row will basically change the status of the object represented by the row)