Generalize and document Shader