     @status = "not started"
 
   run: ->
+    @emit "healthCheckStarted"
     @status = "waiting"
     @startTime = Date.now()
     @setPingTimeout()

    @startTime = null

  getResponseTime: ->
    if @status is "success" then @finishTime - @startTime else ""
    , 5000

  finish: (data)->
    # some services (e.g. kite controller) does return callback with error parameter
    # hence we are having
    unless @status is "down"
      @status = "success"
      @finishTime = Date.now()
      clearTimeout @pingTimeout
      @pingTimeout = null
      @emit "healthCheckCompleted"

  reset: ->
    @status = "waiting"
