Refactor playback calculations into their own class