 
 	private func handleExecute(params: SessionCommand.ExecuteParams) {
 		if params.isUserInitiated {
-			broadcastToAllClients(object: SessionResponse.echoExecute(SessionResponse.ExecuteData(transactionId: params.transactionId, source: params.source, contextId: params.contextId)))
+			broadcastToAllClients(object: SessionResponse.echoExecute(SessionResponse.ExecuteData(transactionId: params.transactionId, source: params.source, environmentId: params.environmentId)))
 		}
 		do {
 			let data = try coder.executeScript(transactionId: params.transactionId, script: params.source)

		let shouldWatch = connections.first(where: { $0.watchingVariaables }) != nil
		// either toggle if overall change in state, otherwise ask for updated list so socket can know all the current values
		do {
			var cmd = try coder.toggleVariableWatch(enable: shouldWatch, contextId: params.contextId)
			if shouldWatch, shouldWatch == watchingVariables {
				// ask for updated values
				cmd = try coder.listVariables(deltaOnly: false, contextId: params.contextId)
			}
			try worker?.send(data: cmd)
			watchingVariables = shouldWatch

	}
	
	func handleVariableValueResponse(data: ComputeResponse.VariableValue) {
		let value = SessionResponse.VariableValueData(value: data.value, environmentId: data.contextId)
		let responseObject = SessionResponse.variableValue(value)
		if let clientId = data.clientId {
			broadcast(object: responseObject, toClient: clientId)
