renamed renderer and now inherits from abstractclass