Refactoring: no longer use null values for user (logged in, exists...) but Option<User>.