 
     new KDNotificationView options
 
-  setPresenceHandlers: ->
-    @userRef = @usersRef.child @nickname
-
-    @timestampInterval = @utils.repeat 1000, =>
-      @userRef.child("timestamp").set new Date().getTime(), (err) =>
-        return  unless err
-        @utils.killRepeat interval
-
-    @pingHostInterval = @utils.repeat 2000, @bound "pingHost"  unless @amIHost()
+  setPresenceHandler: ->
+    if @amIHost()
+      @presenceInterval = @utils.repeat 10000, =>
+        @userRef.child("timestamp").set Date.now(), (err) =>
+          return  unless err
+          @utils.killRepeat @presenceInterval
+    else
+      @presenceInterval = @utils.repeat 10000, @bound "pingHost"
 
     @once "KDObjectWillBeDestroyed", =>
-      @killConnectionTimers()
+      @killPresenceTimer()
 
   checkHost: (snapshot, callback) ->
-    unless host = snapshot.val()
-      @showNotActiveView()
-      @killConnectionTimers()
-      return
-
-    diff = new Date().getTime() - host.timestamp
-
-    if diff <= 5000
+    host = snapshot.val()
+    return @showNotActiveView()  unless host
+
+    diff = Date.now() - host.timestamp
+
+    if diff <= 15000
       @hideNotification()
       @hostStatus = "online"
-    else if diff >= 20000
+    else if diff >= 30000
       @hideNotification()
       @showNotActiveView()
       @hostStatus = "offline"
-    else if diff >= 5000
+    else if diff >= 15000
       @showNotification "Host is experiencing connectivity issues"
       @hostStatus = "unknown"
 


    @userRef.child("status").onDisconnect().set "offline"

  fetchUsers: ->
    @workspaceRef.once "value", (snapshot) =>
      val = snapshot.val()

    @usersRef.child(@getHost()).once "value", (snapshot) =>
      @checkHost snapshot, callback

  killPresenceTimer: ->
    @utils.killRepeat @presenceInterval

  showNotification: (message) ->
    return if @notification

    @hideNotification()
    @notification = new KDNotificationView
      title       : message
