public int [] execute(int [] vectors){
		if(vectors.length == 3)
			System.out.println("Vectors" + Arrays.toString(vectors));
		reset();
//		for(int j = 0; j < vectors.length; j++){
//			gates.get(inputLabels.get(j)).value = intToBoolean(vectors[j]);	//set the signal from the vector input
//			gates.get(inputLabels.get(j)).activate();	//activate that input
//		}
		int q = 0;
		for(String s: inputLabels){
			gates.get(s).value = intToBoolean(vectors[q]);
			gates.get(s).activate();
			q++;
		}

		int tempTime = 0;
		for(String s : outputLabels){
			if(gates.get(s).time > tempTime)
				tempTime = gates.get(s).time;
		}
		propagationTime = tempTime;	//store the critical time for circuit execution

		int [] returnData = new int[outputLabels.size()];
		for(int i = 0; i < returnData.length; i++){
			returnData[i] = booleanToInt(gates.get(outputLabels.get(i)).value);
		}
		//printArray(returnData, vectors.length);
		return returnData;
	}