User

refactored and added comments