     super selector
     @opts.displayFormat = ',.03f'
 
-  start: =>
-    super
-    # Assign a selected key so the tool renders immediately.
-    @statKey = _.last(@opts.selectedKeys) or 'uid'
-    @statData = _.pluck @opts.data, @statKey
-
-    @count = @statData.length
-    @sum = _.foldl @statData, ((memo, num) -> memo + num), 0
-
-    @createList()
-    @createStats()
-    @displayStats()
+  events: 
+    'selector' : 'createList'
+    'data keys-selection' : 'displayStats'
 
   createList: =>
     @wrapper = @opts.selector.append('div')

    @ul = @wrapper.append('ul')
      .attr('class', 'statistics')

  createStats: =>
    @statistics = new Array
    @statistics.push [stat, @[stat]()] for stat in ['mean', 'median', 'mode', 'min', 'max', 'variance', 'standardDeviation', 'skew', 'kurtosis']

  displayStats: => 
    @ul.selectAll('li').remove()

    @title.text(@unitsFormatter(@formatKey(@statKey)))

      .enter().append('li')
      .attr('data-stat', (d) -> d[0])
      .html((d) => 
        stat = @[d]()
        if isNaN(d[1]) or d[1] is Infinity
          "<label>#{@formatKey(d[0])}:</label> <span>&nbsp</span>"
        else
