support struct variant references