 				buildSegs();
 		}
 		
+		protected function drawJoins():void {
+			if (wire.deployed) {
+				drawJoin(wire.path[0]);
+				drawJoin(wire.path[wire.path.length - 1]);
+			}
+		}
+		
 		protected function drawJoin(current:Point):void {
 			var carriersAt:Vector.<Carrier> = U.state.grid.carriersAtPoint(current);
 			if (!carriersAt || carriersAt.length < 2)

			buildSegs();
			cachedLines = new Vector.<FlxSprite>;
			
			cachedLines.push(buildSubline(wire.path));
			//TODO: build multiple cached lines
			
			cachedLoc = wire.path[0].clone();
			/*cachedPath = new Vector.<Point>;  //assume wire path is unchanging once deployed

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