@amb26  and I spoke about how to address this today. The suggested approach is to use event driven dynamic components. On the initial creation of the parent component we'll loop through the model array and fire the event for each captions object found. We'll either need a pair of events, or to order the operation so that we inject the appropriate markup fragment into the DOM ahead of the dynamic component being instantiated. 

To support deletion we'll need to have each of the dynamic components fire an event on it's instantiation to let the parent know what piece of the model it refers to and a reference back to itself so that the destroy method can be called on it. Note that if we remove items from the model's array of caption objects we'll need to update the references to all of the dynamic components as well. Maybe this can be simplified by having parallel arrays so that we can just remove the same location in both arrays.