title: What is point of emitChange, addChangeListener, and removeChangeListener in flux
body: <p>In the Flux examples, all the Store classes have functions for <code>emitChange</code>, <code>addChangeListener</code>, and <code>removeChangeListener</code>. They are the same in all the examples, eg:</p>
  
  <p><a href="https://github.com/facebook/flux/blob/master/examples/flux-chat/js/stores/ThreadStore.js" rel="nofollow">https://github.com/facebook/flux/blob/master/examples/flux-chat/js/stores/ThreadStore.js</a></p>
  
  <p>and</p>
  
  <p><a href="https://github.com/facebook/flux/blob/master/examples/flux-todomvc/js/stores/TodoStore.js" rel="nofollow">https://github.com/facebook/flux/blob/master/examples/flux-todomvc/js/stores/TodoStore.js</a></p>
  
  <p>If they are the same, why doesn't the library provide some common code? Why have this boilerplate?</p>