public void onTimerEvent() {
        final List<Customer> customers = customerRepository.getNewCustomers();
        final Campaign campaign = new HalfOfCampaign();
        final Set<Long> ids = new HashSet<Long>();

        if (customers == null) {
            throw new IllegalArgumentException("No new customers found");
        } else {
            List<Customer> temp = new ArrayList<Customer>();
            for (Customer c : customers){
                Long id = c.id();
                ids.add(id);
            }
            for (Long id : ids) {
                for (Customer c : customers) {
                    if (c.id().equals(id)){
                        temp.add(c);
                        break;
                    }
                }
            }
            for (Customer c : temp) {
                if ((c.type() == CustomerType.GOLD
                    || c.type() == CustomerType.VIP)
                    && c.balance().over(1000.00)){
                    senderRepository.findFastestSenderService().send(campaign.message(), c);
                }
            }
        }
    }