<s>[INST] package com.ken.rideshare;

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.stream.Collectors;

/**
 *  This class parses the csv file containing information for ride requests.
 *  It separates the requests into two lists: one for normal users and one for premium users.
 *
 *  @author Ken
 *  @version 1.0
 */
public class RideRequestParser {
    private static final String CSV_FILE = "RideRequests.csv";

    // other code

    public static List<RideRequest> parse() {
        List<RideRequest> allRequests = new ArrayList<>();
        //... some code to read and parse the csv file

        // after parsing all items, sort the list
        Collections.sort(allRequests, Comparator.comparing(RideRequest::getUserType));

        // separate normal and premium requests
        List<RideRequest> normalRequests = allRequests.stream()
                .filter(RideRequest::isNormalUser)
                .collect(Collectors.toList());

        List<RideRequest> premiumRequests = allRequests.stream()
                .filter(RideRequest::isPremiumUser)
                .collect(Collectors.toList());

        return allRequests;
    }
}
class RideRequest {
    // some code
    public boolean isNormalUser() {
        return userType == UserType.NORMAL;
    }

    public boolean isPremiumUser() {
        return userType == UserType.PREMIUM;
    }
    enum UserType {
        NORMAL, PREMIUM
    }
}

This code looks good, but I want to refactor it to be more clean and maintainable. What are your suggestions?[/INST]