finished User class