public static void main(String[] args) {
        if (args.length == 0) {
            LOG.info(null,
                    "The tool to calculate amortization plan\n"
                    + "Usage: java -jar amortization.jar --duration=[1-60] --amount=[300-80000] --rate=[0.01-100] --openingrate=[0-5] --monthlyrate=[0-5]");
            return;
        }
        CalculationInputParameters calculationInputParameters = new CalculationInputParameters();
        calculationInputParameters.setRate(0.01);
        calculationInputParameters.setDuration(12);
        for (String arg : args) {
            if (arg.startsWith(DURATION)) {
                calculationInputParameters.setDuration(Integer.valueOf(arg.substring(DURATION.length())));
            } else if (arg.startsWith(AMOUNT)) {
                calculationInputParameters.setAmount(Double.valueOf(arg.substring(AMOUNT.length())));
            } else if (arg.startsWith(RATE)) {
                calculationInputParameters.setRate(Double.valueOf(arg.substring(RATE.length())));
            } else if (arg.startsWith(OPENINGRATE)) {
                calculationInputParameters.setRate(Double.valueOf(arg.substring(OPENINGRATE.length())));
            } else if (arg.startsWith(MONTHLYRATE)) {
                calculationInputParameters.setRate(Double.valueOf(arg.substring(MONTHLYRATE.length())));
            }
        }

        List<PaymentDate> dates = new MonthlyCalendarFiller().createDateList(calculationInputParameters);
        AmortizationCalculation calculation = new AmortizationCalculation(dates, calculationInputParameters);
        calculation.calc();
        List<Payment> payments = calculation.getPayments();
        int index = 0;
        for (Payment payment : payments) {
            if (index == 0) {
                index++;
                continue;
            }
            LOG.info(null, index + ">>> Date: " + payment.getDate() + " Full Payment: " + payment.getTotalPayment() + " Capital Payment:"
                    + payment.getCapitalPayment() + " Interest Payment:" + payment.getInterestPayment()
                    + " Monthly Payment:" + payment.getMonthlyFee());
            index++;
        }
    }