refactor for audio