           #   d: Data for id metric
           #   record: Record
           #   asset: Asset
-
-          constructor: (el) ->
-            return unless el && (i = el.id) && (i = stripPrefix(i, ID+'-'))
+          #   v: Data value
+
+          constructor: (@cell) ->
+            return unless cell && (i = cell.id) && (i = stripPrefix(i, ID+'-'))
             s = i.split '_'
             return if s.length > 1 && isNaN(@i = parseInt(s[1], 10))
             @id = i

            n = 0
          for mi in [0..l-1] by 1
            m = (info.metric = ms[mi]).id
            v = r[m][n] && r[m][n][info.i]
            info.id = b + (info.cols.start+mi)
            cell = generateCell(info, v, info.metric.assumed)
            if v != null
              ri = 'ss-rec_' + r.id[n][info.i]
              cell.classList.add(ri)
              cell.classList.add(ri + '_' + m)
          return

        #generateAsset = (row, i, n) ->

            r.find((o) -> o.default)?.run(cell) if Array.isArray(r)
            return

          saveDatum(info, value)
          #switch info.t
          #  when 'name', 'date', 'release'
          #    saveSlot(cell, info, value)
          #  when 'rec'
          #    saveMeasure(cell, info.record, info.metric, value)
          #  when 'asset'
          #    saveAsset(cell, info, value)

        editScope = $scope.$new(true)
        editScope.constants = constants
