tweaks to the shaderprogram class