Add widget model
Add widget collection
Move work with widgets to separate files