basic implementation of shader