Refactored to work with the remote service actually sending back errors when there is a problem