 		}
 		
 		override public function draw():void {
-			//if (!cacheValid()) {
-				//if (!wire.deployed) {
-					//drawDynamic();
-					//return;
-				//}
-				//
-				//buildCache();
-			//}
-			//drawCached();
-			drawDynamic();
+			if (!cacheValid()) {
+				if (!wire.deployed) {
+					drawDynamic();
+					return;
+				}
+				
+				buildCache();
+			}
+			drawCached();
 		}
 		
 		protected function cacheValid():Boolean {

				buildSegs();
		}
		
		protected function drawJoin(current:Point):void {
			var carriersAt:Vector.<Carrier> = U.state.grid.carriersAtPoint(current);
			if (!carriersAt || carriersAt.length < 2)

			
			var segColor:uint = getColor();
			hSeg.color = vSeg.color = join.color = segColor;
			
			drawJoins();
			
			iterWire(function drawWire(seg:FlxSprite):void {
				seg.draw();
