detailed comments of methods in User