     @maxDim = Math.max @width, @height
     @things = []
     @dotCache = {}
-    @thingMap = {}
     @idBase = 0
     @tick   = 0
     @pause = options.pause || 0 

      if t.id == thing.id
        @things.splice i, 1
        break
    delete @thingMap[thing.id]
    for k, t of @thingMap
      delete t.others[thing.id]
  # moves a thing based on that things velocity, handling reflection off
  # the edges of the universe

  addThing: (thing) ->
    thing.id = @idBase += 1
    animal = thing instanceof Animal
    for t in @things
      @trig thing, t if animal || t instanceof Animal
    @things.push thing
  # do all recalculations without yielding any time to browser events
  fastRecalculate: ->
    fresh = []
    setTimeout(
      =>
        for t in @things
          animal = t instanceof Animal
          for other in fresh
            @trig t, other if animal || other instanceof Animal
          fresh.push t
        @things = fresh
        @afterGeometry()
