added more functions to Shader and Texture