After seeing your usage, you may want to review the purpose of the Variables and look at creating a Struct for certain variables.
Abstracting the Logic into Focused Concerns will isolate the variables into its Object but some variables I can see as being passed around (per say) and so may be beneficial to store it outside of any Object and pull those relevant values when needed.
I have created methods/functions that use variables passed by value to help alleviate the excessive use of certain variables and allow them to be used when they are needed.
Refer #13
After seeing your usage, you may want to review the purpose of the Variables and look at creating a Struct for certain variables.
Abstracting the Logic into Focused Concerns will isolate the variables into its Object but some variables I can see as being passed around (per say) and so may be beneficial to store it outside of any Object and pull those relevant values when needed.