VirtualProgram: add a getShaders method
VirtualProgram: Make internal functions protected to prevent shinanigans.