refactoring consumers to have a bit of abstraction and guzzle