private Builder(Map<String, Integer> figureQuantityMap) {
            if (Objects.isNull(figureQuantityMap) || figureQuantityMap.isEmpty()) {
                throw new IllegalStateException("please provide the figures to put on the board");
            }
            Set<String> possibleFigures = new HashSet<>();
            possibleFigures.add(KING.toString());
            possibleFigures.add(QUEEN.toString());
            possibleFigures.add(BISHOP.toString());
            possibleFigures.add(ROOK.toString());
            possibleFigures.add(KNIGHT.toString());

            Set<String> givenFigures = figureQuantityMap.keySet();

            if (givenFigures.size() > 0 && givenFigures.stream().anyMatch(e -> !possibleFigures.contains(e))) {
                throw new IllegalStateException("not desired figure is present");
            }
            this.figureQuantityMap = figureQuantityMap;
        }