Unified user model