slight rejig to prepare for fixing array generation
added support for reusing models as a part of another model