partial implementation of shader