added UnionType and StructProperty