Basic player functionality implemented as Angular services