       else if mediaType
         config = model
         throw 'BUG: Media type not registered' if not MEDIA_TYPES.get mediaType
-        uuid = b = (a) ->
-          (if a then (a ^ Math.random() * 16 >> a / 4).toString(16) else ([1e7] + -1e3 + -4e3 + -8e3 + -1e11).replace(/[018]/g, b))
-        config.id = uuid() if not config.id
 
         # Create the model from a config and add it to the manifest
         ContentType = MEDIA_TYPES.get(mediaType).constructor

      @manifest.on 'add',   (model, collection) -> ALL_CONTENT.add model
      @manifest.on 'reset', (model, collection) -> ALL_CONTENT.add model

      @manifest.on 'change:title', (model, newValue, oldValue) =>
        navTree = JSON.parse @get('navTreeStr')
        # Find the node that has an `id` to this model


  # Custom Models defined above are mixed in using `BaseContent.initialize`
  BaseContent = Backbone.Model.extend
    # New content is given an id before it is saved so it can be added to a book
    isNew = -> not @id or @id.match(/^_NEW:/)
    initialize: ->
      throw 'BUG: No mediaType set' if not @mediaType
      throw 'BUG: No mediaType not registered' if not MEDIA_TYPES.get @mediaType
      @id = "_NEW:#{@cid}" if not @id

  # This gets used by `DeferrableCollection` but is instantiated afterwards
  ALL_CONTENT = null
