(#26) Extracted ViewModels from the Widgets

The Widgets are actually views, to make the ViewModels reuseable the ViewModels should not be embedded inside of the View.

Virtually this didn't had any affect, but to make clear that the ViewModel and View are really separated, they should be extracted.
updated package to prepare for release 4.0.0