     )
   # yield frequently to the browser while recalculating events
   responsiveRecalculate: ->
-    map = @thingMap = {}
     fresh = []
     nextThing = =>
       if @things.length
         t = @things.shift()
         animal = t instanceof Animal
-        m = map[t.id] = thing: t, others: {}
         for other in fresh
-          @trig t, other, m if animal || other instanceof Animal
+          @trig t, other if animal || other instanceof Animal
         fresh.push t
         setTimeout nextThing, 0
       else

    now
  # the steps involved in one go of the universe's clock
  go: ->
    @tick += 1
    self = @
    self.move()
    setTimeout(
      -> self.recalculateGeometries()
      0
    )
  afterGeometry: ->
    self = @
    self.die()

          for other in t.touching()
            t.eat other if other instanceof Herbivore
      @remThing t if t instanceof Animal && t.hp <= 0
    @dead = true
    for t in @things
      if t instanceof Organism
        @dead = false
        break
  # paint a moment in time
  draw: ->
    @erase()
