with dynamic types, this may end up being an explicit creation when the type is added, which may be required before adding instances, i.e. that code might go away