Hi,   I am supporting a large "legacy" application and it uses a lot of global variables especially Array of records that are used by different methods.  Recently I moved all the methods into a TThread class and implemented properties with "getters" and "setters" to make certain information available to the Main Form thread.  However, there is still the problem of global variables that I need to address in a clean way.  These global variables are NOT accessed outside the Thread class right now using the global variables as class members but they are still technically global.  .   How can I get access to these global variables without them being global.  The application just works as it,  but I would like to start refactoring the application.   Is there  basic hierarchy using classes and sub classes I should consider?   Thanks.