void SoarManager::handleOutput(string attName, WMElement* wme){
	if(!wme->IsJustAdded() || !wme->IsIdentifier()){
		return;
	}

	SoarDevice* dev = 0;
	Identifier* id = wme->ConvertToIdentifier();
	string att = string(attName);
	//cout << "ATT: " << att << endl;
	if(att == "brick"){
		dev = brick;
	} else if(att == "motor"){
		string port;
		if(WMUtil::getValue(id, "port", port)){
			int portNum = port[0] - 'A';
			if(portNum >= 0 && portNum <= 4){
				dev = motors[portNum];
			}
		}
	} else if(att == "sensor"){
		int port;
		if(WMUtil::getValue(id, "port", port)){
			if(port >= 1 && port <= 4){
				dev = inputs[port-1];
			}
		}
	} else if(att == "manager"){
		if(!this->readSoarCommand(id)){
			id->CreateStringWME("status", "error");
		}
	}	else {
		id->CreateStringWME("error", "Unrecognized command");
		id->CreateStringWME("status", "error");
		return;
	}
	if(dev){
		if(!dev->readSoarCommand(id)){
			id->CreateStringWME("status", "error");
		}
	}
}