WIP: rework widget/dataSource and add widget dialog