Factored out a Message class and ensured the RedirectFollowingClient can follow multiple redirects