As discussed, this should be a separate "backend" object that provides data in a format that the widgets can understand rather than part of the widget hierarchy.