         ctx.arc(@sx[i], @sy[i], @radius[i], 0, 2*Math.PI, false)
 
         if glyph_props.fill_properties.do_fill
-          glyph_props.fill_properties.set(ctx, @data[i])
+          #FIXME: vectorize this later
+          glyph_props.fill_properties.set(ctx, @data2[i])
           ctx.fill()
 
         if glyph_props.line_properties.do_stroke
-          glyph_props.line_properties.set(ctx, @data[i])
+          #FIXME: vectorize this later
+          glyph_props.line_properties.set(ctx, @data2[i])
           ctx.stroke()
 
     select: (xscreenbounds, yscreenbounds) ->

      oh = @plot_view.view_state.get('outer_height')

      if @have_new_data or have_new_mapper_state
        @radius = @distance(@data, 'x', 'radius', 'edge')
        @have_new_data = false

      ow = @plot_view.view_state.get('outer_width')
      oh = @plot_view.view_state.get('outer_height')
      for i in [0..@mask.length-1]
        if (@sx[i]+@radius[i]) < 0 or (@sx[i]-@radius[i]) > ow or (@sy[i]+@radius[i]) < 0 or (@sy[i]-@radius[i]) > oh
          @mask[i] = false

      )
      return glyph_props


    set_data: (request_render=true) ->
      source = @mget_obj('data_source')
      if source.type == 'ColumnDataSource'
        @x = @source_v_select('x', @glyph_props, source)
        @y = @source_v_select('y', @glyph_props, source)
        @mask = new Uint8Array(@x.length)
        @selected_mask = new Uint8Array(@x.length)
        for i in [0..@mask.length-1]
          @mask[i] = true
          @selected_mask[i] = false
        @have_new_data = true
        @data2 = source.datapoints()
  
      if request_render
        @request_render()
