public List<Account> findDeliquentAccounts() throws Exception {
        ArrayList<Account> delinquentAccounts = new ArrayList<>();
        List<Account> accounts = accountDao.findAllAccounts();

        Date thirtyDaysAgo = daysAgo(30);
        for (Account account : accounts) {
            boolean owesMoney = account.getBalance()
                    .compareTo(BigDecimal.ZERO) > 0;
            boolean thirtyDaysLate = account.getLastPaidOn()
                    .compareTo(thirtyDaysAgo) <= 0;
            if (owesMoney && thirtyDaysLate) {
                delinquentAccounts.add(account);
            }
        }

        return delinquentAccounts;
    }