Hi, i just want to suggest you some things. First, the classes Teachers, Students and Users share seven atributes in common so it's better if you make a new Super Class to applicate "inheritance concept". Second, the class FileUploadUtility have two methods that do the same thing, you just changed the name of one variable in the arguments but the type of them are the same in both methods so that's inefficient. You need to delete one of them and put a general and clear name for the method and the arguments too. In the same class you declared an absolute path but that's not good either, when you open your project in another dispositive it should work there too. Just keep the relative path and delete the other because you are not using it. Third, In the classes Users, Teachers and Students you're using an atribute id_r for the role id but i recommend you to change the type of the variable from primitive to the Object in this case is Role and get the id in that way. Last, try to write the name of the class in singular, like Teacher no Teachers and comprehensible names for the variables because it's difficult to understand the code. These are just good coding practices, i hope this can help you. x.