https://medium.com/javarevisited/fixing-the-unsupportedoperation-exception-in-java-a-step-by-step-guide-16cc85ba928a