private void readInputFile() throws PaymentException {
		BufferedReader inputReader = null;
		try {
			// Read line by line.
			inputReader = new BufferedReader(new FileReader(inputFile));
			String line;
			int lineIndex = 1;
			while ((line = inputReader.readLine()) != null) {
				// Process the line.
				if (lineIndex == 1) {
					// This is the bank transfer.
					float bankTransferAmount = Float.parseFloat(line);
					if (bankTransferAmount > MAX_VALUE) {
						throw new PaymentException("Bank transfer " + bankTransferAmount + " is above max accepted amount 10000 dollars");
					}
					bankTransfer.setAmount(bankTransferAmount);
				} else {
					// This is a due payment.
					float duePaymentAmount = Float.parseFloat(line);
					// Accept only due values below bank tranfer max (skip if above).
					if (duePaymentAmount <= MAX_VALUE) {
						duePayments.add(new PaymentAmount(duePaymentAmount));
					}
				}
				lineIndex++;
			}
		} catch (IOException e) {
			throw new PaymentException("Can't read input file: " + inputFile, e);
		} catch (NumberFormatException e) {
			throw new PaymentException("Can't parse correctly amounts in file", e);
		} finally {
			if (inputReader != null) {
				try {
					inputReader.close();
				} catch (IOException e) {
					throw new PaymentException("Can't close input file: " + inputFile, e);
				}
			}
		}
	}