Refactored StructuredArray to support creation of component types that have a factory.