No more coroutines :)

Passing around explicit state instead.