     @_initializeStores()
     .then =>
       @log.debug "[#{@name}] Finished initializing Store"
-      @_di =
-        $query: => @query.apply @, arguments
-        $projectionStore: => @getProjectionStore.apply @, arguments
-        $emitDomainEvent: => @emitDomainEvent.apply @, arguments
-
-    .then =>
       @log.debug "[#{@name}] Initializing Projections"
       @_initializeProjections()
     .then =>



  subscribeToAllDomainEvents: (handlerFn) ->
    domainEventHandler = () => handlerFn.apply @_di, arguments
    @_eventBus.subscribeToAllDomainEvents domainEventHandler


  subscribeToDomainEvent: (domainEventName, handlerFn) ->
    domainEventHandler = () => handlerFn.apply @_di, arguments
    @_eventBus.subscribeToDomainEvent domainEventName, domainEventHandler



    @_isInitialized = false
    @_isDestroyed = false
    @_params = @_eventric.get()
    @_di =
      $query: => @query.apply @, arguments
      $projectionStore: => @getProjectionStore.apply @, arguments
      $emitDomainEvent: => @emitDomainEvent.apply @, arguments
    @_aggregateClasses = {}
    @_commandHandlers = {}
    @_queryHandlers = {}
