       do => @[key] = value
   # all the things whose center is within the radius of @ thing
   touching: ->
-    @universe.near @, @radius, 1
+    candidates = @cell.near @, @radius
+    @summary candidates
+    touching = @universe.near @, @radius, 1, {}, candidates
+    @summary touching
+    console.log ''
+    touching
+  summary: (others) ->
+    sum =
+      type: @typeName()
+      others: others.length
+      x: @x
+      y: @y
+      cell:
+        x: @cell.x
+        y: @cell.y
+    for t in @cell.inhabitants
+      tn = t.typeName()
+      sum.cell[tn] ||= 0
+      sum.cell[tn]++
+    for t in others
+      tn = t.typeName()
+      sum[tn] ||= 0
+      sum[tn]++
+    console.log sum
   margins: ->
     m = @marges ||= []
     return m if m.length

    @width = @canvas.width
    @height = @canvas.height
    @maxDim = Math.max @width, @height
    @things = []
    @geoPool = [ 0 ]
    @geoData = [ null ]
    @dotCache = {}
    @idBase = 0
    @tick   = 0
    @pause = options.pause || 0 
    @recalculateGeometries = if options.responsive then @responsiveRecalculate else @fastRecalculate
    @maxDistance = options.maxDistance || Math.round( Math.max( @width, @height ) / 3 )
    @callback = options.callback || ->
    dic = @defaults().initialCreatures
    ic = @options.initialCreatures || dic

    @running = true
    @go()
  thingsCreated: -> @idBase
  currentThings: -> @thingCount
  countThing: (type) ->
    count = 0
    @visitThings(
      (t) -> count++ if t instanceof type
      false, true
    )
    count
  plantCount: -> @countThing Plant
  animalCount: -> @countThing Animal
