           @context.moveTo value.x, value.y
           @isContextMoved = yes
 
-        @addPoint value.x, value.y
+        @addPoint value.x, value.y, value.nickname
 
     @stateRef.on "value", (snapshot) =>
-      if snapshot.val() is no
-        @isContextMoved  = no
+      @isContextMoved = no  if snapshot.val() is no
 
-  addPoint: (x, y) ->
-    ctx = @context
+    @usersRef.on "value", (snapshot) =>
+      value = snapshot.val()
+      return unless value
+      for key, userData of value
+        @userColors[userData.nickname] = userData.color
+
+
+  addPoint: (x, y, nickname = KD.nick()) ->
+    ctx             = @context
+    ctx.strokeStyle = @userColors[nickname]
     ctx.lineTo x, y
-    ctx.stroke()+    ctx.stroke()
+
+  setUserColor: () ->
+    nickname              = KD.nick()
+    color                 = KD.utils.getRandomHex()
+    @userColors[nickname] = color
+    @usersRef.push { nickname, color }

    @pointRef    = @workspaceRef.child "point"
    @linesRef    = @workspaceRef.child "lines"
    @stateRef    = @workspaceRef.child "state"

    @canvas      = new KDCustomHTMLView
      tagName    : "canvas"


      @addPoint x, y
      @drawedQueue.push "#{x},#{y}"
      @pointRef.set { x, y, nickname: KD.nick() }
      @stateRef.set yes

    @canvas.on "mouseup", (e) =>
