not-yet-so-fully-working ShaderProgram