 	public class ThreadSchedule
 	{
 		/** The number of milliseconds since the last time the threads were executed. */
-		protected var _lastFiring:uint = 0;
-		
+		protected var _lastFiring : uint = 0;
 		/** The threads to be executed. */
-		public var _threads:Array = [];
+		public var _threads : Array = [];
+		/** The threads scheduled for execution app-wide. */
+		public static var allThreads : Dictionary = new Dictionary(false);
+		/** Priority for this set of threads. */
+		protected var _priority : int;
 
-		/** The threads scheduled for execution app-wide. */	
-		public static var allThreads:Object = {};
-		
-		/** Priority for this set of threads. */
-		protected var _priority:int;
-		
 		/**
 		 * Constructor.
 		 * 
 		 * @param priority Priority to run these threads at.
 		 */
-		public function ThreadSchedule(priority:int) {
+		public function ThreadSchedule(priority : int)
+		{
 			_priority = priority;
 		}
 

		 * 
		 * @return Count of threads.
		 */
		public static function get threadCount():int {
			var count:int = 0;
			
			for each (var i:* in allThreads) {
				count++;
			}
			
			return count;
		}
		
		/**
		 * Priority for this set of threads.
		 */
		public function get priority():int {
			return _priority;
		}
		
		/**
		 * Returns the existing threads in the schedule.
		 * 
		 * @return Threads in the schedule.
		 */
		public function get threads():Array {
			return _threads;
		}
	}

﻿package ender.threads
{

	import flash.utils.Dictionary;

	/**
	 * The ThreadSchedule maintains the schedule of a set of threads for a specified
	 * priority. When enough time has elapsed that these threads should be scheduled to run,
