coroutine fixes all around