implementing Clone correctly on Shader