audio player refactoring