Threading model uses coroutines