   #
   # This generalized mutation will insert or remove a single item.
   _generalized: (mutation) ->
-    mutation.levels.unshift new Level
-    mutation.levels[0].lock @, mutation, @rootAddress, @_rootLoaded
+    mutation.descend false
+    mutation.child.lock @, mutation, @_rootAddress, @_rootLoaded
 
   # Perform the root decision with only a read lock obtained.
   _rootLoaded: (mutation, root) ->
-    mutation.levels[0].tier = root
+    mutation.child.tier = root
     mutation.decisions.initial.call @, mutation
     @_tierDecision mutation
 

  # tiers with inner tier children then for penultimate inner tiers with leaf
  # tier children.
  _tierDecision: (mutation) ->
    if mutation.level[0].tier.penultimate
      @_testInnerTier mutation, mutation.decisions.penultimate, @_operate
    else
      @_testInnerTier mutation, mutation.decisions.subsequent, @_tierDescend

# Glossary:
#  * Descent - What we call an attempt to move from a parent node to a child
#              node in  the tree, which may be paused because it encounters a
#              lock on a tier.
class Mutation
  constructor: (@strata, @object, @fields, initial, subsequent, swap, penultimate, @callback) ->
    @decisions = { initial, subsequent, swap, penultimate }
    @parent = new Level
    @child = new Level
    @exclusive = []
    @plan = []

  # Descend the tree, optionally starting an exclusive descent. Once the descent
  # is exclusive, all subsequent descents are exclusive.
  descend: (exclusive) ->
    @plan.unshift { operations: [] }
    if @exclusive.length > 1
      @parent.release(strata)
    exclusive or= @exclusive.length > 0
    @parent = @child
    @child = new Level(exclusive)
    if exclusive
      @exclusive.release(strata)

class Level
  # Construct a new level. The `exclusive` pararameter determines how this level
