add a widget implementation