Changed the loadShader function to support all types of shaders, needs testing