 	while(1) {
 		// poll for card
 		MF_SNR();
-		cardPresent = getResponse(A);
+		/*cardPresent = getResponse(A);
 		delay(cardTimeout);
 		if(!getResponse(A)) {
 			Serial.println("Card not detected.");
 			return 0;
+		}*/
+
+		if(!getResponse(A)) {
+			delay(cardTimeout);
+			if(!getResponse(A)) {
+				Serial.println("Card not detected.");
+				return 0;
+			}
 		}
 
 		// read signal state

	// Analyze response packet and data
	if(responseFlag == false) {
		soundFeedback(reject);
		Serial.println("Read unsuccessful, please try again.");
		Serial.println();
		delay(500);
	}
	else {
		existingTime = getTime(readData);
		if(readData[8] != 0xDD) {
			soundFeedback(reject);
			Serial.println("You are not authorized to use this machine.");
			Serial.println();
		}
		else if(existingTime >= quota) {
			soundFeedback(reject);
			Serial.println("You have reached your quota for this month.");
			Serial.println();
		}
		else {
			soundFeedback(!reject);
			Serial.println("User authenticated. Machine is ready to fire. Please do not remove your card.");
			elapsedTime = accumulator();
			Serial.print("Total time used: ");
			Serial.println(elapsedTime + existingTime);
			Serial.println();
		}
	}


		delay(200);
		responseFlag = getResponse(readData);
		if(responseFlag == false) Serial.println("Unexpected result");
		Serial.println("You may now remove your card\n");
	}
	else Serial.println();
	delay(5000);
}

void soundFeedback(bool reject) {
