Cool. It might be a good idea to build `WidgetRow` and `WidgetContainer` instances once at setup time and avoid all the unnecessary extra work on every page load. Then again, I've just realised that this doesn't happen for individual widget data requests so it isn't actually all that important.