Create a more abstract notion of a widget
Add bindings for widgets