continued with refactoring, and added the retake exam functionality
fixed merge conflict