chapter 3 - multiple shaders added