move shaders into their own class