added infinite looping and volume control