         reset();
     }
 
+    /** The total number of times the timer has fired since it started at zero. */
     public function get currentCount () :int
     {
         return _currentCount;
     }
 
+    /** The delay, in milliseconds, between timer events. */
     public function get delay () :Number
     {
         return _delay;
     }
 
+    /** The delay, in milliseconds, between timer events. */
     public function set delay (value :Number) :void
     {
         _delay = value;

        scheduleBuddy(new Buddy(this));
    }

    public function stop () :void
    {
        // cut any current enqueued buddy adrift

            start();
        }
    }
 
    /** The total number of times the timer is set to run. */
    public function get repeatCount () :int
    {
        return _repeatCount;
    }

    /** The total number of times the timer is set to run. */
    public function set repeatCount (count :int) :void
    {
        _repeatCount = count;
        if (_repeatCount > 0 && _repeatCount < _currentCount) {
            stop();
        }
    }

    /** The timer's current state; true if the timer is running, otherwise false. */
    public function get running () :Boolean
    {
        return _buddy != null;
    }

    /**
     * Starts the timer, if it is not already running.
     */
    public function start () :void
    {
        if (_buddy != null) {
