exception probably should be thrown here as well.  throw new UserLoginException