Move playback logic to PlayState class