   constructor: ->
     @models = {}
     @collections = {}
+    @schemas = {}
     _.extend(@, Backbone.Events)
 
   populateModel: (model) ->

    @removeEventsFromModel(model)

  modelLoaded: (model) ->
    schema = model.schema()
    return schema.once('sync', => @modelLoaded(model)) unless schema.loaded
    refs = model.getReferencedModels(model.attributes, schema.attributes, '/', @shouldLoadProjection)
    refs = [] unless @mustPopulate is model or @shouldPopulate(model)
#    console.log 'Loaded', model.get('name')

    total = 0
    loaded = 0

    for model in _.values @models
      total += 1
      loaded += 1 if model.loaded
    for schema in _.values @schemas
      total += 1
      loaded += 1 if schema.loaded

    return 1.0 unless total
    return loaded / total
