Re-implementing conversion using Coroutine (in-progress)