Help with VEX code format and organization

I’ve been trying to find a good way to organize my code into different files, but in doing so the code ended up looking like a mess and causing a bunch of different limitations. For example, I can’t create sensors in my drive.cpp file because the Brain is defined in the main and I can’t use directly access the controller from files outside of my main. I know Java but I’m pretty new to C++, if anyone has any ideas on how to better organize the code, please let me know. Also, any general suggestions are also welcome and appreciated. I uploaded the code to GitHub which I’ll link here (I think you should be able to access it now). Thanks and I apologize in advance for all the eyes of experienced C++ people.