refactored userCommunication to return UserResponse as opposed to user, so that error information could be retained