started refactoring RestClient into separate abstractions