Further work on Shader class