Completely refactored user object into UserProfile to enable custom fields.