added sound and and refactor music