adding comments to Microphone.js as well as refactoring to be a little more organized