playlist refactored