support embedded structs