added caching code for playlist data to reduce calls to server