- generate sprite state data - create animation loop - implement animation logic - implement control to switch different animation - use rxjs for handling chenge select