       recur -> step(Sequence.conj(0, -> q),
                     Sequence.conj(t.first(), -> h), t.rest())
     else
-      cleanup q
+      [cleanup(q), h && div(h, Sequence.conj(scale))]
 
   resolve step(null, null, r_.reverse())
+
+div = (r, s) -> divmod(r, s)[0]
+
+mod = (r, s) -> divmod(r, s)[1]
 
 pow = (r, s) ->
   step = (p, r, s) ->

      r
  step null, a, b

div = (r, s) ->
  f = Math.floor BASE / (s.last() + 1)
  [r_, s_] = (Sequence.stored seqTimesDigit(x, f) for x in [r, s])
  [m, d] = [s_.size(), s_.last() + 1]

  step = (q, h, t) ->

  create = (digits, sign) ->
    n = new LongInt()
    n.digits__ = Sequence.stored digits
    n.sign__   = sign
    n

  convert = (x) ->
