Components now use coroutines