modulize shaders by functions