>One of the "several things I could do differently"
There is really no need to change this in hundreds of functions - just in the few where you actually change data through private variables. Pressumably the program was already working, so there should be just a few specific instances where you need to exchange additional information.
Note that you can also declare a private variable, or several, in the calling program - this one will be available in the called program.
Difference in opinions hath cost many millions of lives: for instance, whether flesh be bread, or bread be flesh; whether whistling be a vice or a virtue; whether it be better to kiss a post, or throw it into the fire... (from Gulliver's Travels)