redesign the soundDecider(); and make it more robust