this is quite inelegant, since we are just computing changes as this point. the issue is that anything than a ``remove + add`` will be quite messy (how to figure out what to remove, how to handle children of the child, does it make sense to retain the uuid? etc). however we always first insert and then remove, but i guess the proper way to would to delay the remove until we actually execute the insert but this will require quite a bit of code.