       wrapper = @_wrapper
       unless wrapper
         wrapper = new LineWrapper(this, options)
-        wrapper.on 'line', @_line.bind(this)
+        wrapper.on 'line', lineCallback
         
       @_wrapper = if options.continued then wrapper else null
       @_textOptions = if options.continued then options else null

    @y -= @currentLineHeight(true) * lines + @_lineGap
    return this
    
  text: (text, x, y, options) ->
    options = @_initOptions(x, y, options)
    
    # Convert text to a string

      
    # render paragraphs as single lines
    else
      lineCallback line, options for line in text.split '\n'
    
    return this
    
  text: (text, x, y, options) ->
    @_text text, x, y, options, @_line.bind(this)
    
  widthOfString: (string, options = {}) ->
    @_font.widthOfString(string, @_fontSize) + (options.characterSpacing or 0) * (string.length - 1)
    
  heightOfString: (text, options) ->
    {x,y} = this
    lineGap = options.lineGap or @_lineGap or 0
    
    @_text text, 0, 0, options, (line, options) =>
      @y += @currentLineHeight(true) + lineGap
      
    height = @y # we started at y=0
    @x = x
    @y = y
    
    return height      
    
  list: (list, x, y, options, wrapper) ->
    options = @_initOptions(x, y, options)
