fetch user object before fetching other objects
create profile if profile doesn't exist
prevent concurrent logins