first pass on shaders