private ILevel chooseLevel() {
        if (getFirstLevels() == null || getFirstLevels().size() == 0) {
            return null;
        }

        if (getFirstLevels().size() == 1) {
            return getFirstLevels().get(0);
        }

        Integer poll = null;
        printLevels();

        while (poll == null || poll < 0 || poll >= getFirstLevels().size()) {
            poll = InputReader.readInteger();
            if (poll < 0 || poll >= getFirstLevels().size()) {
                Printer.print(Settings_Output.OUT_ERROR, "Option Error", 0, "Option Error",
                        "Option out of index");
                continue;
            }
        }

        return getFirstLevels().get(poll);
    }