view model (need for entity component)