fewer method calls and string garbage when there is no user/password