Extract out playlist logic into own class