 		{
 			var startTime:uint = getTimer();
 
-			// Rewrite #2 by David Holz, naive dependency version
+			// Rewrite #2 by David Holz, dependency version (naive for now)
+			
+			// TODO - screen space subdivision to limit dependency scan
+			// TODO - cache dependencies between frames, only adjust invalidated objects, keeping old ordering as best as possible
 			
 			// IIsoDisplayObject -> [obj that should be behind the key]
 			var dependency:Dictionary = new Dictionary();
 			
+			// For now, use the non-rearranging display list so that the dependency sort will tend to create similar output each pass
 			var children:Array = scene.displayListChildren;
 			
 			// Full naive cartesian scan, see what objects are behind child[i]

package as3isolib.display.renderers
{
	import as3isolib.bounds.IBounds;
	import as3isolib.core.IIsoDisplayObject;
	import as3isolib.core.as3isolib_internal;
	import as3isolib.display.scene.IIsoScene;
	import flash.utils.Dictionary;
	

			{
				var behind:Array = [];
				
				var objA:IsoDisplayObject = children[i];

				// TODO - direct access ("public var isoX" instead of "function get x") of the object's fields is a TON faster.
				//   Even "final function get" doesn't inline it to direct access, yielding the same speed as plain "function get".
				//   use namespaces to provide raw access?
				//   rename interface class = IsoDisplayObject, concrete class = IsoDisplayObject_impl with public fields?
				
				//var rightA:Number = objA.isoX + objA.isoWidth;
				//var frontA:Number = objA.isoY + objA.isoLength;
				//var topA:Number = objA.isoZ + objA.isoHeight;

				// TODO - getting bounds objects REALLY slows us down, too.  It creates a new one every time you ask for it!
				var rightA:Number = objA.x + objA.width;
				var frontA:Number = objA.y + objA.length;
				var topA:Number = objA.z + objA.height;
				
				for (var j:uint = 0; j < max; ++j)
				{
					var objB:IsoDisplayObject = children[j];
					
					// See if B should go behind A
					// simplest possible check, interpenetrations also count as "behind", which does do a bit more work later, but the inner loop tradeoff for a faster check makes up for it
					if ((objB.x < rightA) &&
					    (objB.y < frontA) &&
						(objB.z < topA))
					{
						behind.push(objB);
					}
