Animation System

The Animation system provides helper methods for executing time based actions.

Note: consider an alternative implementation using yield functions.