misc updates. some protocol flow infra using coroutines