I Have made the separation of responsibilities of service and viewmodel.