public Address getAddress(Class<?> clazz) {
        ArrayList<Address> adrList = addresses.get(clazz);
        if (adrList != null) {
            return adrList.get(random.nextInt(adrList.size())); /* TODO smart balancing */
        } else {
            return null;
        }
    }