only handle pointers to structs