private void processLabors(int year, List<Man> mankind, List<Woman> womankind) {
        List<Man> fathers = calculateFathers(mankind);
        List<Human> children = new ArrayList<Human>();
        for (Iterator<Woman> it = womankind.iterator(); it.hasNext(); ) {
            Woman woman = it.next();
            if (woman.isLaborAccepted()) {
                Man father = findFather(fathers, woman);//подбор потенциального отца
                if (father != null) {
                    Human child = processLabor(father, woman);
                    if (child == null) {//смерть во время родов
                        it.remove();
                    } else {
                        children.add(child);//сразу в mankind или womankind добавлять нельзя, т.к. получим ConcurrentModificationException при итерации по womankind
                    }
                }
            }
        }
        int mans = 0;
        int womans = 0;
        for (Human child: children) {
            if (child.getSex() == Human.Sex.MALE) {
                mankind.add((Man)child);
                mans++;
            } else if (child.getSex() == Human.Sex.FEMALE) {
                womankind.add((Woman)child);
                womans++;
            }
        }
        if (year % debugFactor == 0) {LOGGER.debug("Year: " + year + ", newborns: " + (mans + womans) + "(" + mans + "/" + womans + ")");}
    }