     public function ExpiringSet (ttl :Number)
     {
         _ttl = Math.round(ttl * 1000);
+        _timer = new Timer(_ttl, 1);
+        _timer.addEventListener(TimerEvent.TIMER, checkTimer);
     }
 
     /**

    protected /* final */ var _ttl :int;

    /** Array of ExpiringElement instances, sorted by expiration time. */
    protected var _data :Array = new Array();

    protected var _timer :Timer;
}

    }

    // from Set
    public function isEmpty () :Boolean
    {
        return size() == 0;
    }

    // from Set
    public function contains (o :Object) :Boolean
    {
        return _data.some(function (e :ExpiringElement, ... ignored) :Boolean {
            return e.objectEquals(o);
        });
    }
    
    /**
