do some refactor, add joshua win-lose sound