Make the manager a part of the client
Use decode instead of eitherDecode
Extract common request functionality