Improved visibility macros so everything can be exposed to the unit testing framework