       # This is useful when the OPF file was remotely updated
       @_localAddedItems[model.id] = model
 
+    _save: =>
+      clearTimeout(@_savingTimeout)
+      @_savingTimeout = setTimeout (() =>
+        allContent.save(@navModel, false, true) # include-resources, include-new-files
+        delete @_savingTimeout
+      ), SAVE_DELAY
+        
 
     _loadComplex: (fetchPromise) ->
       fetchPromise

      @tocNodes.on 'tree:add',    (model, collection, options) => @tocNodes.add model, options
      @tocNodes.on 'tree:remove', (model, collection, options) => @tocNodes.remove model, options

      @getChildren().on 'add remove tree:change tree:add tree:remove', (model, collection, options) =>
        setNavModel(options)
      @getChildren().on 'change reset', (collection, options) =>

          if not _.isEmpty _.omit model.changedAttributes(), ['_isDirty', '_hasRemoteChanges', '_original', 'dateLastModifiedUTC']
            # Delay the save a little bit because a move is a remove + add
            # which would otherwise cause 2 saves
            @_save()


    _parseNavModel: () ->
