IRenderer changed into an abstract class