Coroutines

Changed "CoroutineState" to the more descriptive "Interval"
Added TaskInterval
Coroutines

Refactored coroutines from inheritance to composition