Changed program creation to reflectively generate uniforms and locations