calling clear in the remove method has always been weird to me... I checked the manual: clear is just for slots (clearing out all elements like an array) whereas remove is for single elements.

Everyone ok with changing clear on the backend to remove? 

We don't even need clear semantics there as the DSL takes care of calling remove on every child