break exceptions out to separate class files, and get tests passing
all tests passing, except proxy usage 

- faraday doesn't support proxy and we don't need it yet, but maybe switching to RestClient or add a RestClient adapter to faraday or hack faraday to support proxy usage