Moving the request body into the monad, adding a way to check response headers, adding basic negotiation, adding default exception handling.