Added Shader abstract class