private static Collection<Person> getPeopleToProcess() {
   final Set<Person> people = new HashSet<Person>();
   final LocalDate today = new LocalDate();
   final ExpenditureTrackingSystem instance = ExpenditureTrackingSystem.getInstance();
   for (final Authorization authorization : instance.getAuthorizationsSet()) {
     if (authorization.isValidFor(today)) {
       final Person person = authorization.getPerson();
       if (person.getOptions().getReceiveNotificationsByEmail()) {
         people.add(person);
       }
     }
   }
   for (final RoleType roleType : RoleType.values()) {
     addPeopleWithRole(people, roleType);
   }
   for (final AccountingUnit accountingUnit : instance.getAccountingUnitsSet()) {
     addPeople(people, accountingUnit.getPeopleSet());
     addPeople(people, accountingUnit.getProjectAccountantsSet());
     addPeople(people, accountingUnit.getResponsiblePeopleSet());
     addPeople(people, accountingUnit.getResponsibleProjectAccountantsSet());
     addPeople(people, accountingUnit.getTreasuryMembersSet());
   }
   final PaymentProcessYear paymentProcessYear =
       PaymentProcessYear.getPaymentProcessYearByYear(Calendar.getInstance().get(Calendar.YEAR));
   addRequestors(people, paymentProcessYear);
   if (today.getMonthOfYear() == Month.JANUARY) {
     final PaymentProcessYear previousYear =
         PaymentProcessYear.getPaymentProcessYearByYear(
             Calendar.getInstance().get(Calendar.YEAR) - 1);
     addRequestors(people, previousYear);
   }
   return people;
 }
 private static void addRequestors(
     final Set<Person> people, final PaymentProcessYear paymentProcessYear) {
   for (final PaymentProcess paymentProcess : paymentProcessYear.getPaymentProcessSet()) {
     if (paymentProcess.getRequest() != null) {
       final Person person = paymentProcess.getRequestor();
       if (person != null && person.getOptions().getReceiveNotificationsByEmail()) {
         people.add(person);
       }
     }
   }
 }