private boolean wantGoods(WorkLocation wl, GoodsType goodsType,
                              Unit unit, UnitType expert) {
        boolean ret = false;
        if (wl instanceof ColonyTile) {
            ret = true;
        } else if (wl instanceof Building) {
            Building bu = (Building) wl;
            Colony colony = wl.getColony();
            ret = bu.canAddType(expert)
                && (bu.getLevel() > 1
                    || ("model.goods.hammers".equals(goodsType.getId())
                        && (colony.getTotalProductionOf(goodsType) == 0
                            || (unit != null && unit.getType() != expert)))
                    || (goodsType.isLibertyType()
                        && colony.getSoL() < 100));
        }
        return ret;
    }