   increaseConnections: ->
     if @connectionCount is 0
       # First connection opened, execution has now started
-      return if @hasStarted
-      @emit 'start',
-        start: @startupDate
-      @hasStarted = true
-      @hasStopped = false
+      @setStarted true
     @connectionCount++
-  decreaseConnections: ->
+  decreaseConnections: _.debounce =>
     @connectionCount--
     # Last connection closed, execution has now ended
     if @connectionCount is 0
-      ender = _.debounce =>
-        return if @connectionCount
-        return if @hasStopped
-        @emit 'end',
-          start: @startupDate
-          end: new Date
-          uptime: @uptime()
-        @hasStarted = false
-        @hasStopped = true
-      , 100
-      do ender
+      @setStarted false
+  , 10
 
   # ## Loading components
   #

    # Tell processes to shut down
    for id, process of @processes
      process.component.shutdown()
    @started = false
    setTimeout =>
      return if @hasStopped
      @emit 'end',
        start: @startupDate
        end: new Date
        uptime: @uptime()
      @hasStarted = false
      @hasStopped = true
    , 50

  getDebug: () ->
    @debug

        @started = true
        @sendDefaults (err) =>
          return callback err if err
          @setStarted true
          callback null

  stop: ->
