added WidgetBuilder<T> and registration helper methods