work with shaders (not tested shaders)