 	 */
 	public class Dictionary2D
 	{
-		public function Dictionary2D(weakPrimaryKeys:Boolean = false, weakSecondaryKeys:Boolean = false)
+		public function Dictionary2D(weakPrimaryKeys:Boolean = false, weakSecondaryKeys:Boolean = false, defaultType:Class = null)
 		{
 			dictionary = new Dictionary(weakPrimaryKeys);
 			weak2 = weakSecondaryKeys;
+			this.defaultType = defaultType;
 		}
 		
 		/**

		public var dictionary:Dictionary;
		
		private var weak2:Boolean; // used as a constructor parameter for nested Dictionaries
		
		/**
		 * 

		public function get(key1:Object, key2:Object):*
		{
			var d2:* = dictionary[key1];
			if (d2)
				return d2[key2];
			if (defaultType)
			{
				var value:* = new defaultType();
				set(key1, key2, value);
				return value;
			}
			return undefined;
		}
		
		/**
