use new concurrency feature of viewmodel