       collection = []
       collection.$meta =
         model: @
-        deferred: $q.defer()
-        deferred_direct: $q.defer()
-      collection.$promise = collection.$meta.deferred.promise
-      collection.$promiseDirect = collection.$meta.deferred_direct.promise
+        async:
+          direct:
+            deferred: $q.defer()
+            resolved: false
+          complete:
+            deferred: $q.defer()
+            resolved: false
+      collection.$promise = collection.$meta.async.complete.deferred.promise
+      collection.$promiseDirect = collection.$meta.async.direct.deferred.promise
       collection.$getItemsPromises = ->
         (instance.$promise for instance in collection)
       collection.$getItemsPromiseDirects = ->

        $q.all collection.$getItemsPromises()
      collection.$_getPromiseDirectForItems = ->
        $q.all collection.$getItemsPromiseDirects()
      collection

    @_MakeInstanceFromRemote: (data) ->

            refs_promises.push record.$promise
          instance[fieldName] = refs_collection
          promises.push refs_collection.$promise
          refs_collection.$finalize()
        else
          instance[fieldName] = []
      promises = []
