 		readNext()
 	}
 
-	private func connectToMonolithicServer() {
-		let net = NetTCP()
-		do {
-			try net.connect(address: config.computeHost, port: config.computePort, timeoutSeconds: config.computeTimeout)
-			{ newSocket in
-				guard let newSocket = newSocket else { 
-					self.delegate?.handleCompute(error: ComputeError.failedToConnect)
-					return
-				}
-				self.socket = newSocket
-				self.connectionOpened()
-			}
-		} catch {
-			Log.error("failed to connect to compute engine")
-			delegate?.handleCompute(error: ComputeError.failedToConnect)
-		}
-	}
-	
 	private func readNext() {
 		guard let socket = socket else { fatalError() }
 		socket.readBytesFully(count: 8, timeoutSeconds: -1) { bytes in

	public func start() {
		assert(state == .uninitialized, "programmer error: invalid state")
		guard config.computeViaK8s else {
			connectToMonolithicServer()
			return
		}
		guard let k8sServer = k8sServer else { fatalError("programmer error: can't use k8s without a k8s server") }

	}

	private func openConnection(ipAddr: String) {
		let net = NetTCP()
		do {
			try net.connect(address: ipAddr, port: config.computePort, timeoutSeconds: config.computeTimeout)
			{ newSocket in
				guard let newSocket = newSocket else { 
					self.delegate?.handleCompute(error: ComputeError.failedToConnect)
					return
				}
				self.socket = newSocket
				self.connectionOpened()
			}
		} catch {
			Log.error("failed to connect to compute engine")
			delegate?.handleCompute(error: ComputeError.failedToConnect)
		}
	}
	
	private func connectionOpened() {
