I mean, it's probably not a big deal if you abstract this away (so that clients don't know it's stored as two separate arrays), and have a small api that clearly maintains the invariant. But with the amount of code accessing this, I'm not really confident that there are no codepaths which violate the invariant.