basic playback logic in place