The whole idea of a survey is abstracted out into the ExternalService* classes. This class tries to bring a little concreteness to the idea by using the ExternalService* classes to encapsulate the actions you want to take on a survey. It's sort of a pseudo-model; resource for SurveysController. I think it works if you think of it that way.