function SideComments( el, currentUser, existingComments ) {
  this.$el = $(el);
  this.$body = $('body');
  this.eventPipe = new Emitter;

  this.currentUser = _.clone(currentUser) || null;
  this.existingComments = _.cloneDeep(existingComments) || [];
  this.sections = [];
  this.activeSection = null;

  // Event bindings
  this.eventPipe.on('showComments', _.bind(this.showComments, this));
  this.eventPipe.on('hideComments', _.bind(this.hideComments, this));
  this.eventPipe.on('sectionSelected', _.bind(this.sectionSelected, this));
  this.eventPipe.on('sectionDeselected', _.bind(this.sectionDeselected, this));
  this.eventPipe.on('commentPosted', _.bind(this.commentPosted, this));
  this.eventPipe.on('commentDeleted', _.bind(this.commentDeleted, this));
  this.eventPipe.on('addCommentAttempted', _.bind(this.addCommentAttempted, this));
  this.$body.on('click', _.bind(this.bodyClick, this));
  this.initialize(this.existingComments);
}
Creates a new SideComments instance.
@param {Object} el               The selector for the element for
                                 which side comments need to be initialized
@param {Object} currentUser      An object defining the current user. Used
                                 for posting new comments and deciding
                                 whether existing ones can be deleted
                                 or not.
@param {Array} existingComments An array of existing comments, in
                                the proper structure.

TODO: **GIVE EXAMPLE OF STRUCTURE HERE***