new ctor for shader