widgets send widget.id to data source refactoring