make shaders an argument