Perfect, thanks a lot for the details
I was wrestling with similar questions a while back. Seems like there a very common need for a companion library that deals with this kind of stuff.