refactoring the student system with design pattern and others...