     with_grid cols: 6, rows: 5
     , cell_width: 80
     , cell_height: 80 + 40
+    , header_height: 40
     , (grid) ->
-      intervals = [3, 4, 7]
-      intervals = intervals.concat (12 - interval for interval in intervals)
-      intervals = intervals.concat _.chain(Intervals).keys().map(Number).without(intervals...).value()
-      for semitones in intervals
-        continue if semitones == 0
-        interval_name = Intervals[semitones]
-        grid.add_cell ->
-          draw_text interval_name
-          , font: '12px Times', fillStyle: 'black'
-          , x: 80 / 2, gravity: 'center'
-          draw_interval_classes_on_harmonic_table r, [semitones]
+      intervals = [7, 4, 3, 2, 1]
+      interval_sets = [intervals]
+      interval_sets.push (12 - interval for interval in intervals)
+      interval_sets[1].push 6
+      for intervals in interval_sets
+        grid.start_row()
+        for semitones in intervals
+          continue if semitones == 0
+          interval_name = Intervals[semitones]
+          grid.add_cell ->
+            draw_text interval_name
+            , font: '12px Times', fillStyle: 'black'
+            , x: 80 / 2, gravity: 'center'
+            draw_interval_classes_on_harmonic_table r, [semitones]
 
       grid.start_row()
       for chord in Chords

    6: 'purple'

  with_graphics_context (ctx) ->
    ctx.translate r * 2, r * 2
    for interval_klass in interval_classes
      continue if interval_klass == 0
      color = colors[interval_klass]
      color ||= colors[12 - interval_klass]
      vectors = interval_class_vectors interval_klass
      dy = vectors.P5 + (vectors.M3 + vectors.m3) / 2
      dx = vectors.M3 - vectors.m3
      x = dx * r
      y = -dy * r
      ctx.beginPath()
      ctx.moveTo 0, 0
      ctx.lineTo x, y
      ctx.lineWidth = (if vectors.sign == 1 then 3 else 1)
      ctx.strokeStyle = color
      ctx.stroke()
      ctx.beginPath()
      ctx.arc x, y, 2, 0, 2 * Math.PI, false
      ctx.fillStyle = color

  intervals

draw_interval_classes_on_harmonic_table = (r, interval_classes) ->
  interval_classes = [0].concat interval_classes unless 0 in interval_classes
  hex_radius = r / 2
  colors =
    1: 'gray'
    2: 'yellow'
