add a widgetBuilder to allow optimisation