public boolean editRecord(String badgeId, String lastName, String recordID,
			String newStatus) {
		// check if the user is allowed to create this operation
		if (!isOfficerAuthorized(badgeId)) {
			log.error(badgeId
					+ " is not a authorized user to perform editRecord");
			System.out.println(badgeId
					+ " is not a authorized user to perform editRecord");
			return false;
		}

		// if no status is given
		try {
			if (newStatus == null && "".equals(newStatus)) {
				log.error("Invalid status:" + newStatus);
				return false;
			}
		} catch (IllegalArgumentException ex) {
			ex.printStackTrace();
			return false;
		}

		// if last name is given
		if (hasLastName(lastName)) {
			// if valid record ID
			if (isInValidRecordId(recordID)) {
				log.error("Invalid recordID:" + recordID);
				return false;
			}
			log.debug("Editing record " + recordID);
			final List<Record> list = this.records.get(Character
					.toUpperCase(lastName.charAt(0)));
			if (list == null) {
				// if no entry exists for this last name
				log.error("No entry exists for this recordID:" + recordID
						+ " with the given lastName:" + lastName);
				System.out.println("No entry exists for this recordID:"
						+ recordID + " with the given lastName:" + lastName);
				return false;
			}
			// get the lock over entire list; because if not done there's a
			// chance that transfer record might delete a record from this list
			// and we get the concurrent modification exception
			synchronized (list) {
				for (Record record : list) {
					if (record.getRecordID().equals(recordID)) {
						// get the lock over the record that need's to be edited
						synchronized (record) {
							// change its status
							record.setStatus(newStatus);
							log.debug(this.stationType.getStationCode()
									+ ":Successfully edited Record:" + recordID);
							System.out
									.println(this.stationType.getStationCode()
											+ ":Successfully edited Record:"
											+ recordID);
						}
						return true;
					}
				}
			}
		} else {
			log.error("LastName is required");
		}
		log.debug("Edit failed");
		return false;
	}