primitive structs