@edvin i was looking over the other two examples. it seems like they're going the cache route where a model key points to a fragment
I know this is can be an explosion in RAM for a 1000000 item agenda, but it keeps the binding straight
But if binding isn't important, another design might just attach functions to all the controls and let a getUserData() provide an integer key that operates on the model and updates the controls