this is a problem. if you create a new instance of the component on every call to render the template, it looses the previous state, which means that it will render the whole thing rather that updating the bits, that's why I ended up doing the wrapping around.