updated ViewModels to use post-processing logic instead of pre-processing validations situationally