started fleshing out ShaderProgram class