void map_ids(const States& o){
	Container::map_id_to_number()[o.getId()] = Container::get_id_counter();
	if(not o.calls.empty()){
		for(std::vector<Call>::const_iterator i=o.calls.begin();i!=o.calls.end();i++){
			i->lib=o.lib;
			i->id = o.getId();
			map_ids(*i);
		}
	}
}
std::string searchSimpleState(const States& o){
	if(not o.calls.empty()){
		for(std::vector<Call>::const_iterator i=o.calls.begin();i!=o.calls.end();i++){
			if(i->type=="task"){
				return i->getId();
			}
			if(i->type=="bt"){
				return i->getId()+"/"+i->text;
			}
			if(i->type=="fsm"){
				bool isResolved = o.lib->contains_fsm(i->text);
				if(isResolved){
					const Fsm& fsm = o.lib->fsms.at(i->text);
					return searchSimpleState(fsm.states.front());
				}
			}
		}
	}else{
		return o.getId();
	}
	return "NOT-FOUND";
}