the problem isn't that there's a promises/coroutines implementation