playlist interface and impl code revisited for optimization