Utility abstractions needed to implement widget-models.