starting to implement a Widgets API
extracted widget admin UI
more work on Widgets API
correctly set the widget ID. delegate to the widget type