I'm thinking that since the memory_kind is not actually holding a pointer, but we've instead gone the route of modifying the pointers upstream, that target_tp isn't a good name for this type. Maybe m_data_tp or something similar is better.