Hi,
Go with the usual: single responsibility. If a widget shall handle a particular aspect then keep it separated with a clean API so can also make it testable.
For the models, it will highly depend on what you want to access and how you need to interact with it.