           return resolve eventNames
 
         eventric.eachSeries domainEvents, (domainEvent, next) =>
-          @_applyDomainEventToProjection domainEvent, projection
-          .then =>
-
+          @_applyDomainEventToProjection domainEvent, projection, =>
             @_domainEventsApplied[projectionId][domainEvent.id] = true
             next()
 

      resolve()


  _applyDomainEventToProjection: (domainEvent, projection) =>
    new Promise (resolve, reject) =>
      if !projection["handle#{domainEvent.name}"]
        @log.debug "Tried to apply DomainEvent '#{domainEvent.name}' to Projection without a matching handle method"
        return resolve()

      if projection["handle#{domainEvent.name}"].length == 2
        # done callback defined inside the handler
        projection["handle#{domainEvent.name}"] domainEvent, ->
          resolve()

      else
        # no callback defined inside the handler
        projection["handle#{domainEvent.name}"] domainEvent
        resolve()


  getInstance: (projectionId) ->

        if @_domainEventsApplied[projectionId][domainEvent.id]
          return done()

        @_applyDomainEventToProjection domainEvent, projection, =>
          @_domainEventsApplied[projectionId][domainEvent.id] = true
          context.publish "projection:#{projectionName}:changed",
            id: projectionId
