Creating View Model Data in Model

Creating view model data within the data layer is very-strong code smell. Model data layer shouldn't know anything of view model.

ViewModel is a higher level of abstraction.

Same as ViewModel shouldn't use View model constructs. Since if any View model constructs are used within ViewModel then the View cannot be swapped out.