Seems like you don't store anything in here except `TemplateInstances*` - why use `Voids` and casting?