         }
     }
 
-    private function queueTimer (when :int) :void
+    private function enqueue (buddy :Buddy) :void
     {
-        // spawn a new buddy and toss it on the heap
-        _buddy = new Buddy(this, when);
+        _buddy = buddy;
         if (_heap.enqueue(_buddy)) {
             return;
         }

            return;
        }

        queueTimer(getTimer() + _delay);
    }

    public function stop () :void


        while (_heap.size > 0 && _heap.front.expiration <= now) {
            var buddy :Buddy = _heap.dequeue();
            if (buddy.budette != null) {
                buddy.budette.expire(buddy);
            }
        }
    }

