mvvm: Interaction tier architecture
Merge branch 'enhancement/mvvm' into next