added shaders functions