Stores indexed reference to a instance data struct. The instance data structs may be relocated when the instance data composition changed. For that reason you cannot store pointers to the instance data. This is often needed for example when dealing with delegate lambda's. This helper struct stores the instance data as index to the instance data array. That way we can access the instance data even of the array changes.