 	///a dictionary of transaction ids mapped to closures called when the server says the transaction is complete
 	private var pendingTransactions: [String: PendingTransaction] = [:]
 
-	// MARK: init/open/close
+	// MARK: - init/open/close
 	
 	/// without a super class, can't use self in designated initializer. So use a private init, and a convenience init for outside use
 	private init(connectionInfo: ConnectionInfo, workspace: AppWorkspace, fileCache: FileCache, imageCache: ImageCache, wsWorker: SessionWebSocketWorker?, queue: DispatchQueue = .main)

			self.send(command: command)
		}
	}
	
	/// Internally used, and useful for creating a mock websocket
	///
	/// - Returns: a request to open a websocket for this session
	func createWebSocket() -> WebSocket {
		#if os(OSX)
			let client = "osx"
		#else
			let client = "ios"
		#endif
		var components = URLComponents()
		components.host = conInfo.host == ServerHost.localHost ? "127.0.0.1" : conInfo.host.host
		components.port = conInfo.host.port
		components.path = "\(conInfo.host.urlPrefix)/ws/\(workspace.wspaceId)"
		components.scheme = conInfo.host.secure ? "wss" : "ws"
		components.queryItems = [URLQueryItem(name: "client", value: client),
		                         URLQueryItem(name: "build", value: "\(AppInfo.buildNumber)")]
		var request = URLRequest(url: components.url!)
		request.setValue("Bearer \(conInfo.authToken)", forHTTPHeaderField: "Authorization")
		let ws = WebSocket(request: request)
		return ws
	}
}

// MARK: FileSaver

		fileCache.close()
	}
	
	// MARK: - execute
	
	///Sends an execute request to the server
	/// - parameter srcScript: the script code to send to the server
