playlist functionality mostly done