WidgetRenderer: abstract class, introduced to avoid duplicated code