Coroutines simplify + fix error handling