trying to make some sense of couroutines :/