public LabourData(FreeColClient client) {
        Specification spec = client.getGame().getSpecification();
        for (UnitType unitType : spec.getUnitTypeList()) {
            if (!unitType.isAvailableTo(client.getMyPlayer())) {
                continue;
            }
            GoodsType production = unitType.getExpertProduction();
            if (production != null) {
                experts.put(production, getUnitData(unitType));
            }

            if (unitType.hasAbility(Ability.EXPERT_PIONEER)) {
                pioneer = getUnitData(unitType);
            } else if (unitType.hasAbility(Ability.EXPERT_SOLDIER)) {
                soldier = getUnitData(unitType);
            } else if (unitType.hasAbility(Ability.EXPERT_SCOUT)) {
                scout = getUnitData(unitType);
            } else if (unitType.hasAbility(Ability.EXPERT_MISSIONARY)) {
                missionary = getUnitData(unitType);
            }
        }

        gatherData(client.getMyPlayer());
    }