added self referencing for array types