Task 2: ContactRegistration(refactoring + uml)