loadUser returns a promise