1. add this coroutine functions and test