Refactoring playback. Also broken everything.