adapted refcounter, shader, and program