Playlist exercise fixes

First step towards a refactor -- moved this shared logic into the child view.