This method can be rewritten using `then` in stead of having to instantiate a whole new `deferred` object:

    load: ->
      return this if @loading or @state() is 'resolved'
      @loading = true
      @always => @loading = false

      ...

      @book.getSMIL(file)
      .then (document) =>
        @document = document
        return this
      .fail =>
        log.error "Section: Failed ..."