this is dangerously close to supporting coroutines, but probably a good idea
this is dangerously close to supporting coroutines, but probably a good idea