 			// remove the callback if it was previously added
 			removeCallback(callback);
 			
-			var entry:CallbackEntry = new CallbackEntry();
-			_callbackEntries.push(entry);
-			entry.context = relevantContext;
-			entry.callback = callback;
-			entry.recursionLimit = 0;
+			var entry:CallbackEntry = new CallbackEntry(relevantContext, callback);
 			if (alwaysCallLast)
 				entry.schedule = 1;
-			
-			if (debug)
-				entry.addCallback_stackTrace = new Error(STACK_TRACE_ADD).getStackTrace();
+			_callbackEntries.push(entry);
 
 			// run callback now if requested
 			if (runCallbackNow)

		 */
		public function addDisposeCallback(relevantContext:Object, callback:Function):void
		{
			var entry:CallbackEntry;
			
			// don't do anything if the dispose callback was already added
			for each (entry in _disposeCallbackEntries)
				if (entry.callback === callback)
					return;
			
			entry = new CallbackEntry();
			_disposeCallbackEntries.push(entry);
			entry.context = relevantContext;
			entry.callback = callback;
			
			if (debug)
				entry.addCallback_stackTrace = new Error(STACK_TRACE_ADD).getStackTrace();
		}
		
		/**

		 */
		private var _triggerCounter:uint = DEFAULT_TRIGGER_COUNT;
		
		/**
		 * @inheritDoc
		 */
