added callback to widgets to allow them to define their own accessors