seems that latest version of GLM is more picky about types
hacking, now have first pass at a shader program object