simple component w/ event listener/props/state functional
* element you select to render a component gets eaten up by React
* the purpose this.props is to store data that was passed into the
component. considered immmutable
* state => hash of attributes on the component. any time you call
setState(), React triggers render() to keep DOM in sync
resolve promise in node using Q library
* Resolution: A promise is resolved when it makes progress toward
fulfillment or rejection. A promise can only be resolved once, and it
can be resolved with a promise instead of a fulfillment or rejection.