@jobara as for the model being altered, i think that the actual model used in UIO is not altered, since subsequent calls of this are fed with the full, non-altered model Object. Looks like a copy of the model is passed to the set function somewhere inside the mechanics of UIO. So, it's working fine this way. Do you think we can avoid the overhead of creating a new copy here? Will it be safe?