public static ArrayList<IStudent> sort(ArrayList<IStudent> students) throws IllegalArgumentException {
        ArrayList<IStudent> temp1 = new ArrayList<>();
        ArrayList<IStudent> temp2 = new ArrayList<>();
        ArrayList<IStudent> temp3 = new ArrayList<>();
        ArrayList<IStudent> temp4 = new ArrayList<>();
        ArrayList<IStudent> tempResult = new ArrayList<>();

        if (!students.isEmpty()) {
            for (IStudent student : students) {
                int rank = student.getSatifaction();
                if (rank == 1) {
                    temp1.add(student);
                } else if (rank == 2) {
                    temp2.add(student);
                } else if (rank == 3) {
                    temp3.add(student);
                } else if (rank == 4) {
                    temp4.add(student);
                }
            }

            tempResult.addAll(temp1);
            tempResult.addAll(temp2);
            tempResult.addAll(temp3);
            tempResult.addAll(temp4);
        } else {
            throw new IllegalArgumentException("Utilities.sort - ArrayList is empty");
        }

        return tempResult;
    }