more robust user creation