Fixing bugs
Use a metaclass for creating coroutines.