   seek: (position) ->
     @position = Point.zero()
     @sourcePosition = Point.zero()
-    @transformDelegate.reset(@position, @sourcePosition)
+    @transformBuffer.reset(@position, @sourcePosition)
     return if position.isZero()
 
     until @position.compare(position) >= 0

  constructor: (@layer, sourceIterator) ->
    @position = Point.zero()
    @sourcePosition = Point.zero()
    @transformDelegate = new TransformDelegate(sourceIterator)

  next: ->
    unless @transformDelegate.bufferedOutputs.length > 0
      @layer.transform.operate(@transformDelegate)
    {@position, @sourcePosition, content} = @transformDelegate.bufferedOutputs.shift()
    if content is EOF
      {done: true}
    else


    overshoot = position.column - lastSourcePosition.column
    lastPosition.column += overshoot
    @transformBuffer.reset(lastPosition, position)
    @position = lastPosition
    @sourcePosition = position

