I'm confused why these had to be changed to local vars.  Even if the callback-array thing above goes away and concurrent calls are allowed, isn't the interval between these being initialized and these getting their final values completely synchronous?  No one else should see any inconsistent state of them...