I want to extend my exisiting code to add a present scenarios feature, here's the relative info and the requirement below:

The way the current object classes are created is as follows, parsing from CSV:
"""

public class CSVParser {
// declare constants with meaningful names to help illustrating the intent
public static final NAME_1 SCENARIO_PREFIX = "scenario:";
public static final NAME_1 LOCATION_PREFIX = "location:";
public static final int ANIMAL_DEFAULT_AGE = 5;
public static final int HUMAN_DEFAULT_AGE = 25;
public static final BodyType DEFAULT_BODY_TYPE = BodyType.AVERAGE;
public static final int TYPE_INDEX = 0;
public static final int GENDER_INDEX = 1;
public static final int AGE_INDEX = 2;
public static final int BODY_TYPE_INDEX = 3;
public static final int PROFESSION_INDEX = 4;
public static final int PREGNANT_INDEX = 5;
public static final int SPECIES_INDEX = 6;
public static final int IS_PET_INDEX = 7;

// throws exception as the method that it returns to would do the error handling
public List<Scenario> parseScenariosFile(NAME_1 scenarioFilePath) throws IOException {
    // initialise lists to store values
    List<Scenario> scenarios = new ArrayList<>();
    List<NAME_1> lines = Files.readAllLines(Paths.get(scenarioFilePath));

    // start from the second line as the first is the headers
    for (int i = 1; i < lines.size(); i++) {
        NAME_1 line = lines.get(i);
        NAME_1[] values = line.split(",");

        // use of try-catch block to throw customised exception and handle the exception and continue the normal flow (reading in the next line)
        try {
            // check for invalid data format: the case where the number of values is less than or exceeds 8 values in a row
            if (values.length != 8) {
                throw new InvalidDatatFormatException(i + 1); // plus 1 to convert index representation to actual line number
            }
        } catch (InvalidDatatFormatException e) {
            System.err.println(e.getMessage());
            continue; // skip the row and continue reading next line
        }

        // initialise these two attributes to store the current pointer to the current reading line
        Scenario currentScenario = null;
        Location currentLocation = null;

        // checking for new scenario
        if (values[TYPE_INDEX].startsWith(SCENARIO_PREFIX)) {
            currentScenario = createScenario(values[TYPE_INDEX]);
            scenarios.add(currentScenario); // maintain the list of scenarios
            // checking for new location
     Write your response with exactly 6 paragraphs, separated with the markdown divider: ***.
user