     , 5000
 
   finish: (data)->
-    @status = "success"
-    @finishTime = Date.now()
-    clearTimeout @pingTimeout
-    @pingTimeout = null
-    @emit "healthCheckCompleted"
+    # 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"

    @status = "not started"

  run: ->
    @status = "waiting"
    @startTime = Date.now()
    @setPingTimeout()

    @startTime = null

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